先回顾下贝叶斯定理:
- 表示事件A出现的概率.
- 是条件概率的符号,表示事件A发生的条件下,事件B发生的概率,也被称为似然度
- 也是条件概率的符号,表示事件B发生的条件下,事件A发生的概率,也被称为后验概率。
Bayes判别准则
- Fisher判别缺点:判别方法与各总体出现的概率无关,与错判后造成的损失无关。
- Bayes判别准则:以个体归属某类的概率(或判别值)最大或错判总平均数损失最小*为标准。
在这里我不想讨论复杂的数学公式,因为我还没搞明白,直接跳到在R语言中怎么用吧!例子还是之前的例子:
20个电视机,5种畅销,8种平销,7种滞销,试建立判别函数,当一新产品其质量评分为8.0,功能评分为7.5,销售价格为65元,问该厂产品的销售前景如何?用起来其实很简单,还是用
lda()
函数,使用prior
参数指定先验概率即可:
> library(MASS)
> d6.3 <- read.xlsx("/home/my/桌面/MOOC/多元统计分析/mvstats5.xlsx",sheet="d6.3")
> d6.3
Q C P G3
1 8.3 4.0 29 1
2 9.5 7.0 68 1
3 8.0 5.0 39 1
4 7.4 7.0 50 1
5 8.8 6.5 55 1
6 9.0 7.5 58 2
7 7.0 6.0 75 2
8 9.2 8.0 82 2
9 8.0 7.0 67 2
10 7.6 9.0 90 2
11 7.2 8.5 86 2
12 6.4 7.0 53 2
13 7.3 5.0 48 2
14 6.0 2.0 20 3
15 6.4 4.0 39 3
16 6.8 5.0 48 3
17 5.2 3.0 29 3
18 5.8 3.5 32 3
19 5.5 4.0 34 3
20 6.0 4.5 36 3
> attach(d6.3)
> ld42 <- lda(G3~Q+C+P,prior=c(5,8,7)/20)
> ld42
Call:
lda(G3 ~ Q + C + P, prior = c(5, 8, 7)/20)
Prior probabilities of groups:
1 2 3
0.25 0.40 0.35
Group means:
Q C P
1 8.400000 5.900000 48.200
2 7.712500 7.250000 69.875
3 5.957143 3.714286 34.000
Coefficients of linear discriminants:
LD1 LD2
Q -0.81173396 0.88406311
C -0.63090549 0.20134565
P 0.01579385 -0.08775636
Proportion of trace:
LD1 LD2
0.7403 0.2597
> Z1 <- predict(ld42)
> T1 <- table(G3,Z1$class)
> T1
G3 1 2 3
1 5 0 0
2 1 6 1
3 0 0 7
> sum(diag(T1))/sum(T1) ##计算正确率
[1] 0.9
> predict(ld42,data.frame(Q=8,C=7.5,P=65)) ##预测
$class
[1] 2
Levels: 1 2 3
$posterior
1 2 3
1 0.2114514 0.786773 0.001775594
$x
LD1 LD2
1 -1.537069 -0.1367865
小结
本章最后教授给出了总结:
- 判别分析方法是按已知所属组的样本确定判别函数,制定判别规则,然后再判断每一个新样品应属于哪一类。
- 常用的判别方法有Fisher判别、距离判别、贝叶斯判别等,每个方法根据其出发点不同各有其特点。
- Fisher类判别对判别变量的分布类型并无要求,而Bayes类判别要变量的分布类型。因此,Fisher类判别较Bayes类判别简单一些。
- 当两个总体时,若它们的协方差矩阵相同,则距离判别和Fisher判别等价。当变量服从正态分布时,它们还和Bayes判别等价。
- 判别分析中的各种误判的后果允许看作是相同的,通常将犯第一类错误的后果看得更严重些,但本章对此关注的不够。
网友评论