NO.7-判別分析,距離分析

第七周-第八周-第九周

(1)示例2

am<-as.numeric(matrix(c(-1,-1),1))
bm<-as.numeric(matrix(c(2,1),1))
sp<-matrix(c(7.3,-1.1,-1.1,4.8),2,2)
(a=(am-bm)%*%solve(sp))

(y1=a%%am);(y2=a%%bm) #y1>y2
(y1=a%%am);(y2=a%%bm) #y1>y2
(y0=(y1+y2)/2)
(y0=as.vector(y0))

(x0=c(0,1))
(y=a%*%x0)
(y=as.vector(y))

y1>y2時(shí),若y>y0,"判為第1類"

ifelse(y>y0,"判為第1類",
ifelse(y<y0,"判為第2類","無法判定"))
(2)
rm(list = ls())
a<-read.table("clipboard",header=T)#將數(shù)據(jù)mvexec4.xls中E6.3的數(shù)據(jù)處理并復(fù)制在剪貼板
attach(a)

線性判別分析

plot(x1,x2,pch=G,col=G)
text(x1,x2,G,adj=-0.5)
library(MASS)
(ld=lda(G~x1+x2))
z=predict(ld)
anewG=zclass
t<-table(G,a$newG)
sum(diag(prop.table(t)))#符合率0.8064516

距離分析

qd=qda(G~x1+x2)
z=predict(qd)
anewG=zclass
t<-table(G,a$newG)
sum(diag(prop.table(t)))#符合率.8387097
detach(a)

繪制線性判別函數(shù)圖

(Y1=ldscaling[1]*ldmeans[1,1]+
ldscaling[2]*ldmeans[1,2])

第一類的兩個(gè)指標(biāo)的均值的“降維”(一維)

-11.87429

(Y2=ldscaling[1]*ldmeans[2,1]+
ldscaling[2]*ldmeans[2,2])

第二類的兩個(gè)指標(biāo)的均值的“降維”(一維)

-9.720089

Y1<Y2

(Y0=(Y1+Y2)/2)
abline(a=Y0/ldscaling[2], b=-ldscaling[1]/ld$scaling[2])

(3)
rm(list=ls())
b<-read.table("clipboard",header=T)#將數(shù)據(jù)mvexec4.xls中E6.4的數(shù)據(jù)忽略第一列并復(fù)制在剪貼板
attach(b)

線性判別分析

(ld=lda(G~x1+x2+x3+x4))
z=predict(ld)
bnewG=zclass
t<-table(G,b$newG)
sum(diag(prop.table(t)))#符合率 0.875

距離分析

(qd=qda(G~x1+x2+x3+x4))
z=predict(qd)
bnewG=zclass
t<-table(G,b$newG)
sum(diag(prop.table(t)))#符合率1
detach(b)

預(yù)測(cè)

p1<-predict(ld,data.frame(x1=78.3563,x2=0.8895,x3=1.8001,x4=14.1022))
p1$class

線性判別法判定其種類為ST公司,即在2009年該公司有可能會(huì)陷入財(cái)務(wù)困境

p2<-predict(qd,data.frame(x1=78.3563,x2=0.8895,x3=1.8001,x4=14.1022))
p2$class

距離判別法判定其種類為ST公司,即在2009年該公司有可能會(huì)陷入財(cái)務(wù)困境

第3題

方法一:使用MASS包的lda函數(shù)設(shè)置先驗(yàn)概率

rm(list=ls()) #清空內(nèi)存
a<-read.table("clipboard",header=T)#將數(shù)據(jù)mvexec4.xls中E6.3的數(shù)據(jù)處理并復(fù)制在剪貼板

library(MASS)

先驗(yàn)概率相等的模型

(B1=lda(G~x1+x2,prior=c(1,1)/2))
attach(a)
P1=predict(B1)#判類
P1post#后驗(yàn)概率 round(P1post,3)#后驗(yàn)概率,顯示小數(shù)點(diǎn)后3位

cbind(G,newG=P1class,后驗(yàn)概率=round(P1post,3))

矩陣的三列:真實(shí)類,判別類,后驗(yàn)概率

(t1=table(G,newG=P1$class))#混淆矩陣
(pr1=sum(diag(t1))/sum(t1))#判對(duì)率

先驗(yàn)概率“各總體樣本數(shù)占樣本總數(shù)的比例”的判別模型

(B2=lda(G~x1+x2,prior=c(15,16)/31))
P2=predict(B2)#判類
cbind(G,newG=P2class,后驗(yàn)概率=round(P2post,3))

矩陣的三列:真實(shí)類,判別類,后驗(yàn)概率

(t2=table(G,newG=P2$class))#混淆矩陣
(pr2=sum(diag(prop.table(t2))))#判對(duì)率0.8064516
detach(a)

方法二:使用WMDB包的dbayes函數(shù)設(shè)置先驗(yàn)概率

install.packages("WMDB")
library(WMDB)
dbayes(a[1:2],as.factor(G),p=rep(1/2,2))

先驗(yàn)概率相等(也是參數(shù)p的缺省值)的判別模型

dbayes(a[1:2],as.factor(G),p=c(15,16)/31)

先驗(yàn)概率不等的判別模型

第4題

方法一

rm(list=ls()) #清空內(nèi)存
b<-read.table("clipboard",header=T)#將數(shù)據(jù)mvexec4.xls中E6.4的數(shù)據(jù)忽略第一列并復(fù)制在剪貼板
attach(b)
search()

(b1=lda(G~x1+x2+x3+x4,prior=c(7,8)/15))

方法二

dbayes(b[1:4],as.factor(G),p=rep(1/4,4))

鳶尾花習(xí)題

(d=iris)
attach(d)

線性判別

install.packages("MASS")

library(MASS)

ld1=lda(Species~.,data=d)
ld1lev attributes(ld1) pld=predict(ld1) #“預(yù)測(cè)”,即判別 data.frame(G=Species,newG=pldclass) #真實(shí)分類對(duì)比判別分類
(ta1=table(G=Species,newG=pld$class)) #混淆矩陣
addmargins(ta1) #添加行和、列和,總和
sum(diag(prop.table(ta1)))

判對(duì)率 0.98

二次判別

(qd=qda(Species~.,data=d))
Zqd=predict(qd) #“預(yù)測(cè)”,即判別
(ta3=table(G=Species,newG=Zqd$class)) #混淆矩陣
sum(diag(ta3/sum(ta3)))

判對(duì)率 0.98

先驗(yàn)概率相等的Bayes判別

(B=lda(Species~.,data=d,prior=c(1,1,1)/3))
ZB=predict(B) #“預(yù)測(cè)”,即判別
(ta2=table(G=Species,newG=Zld$class)) #混淆矩陣
sum(diag(ta2/sum(ta2)))

判對(duì)率 0.98

install.packages("WMDB")

library(WMDB)

dbayes函數(shù)判別

d[,6]=rep(1:3,each=50)
dbayes(d[,1:4],as.factor(d[,6]))

判對(duì)率 0.9666667

馬氏距離判別

wmd(d[,1:4],as.factor(d[,6]))

判對(duì)率 0.9466667

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容