3)某银行从历史贷款客户中随机抽取16个样本,根据设计的指标体系分别计算他们的“商业信用支持度”()和“市场竞争地位等级”(),类别变量G中,1代表贷款成功,2代表贷款失败。
表1.银行客户样本数据
客户 | x1 | x2 | G | 客户 | x1 | x2 | G |
1 2 3 4 5 6 7 8 | 40 35 15 29 1 -2 22 10 | 1 1 -1 2 2 1 0 1 | 1 1 1 1 1 1 1 1 | 9 10 11 12 13 14 15 16 | 125 100 350 54 4 2 -10 131 | -2 -2 -1 -1 -1 0 -1 -2 | 2 2 2 2 2 2 2 2 |
(1)为了给正确贷款提供决策支持,请建立Logistic模型进行分析;
R语言程序代码如下:
> library(openxlsx)
> a = read.xlsx('E:/mvexer5.xlsx','E5.3')#查找并读取数据对应的表格
> a
> logit.glm <- glm(G ~ x1 + x2,data = a) #建立Logistic回归模型
> summary(logit.glm)#Logistic回归模型结果
在Rstudio中运行结果如下:
图1.读取E5.3表格中的信息
图2.建立Logistic回归模型
由图可知logistic拟合的模型x1(商业信用支持度)的P=0.5712>0.05,x2(市场竞争地位等级)的P=0.0013<0.05,说明商业信用支持度对贷款没有显著影响,市场竞争地位等级对贷款有影响。
(2)根据建立的模型,判定是否给某用户(x1 = 131,x2 = -2)提供贷款
R语言程序代码如下:
> logit.step <- step(logit.glm,direction = 'both')#逐步筛选法变量选择
> summary(logit.step)#结果
> pre1 <- predict(logit.glm,data.frame(x1 = 131,x2 = -2))#Logistic回归模型预测
> pre1
> pre2 <- predict(logit.step,data.frame(x1 = 131,x2 = -2))#逐步筛选法预测
> pre2
在Rstudio中运行结果如下:
图3.逐步筛选法及两种预测
由图知:两种预测都为2,所以不会给用户提供贷款。
1)判别分析的基本思想是什么?
Fisher判别法:基本思想是投影,具体地说,就是将k维数据投影到某一个方向,使得投影后类间的差异尽可能大,各类内部的差异尽可能小。
距离判别法:其基本思想是根据已知分类数据,分别计算各类的重心即各组的均值,判别准则是对任给的一次观测,若它与第i类的重心距离最近,就认为它来自第i类。
Bayes判别法:假设对研究对象的总体已有一定的认知,常用先验概率分布来描述这种认知,然后抽取一个样本,用样本来修正已有的认知(先验概率的分布),得到后验概率分布。各种统计判断都是通过后验概率分布来进行。
5)植物分类的判别分析:费歇(Fisher)于1936年发表的鸢尾花(Iris)数据被广泛的作为判别分析的例子。数据是对3种鸢尾花(g):刚毛鸢尾花(第1组)、变色鸢尾花(第2组)和佛吉尼亚鸢尾花(第3组)各抽取一个容量为50的样本,测量其花萼长(sepallen,),花萼宽(sepalwide, )、花瓣长(petallen, )、花瓣宽(petalwide, ),单位为mm,数据见表2。试对该数据进行Fisher判别分析和Bayes判别分析。
表2.鸢尾花(Iris)数据
第一组 | 第二组 | 第三组 | ||||||||||||
i | i | i | ||||||||||||
1 2 3 4 5 6 … 46 47 48 49 50 | 5.1 4.9 4.7 4.6 5.0 5.4 … 4.8 5.1 4.6 5.3 5.0 | 3.5 3.0 3.2 3.1 3.6 3.9 … 3 3.8 3.2 3.7 3.3 | 1.4 1.4 1.3 1.5 1.4 1.7 … 1.4 1.6 1.4 1.5 1.4 | 0.2 0.2 0.2 0.2 0.2 0.4 … 0.3 0.2 0.2 0.2 0.2 | 51 52 53 54 55 56 … 96 97 98 99 100 | 7.0 6.4 6.9 5.5 6.5 5.7 … 5.7 5.7 6.2 5.1 5.7 | 3.2 3.2 3.1 2.3 2.8 2.8 … 3 2.9 2.9 2.5 2.8 | 4.7 4.5 4.9 4 4.6 4.5 … 4.2 4.2 4.3 3 4.1 | 1.4 1.5 1.5 1.3 1.5 1.3 … 1.2 1.3 1.3 1.1 1.3 | 101 102 103 104 105 106 … 146 147 148 149 150 | 6.3 5.8 7.1 6.3 6.5 7.6 … 6.7 6.3 6.5 6.2 5.9 | 3.3 2.7 3 2.9 3 3 … 3 2.5 3 3.4 3 | 6 5.1 5.9 5.6 5.8 6.6 … 5.2 5 5.2 5.4 5.1 | 2.5 1.9 2.1 1.8 2.2 2.1 … 2.3 1.9 2 2.3 1.8 |
将mvexer5.xlsx中E6.5中表格里面的信息添加G一列,并将第一组G设为1,第二组设为2,第三组设为3并放入a1表中。
R语言程序代码如下:
> library(openxlsx)
> a = read.xlsx('E:/mvexer5.xlsx',sheet = 'a1') #查找并读取数据对应的表格
> a
#Fisher判别分析
> attach(a)#绑定数据
> library(MASS)
> ld=lda(G ~ x1+x2+x3+x4,data = a);ld
> pre = predict(ld)#根据判别模型预测所属类别
> G1 = pre$class
> head(data.frame(G,G1))#显示结果
> tab1 = table(G,G1);tab1#判别矩阵
> sum(diag(prop.table(tab1)))#判对率
#Bayes判别分析
> ld=lda(G ~ x1+x2+x3+x4,data = a,prior = c(1,2,3)/6);ld#先验概率不等的判别模型
> pre2 = predict(ld)
> G2 = pre2$class
> tab2 = table(G,G2);tab2#判别矩阵
> sum(diag(prop.table(tab2)))#判对率
在Rstudio中运行结果如下:
图4.读取表格a1的数据
图5.Fisher判别分析
图6.Bayes判别分析
5)下面给出5个元素两两之间的距离,试用各种距离对其进行聚类分析,画出聚类图,并按两类、三类进行分类。
R语言程序代码如下:
> x1 <- c(0,10,13,12,11)
> x2 <- c(10,0,25,24,23)
> x3 <- c(13,25,0,1,3)
> x4 <- c(12,24,1,0,2)
> x5 <- c(11,23,3,2,0)
> x <- rbind(x1,x2,x3,x4,x5)
> y <- as.dist(x)
> y
#最短距离法
> hc = hclust(y,"single");hc
> names(hc)
> data.frame(hc $ merge,hc $ height)
> plot(hc);rect.hclust(hc,2)
> cutree(hc,2)
> plot(hc);rect.hclust(hc,3)
> cutree(hc,3)
#最长距离法
> hc = hclust(y);hc
> names(hc)
> data.frame(hc $ merge,hc $ height)
> plot(hc);rect.hclust(hc,2)
> cutree(hc,2)
> plot(hc);rect.hclust(hc,3)
> cutree(hc,3)
#类平均法
> hc = hclust(y,"average");hc
> names(hc)
> data.frame(hc $ merge,hc $ height)
> plot(hc);rect.hclust(hc,2)
> cutree(hc,2)
> plot(hc);rect.hclust(hc,3)
> cutree(hc,3)
在Rstudio中运行结果如下:
图7.最短距离法
图8.最长距离法
图9.类平均法
2)为了比较全国31个省、市、自治区1996年和2007年城镇居民生活消费的分布规律,根据调查资料做区域消费类型划分。并将1996年和2007年数据进行对比分析。今收集了8个反应城镇居民生活消费结构的指标,…试对该数据进行聚类分析。
x1——人均食品支出(元/人)
x2——人均衣着商品支出(元/人)
x3——人均家庭设备用品及服务支出(元/人)
x4——人均医疗保健支出(元/人)
x5——人均交通和通信支出(元/人)
x6——人均娱乐教育文化服务支出(元/人)
x7——人均居住支出(元/人)
x8——人均杂项商品和服务支出(元/人)
R语言程序代码如下:
> library(openxlsx)
> a = read.xlsx('E:/mvexer5.xlsx',sheet = 'E7.2',rowNames = T);a
#K-means聚类
> km = kmeans(a,2)#分二类
> km$cluster
> km = kmeans(a,3)#分三类
> km$cluster
> km = kmeans(a,4)#分四类
> km$cluster
在Rstudio中运行结果如下:
图10.读取E7.2表格中的数据
图11.K-means聚类分析