多元统计分析及R语言建模(第五版)——第6章

多元统计分析及R语言建模(第五版)——第6章

码农世界 2024-06-13 后端 77 次浏览 0个评论
6.2考虑两个数据集x1=[3 2 4 7 4 7],x2=[6 5 4 9 7 8]

(1)计算Fisher线性判别函数;

(2)用Bayes准则,在相同先验概率和相同代价下将观测值x=(2,7)分类到总体G1或G2。

 

#6.2
x1=c(3,2,4,7,4,7)
x2=c(6,5,4,9,7,8)
y=c(1,1,1,2,2,2)
(data1=data.frame(x1,x2,y))
plot(data1[,-3])
text(x1,x2,y,adj = -0.5)#标识点所属类别G
library(MASS)
ld=lda(y~.,data=data1);ld#Fisher线性判别函数
lp=predict(ld)
G1=lp$class
data.frame(y,G1)
#table(predict(ld)$class,data1$y)
predict(ld,data.frame(x1=2,x2=7))$class
#Bayes准则,在相同先验概率和相同代价下将观测值x0` = (2,7)分类到总体G1
6.3以舒张期血压和血浆胆固醇含量预测被检查者是否患冠心病。测得15 名冠心病人和16

名健康人的舒张压x,(mmHg)及血浆胆固醇含量x2(mg/dl),结果见表

(1)对每一组数据用不同的符号,作两变量的散点图,观察它们在平面上的散布情况,该组数据做判别分析是否合适?

(2)分别建立距离判别(等方差阵和不等方差阵)、Fisher判别和Bayes判别分析模型,计算各自的判别符合率,确定哪种判别方法最恰当。

(3) 绘制线性判别函数图

x1x2y
742001
1001441
1101501
702741
962121
801581
801721
1001401
1002301
1002201
902391
1101551
1001551
961401
1002301
80802
941722
1001182
701522
801722
801902
701422
801072
801242
801942
781522
701902
801042
80942
841322
701402
#6.3
#d6.3=read.table("clipboard",header = T)
library(openxlsx)
d6.3=read.xlsx("E:/多元统计分析及R语言建模/d6.3.xlsx",rowNames = F)
attach(d6.3)
plot(x1,x2)
text(x1,x2,y,adj = -0.5)#标识点所属类别G
library(MASS)              #距离判别模型
qd = qda(y ~ x1 + x2,data=d6.3)
qd
#距离判别符合率
pre1 = predict(qd)    
Y1 = pre1$class
data.frame(y,Y1)
tab1 = table(y,Y1);tab1
sum(diag(tab1))/sum(tab1)
#Fisher判别分析
lda = lda(y ~ x1 + x2)
lda
#Fisher判别符合率
pre2 = predict(lda)
Y2 = pre2$class
data.frame(y,Y2)
tab2 = table(y,Y2);tab2
sum(diag(tab2))/sum(tab2)
#Bayes判别分析
lda_2 = lda(y ~ x1 + x2,prior = c(1,2)/3)
lda_2
#Bayes判别符合率
pre3 = predict(lda_2)
Y3 = pre3$class
tab3 = table(y,Y3);tab3
sum(diag(tab3))/sum(tab3)
#由以上结果,根据各自的判别符合率大小可知,距离判别和Bayes最恰当。
plot(lda)#绘制线性判别函数图。
detach(d6.3)
6.4对于 A股市场2009年陷入财务困境的上市公司(ST公司),我们收集了8家ST公司陷入财务困境前一年(2008年)的财务数据,同时对于财务良好的公司(非 ST公司),收集了同一时期8 家非 ST公司对应的财务数据,如表6-5所示。数据涉及四个变量:资产负债率 x、流动资产周转率x2、总资产报酬率x3和营业收入增长率x。类别变量G中2代表ST公司,1代表非ST公司。

(1)分别建立线性判别、非线性判别和Bayes判别分析模型,计算各自的判别符合率,确定哪种判别方法最恰当;

(2)某公司2008年财务数据为:x=78.3563,x,=0.8895,x3=1.8001,x4=14.1022。试判定2009年该公司是否会陷入财务困境。

证券简称x1x2x3x4G
ST中源60.67251.024711.6705-26.5392
ST宇航25.59831.9192-5.830226.04922
ST耀华90.87271.9671-14.1845-12.94392
ST万杰90.46191.00221.816965.72732
ST钛白53.45650.7593-23.8843-38.31072
ST筑信92.22561.7847-4.105719.22812
ST中源60.67251.024711.6705-26.5392
ST东航115.11964.6577-16.2537-3.90172
洪城股份38.98560.60362.3791-2.54611
工大首创28.91972.52812.3564-0.22891
交大南洋56.74431.5307-0.183.72821
九鼎新材52.12031.34645.090810.78681
恩华药业52.87312.10499.086618.34861
东百集团54.43895.607813.784622.31181
广东明珠46.37930.99749.480615.35171
中国国航79.48635.919-9.47397.03161

 

#6.4
library(openxlsx)
d6.4=read.xlsx("E:/多元统计分析及R语言建模/mvexer5.xlsx",sheet ="E6.4",rowNames = F)
d6.4
#建立线性判别模型
library(MASS)
lda_1 = lda(G ~ x1 + x2 + x3 + x4,data=d6.4)
lda_1
#线性判别符合率
pre1 = predict(lda_1)
G1 = pre1$class
tab1 = table(G,G1);tab1
sum(diag(tab1))/sum(tab1)
#非线性判别模型
qda_1 = qda(G ~ x1 + x2 + x3 + x4,data=d6.4)
qda_1
#非线性判别符合率
pre2 = predict(qda_1)
G2 = pre2$class
tab2 = table(G,G2);tab2
sum(diag(tab2))/sum(tab2)
#Bayes判别分析模型
lda_2 = lda(G ~ x1 + x2 + x3 + x4,data=d6.4,prior = c(2,3)/5)
lda_2
#Bayes判别符合率
pre3 = predict(lda_2)
G3 = pre3$class
tab3 = table(G,G3);tab3
sum(diag(tab3))/sum(tab3)
#非线性判别符合率最高,选择它
predict(qda_1,data.frame(x1 = 78.3563,x2 = 0.8895,x3 = 1.8001,
                         x4 = 14.1002))
#判别为2,会陷入财务困境

转载请注明来自码农世界,本文标题:《多元统计分析及R语言建模(第五版)——第6章》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,77人围观)参与讨论

还没有评论,来说两句吧...

Top