理论
两总体协方差阵相等(但未知)时均值向量的检验
设为来自总体的随机样本;为来自总体的随机样本,且相互独立,未知。
检验
取检验统计量
可计算样本均值,样本离差阵,进一步计算得
给定显著水平,只需计算值,即,若,即可否定,即两组样本间存在显著性差异。在这种情况下,可能犯第一类错误,犯第一类错误的概率为.
马氏距离判别
设总体为元总体(考察m个指标),均值向量为,协方差阵为,则样品与总体的马氏距离定义为
用估计量替代上式的距离和方差,均值用样本均值代,方差用组内协方差阵代替
其中
称为组间离差阵。
当假定时,反映分散性的协方差的估计为
,判,否则判
所以计算马氏距离可改为对线性函数的计算
其中为的二次函数,是一常数
注意:经检验不能拒绝协方差相等时,一般可采用线性判别,但仍可采用二次判别,二次判别的正确率高于线性判别;如果数据量很大,二次判别需要的时间远大于线性判别。
把判给距离最近的那一个,设时,若
则
贝叶斯判别及广义平方距离判别
当先验概率总体分布的密度函数及损失函数给定时,贝叶斯判别的解满足:
其中
,进一步,如果,则的概率测度为0。
在正态总体下,的贝叶斯判别法,则贝叶斯判别的解为
可以求得它的线性判别函数
其中为与无关的依赖于的常数。
,并且称为线性判别函数,称为判别系数,为常数项。贝叶斯判别的解为最大的对应的下标。
这与用广义平方距离判别是一致的,定义样品到总体广义平方距离为
将样本判给广义平方距离最小的对应总体。
我们之前所熟知的后验概率最大法判别
其实就是贝叶斯判别法的一种特殊情况。
Fisher判别
直观来讲,基本思想是投影将来自不同总体的样本间的距离拉大。
设从元总体分别抽取样本如下
投影后为
投影后为一元数据,其组间平方和为
组内离差阵为
使得投影后组间差异尽可能大,即使得尽可能大。
不过按照老师的讲法,更常见的分母是各个总体的直接求和。
实例及代码实现
在天气预报中,常根据当天天气的湿温差(x1)和气温差(x2),来预测第二天是否下雨。试利用观测到的天气数据ex5.2(见附件),判断当今天测得(x1, x2)=(8.1,2.0) 或 (7.5, 3.5)时,明天的天气应判断为下雨还是不下雨?
1 2 3 4 5 6 7
| data1<-read.csv("ex5.2.csv")
gp<-data1$G tr<-data1[,2:3]
x1<-tr[gp=="1",];x1m<-apply(x1,2,mean);S1<-var(x1) x2<-tr[gp=="2",];x2m<-apply(x2,2,mean);S2<-var(x2)
|
1 2 3 4 5 6 7 8
| > head(data1) G x1 x2 1 1 -1.9 3.2 2 1 -6.9 0.4 3 1 5.2 2.0 4 1 5.0 2.5 5 1 7.3 0.0 6 1 6.8 12.7
|
1 2 3 4 5 6
| n=nrow(x1);m=nrow(x2);A1<-(n-1)*S1;A2<-(m-1)*S2; Dsq=(n+m-2)%*%t(x1m-x2m)%*%solve(A1+A2)%*%(x1m-x2m) p=2 Tsq=n*m/(n+m)*Dsq FF=(n+m-p-1)/((n+m-2)*p)*Tsq pf(FF, df1=p, df2=n+m-p-1, lower.tail = F)
|
, 故在显著水平0.01时两总体的均值有显著差异, 即讨论两个总体的判别是有意义的。
1 2 3 4 5 6 7 8 9 10 11
| dsq1<-function(x){ return(t(x-x1m)%*%solve(S1)%*%(x-x1m)) } dsq2<-function(x){ return(t(x-x2m)%*%solve(S2)%*%(x-x2m)) } d1<-apply(tr,1,dsq1) d2<-apply(tr,1,dsq2) re<-cbind(d1,d2) regp<-apply(re,1,function(a){which(a==min(a),arr.ind=TRUE)}) redata<-cbind(data1,regp)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| > head(redata) G x1 x2 regp 1 1 -1.9 3.2 1 2 1 -6.9 0.4 1 3 1 5.2 2.0 1 4 1 5.0 2.5 1 5 1 7.3 0.0 1 6 1 6.8 12.7 1 > table(redata$G==redata$regp) FALSE TRUE 2 18 > table(redata$G==redata$regp)/nrow(redata) FALSE TRUE 0.1 0.9
|
第一列为原来的类别,最后一列为数据回代后的判别结果,20个数据错判了2个,错判比例为0.1。
1 2 3 4 5 6
| > dsq1(c(8.1,2))<dsq2(c(8.1,2)) [,1] [1,] TRUE > dsq1(c(7.5,3.5))<dsq2(c(7.5,3.5)) [,1] [1,] TRUE
|
两组数据均被判断为下雨。