广义线性模型

1 广义线性模型

1.1 Logisitic回归:妊娠糖尿病分析

  • 因变量:糖尿病(Diabetes){阳性:pos,阴性:neg},设阳性为1、阴性为0

  • 自变量:年龄(Age)、体重指数(BMI,kg/m2 )、血糖浓度(Glucose )、舒张压(Diastolic blood pressure,(mm)Hg )、怀孕次数(Number of times pregnant )

  • 数据文件:diabetes.csv,共 724个观察值

1.1.1 划分训练集和测试集

  • 前450条个案为训练集,用于估计Logist模型
  • 后274条个案为测试集,用于评价模型的估计效果
  • 训练集糖尿病率36.44%,测试集糖尿病率为31.02%,两者大致相等。

1.1.2 训练集估计回归方程

term estimate std.error statistic p.value
(Intercept) -7.950 0.97 -8.21 0.00
Age 0.012 0.01 1.00 0.32
BMI 0.089 0.02 4.81 0.00
Glucose 0.032 0.00 7.39 0.00
Pressure -0.005 0.01 -0.50 0.61
Pregnant 0.098 0.04 2.45 0.01

\[ log(\frac{p}{1-p}) =-7.95+0.012\times Age+0.089\times BMI+0.032\times Glucose-0.005\times Pressure+0.098\times Pregnant\]

1.1.3 测试集预测效果评价

pos_pred neg_pred
pos 53 32
neg 21 168

由训练集预测混淆矩阵可知

  • 准确率(accuracy):80.66%
  • 精确率(precision):62.35%
  • 召回率(recall):71.62%
  • \(F_1\)得分(\(F_1\) score):66.67%

1.1.4 回归模型边际效应

     Age      BMI  Glucose Pressure Pregnant 
    0.26     1.94     0.70    -0.11     2.14 
  • 年龄每增加一岁患病风险提高0.26%;体重指数每增加1患病风险提高1.94%;血糖浓度每增加1患病风险提高0.7%;舒张压每增加1患病风险降低0.11%;怀孕次数每增加一次患病风险提高2.14%。

  • 体重指数、血糖浓度、怀孕次数对患病风险呈正向影响,符合预期。

  • 年龄和舒张压对患病风险影响小且不显著,考虑逐步回归选择更合适的模型

1.2 Logisitic回归逐步回归

1.2.1 逐步回归的回归方程

Start: AIC=461.36 Diabetes ~ Age + BMI + Glucose + Pressure + Pregnant

       Df Deviance    AIC
  • Pressure 1 449.62 459.62
  • Age 1 450.35 460.35 449.36 461.36
  • Pregnant 1 455.53 465.53
  • BMI 1 474.67 484.67
  • Glucose 1 515.90 525.90

Step: AIC=459.62 Diabetes ~ Age + BMI + Glucose + Pregnant

       Df Deviance    AIC
  • Age 1 450.43 458.43 449.62 459.62
  • Pregnant 1 455.69 463.69
  • BMI 1 475.95 483.95
  • Glucose 1 515.92 523.92

Step: AIC=458.43 Diabetes ~ BMI + Glucose + Pregnant

       Df Deviance    AIC

450.43 458.43 - Pregnant 1 461.76 467.76 - BMI 1 476.19 482.19 - Glucose 1 522.88 528.88

Call: glm(formula = Diabetes ~ BMI + Glucose + Pregnant, family = binomial, data = diabetes, subset = id.train)

Coefficients: Estimate Std. Error z value Pr(>|z|)
(Intercept) -7.939663 0.819306 -9.691 < 2e-16 BMI 0.085129 0.017658 4.821 1.43e-06 Glucose 0.032675 0.004262 7.666 1.77e-14 Pregnant 0.115033 0.034649 3.320 9e-04


Signif. codes: 0 ‘’ 0.001 ’’ 0.01 ’’ 0.05 ‘.’ 0.1 ’ ’ 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 590.34  on 449  degrees of freedom

Residual deviance: 450.43 on 446 degrees of freedom AIC: 458.43

Number of Fisher Scoring iterations: 4

1.2.2 逐步回归的预测效果

     y.pred
y     pos_pred neg_pred
  pos       53       32
  neg       22      167
 Accuracy Precision    Recall        F1 
0.8029197 0.6235294 0.7066667 0.6625000 

1.2.3 逐步回归的边际效应

#均值边际效应 PEA
X=as.matrix(cbind(1,data.train[,-c(1,2,5)]))
xbat<-(apply(X,2,mean))
W=coef(step.glm)
dlogis(sum(xbat*W))*W
 (Intercept)          BMI      Glucose     Pregnant 
-1.740454936  0.018661159  0.007162621  0.025216463 
  • 由图表可知:当BMI每增加1单位时,患病风险会增加约1.87%;当血糖浓度每增加1单位时,患病风险会增加约0.72%;当怀孕次数每增加1单位时,患病风险会增加约2.52%。BMI、血糖浓度和怀孕次数对患病风险的影响较为显著。’

2 判别分析

2.1 线性贝叶斯判别

2.1.1 判别函数

由于只有目标变量只有两类,线性贝叶斯判别等价于Fisher判别。以下为Fisher判别的判别函数:

\[ w =5.981+0.008\times Age+0.068\times BMI+0.028\times Glucose-0.003\times Pressure+0.082\times Pregnant\]

该判别函数和Logsitic回归的方程近似等价,各系数存在近似的倍数关系。注意,这里\(w\)大于0判为neg,小于0判为pos。

2.1.2 测试集合的预测结果

测试集合预测的后验概率:

两类后验概率差异越大代表判别越有把握,错判的概率越小。

测试集合预测的混淆矩阵

pos_pred neg_pred
pos 53 32
neg 22 167

预测效果与Logistic模型基本一致。

2.2 二次贝叶斯判别

2.2.1 测试集合的预测

ld=qda(Diabetes~.,data=diabetes,subset=id.train)
predict(ld,data.test)$posterior%>% round(3) %>% DT::datatable()

2.2.2 测试集合的混淆矩阵

y.pred <- predict(ld,data.test)$class
y.pred <- factor(y.pred,levels=c("pos","neg"))
y <- factor(data.test$Diabetes,levels=c("pos","neg"))
t2=table(y,y.pred);colnames(t2)=c("pos_pred","neg_pred")
kable(t2)
pos_pred neg_pred
pos 53 32
neg 23 166

3 聚类分析

利用例子7.2中2007年城镇居民消费数据作聚类分析,并比较不同聚类的效果

3.1 系统聚类

3.1.1 类平均法

从树状图看两类聚合为一类时聚类距离明显突变,分为两类比较合理。其中第一类包括:北京、上海、浙江、广东,其余为一类。

从各类的类中心看,第一类为沿海发达地区,各类消费水平明显高于第二类。

类别 食品 衣着 设备 医疗 交通 教育 居住 杂项
1 5252.19 1265.92 864.95 940.69 2730.43 2297.70 1317.82 583.77
2 3252.73 983.08 521.21 635.12 1012.19 1072.89 880.07 316.79

3.1.2 离差平方和法

3.2 K-means聚类

3.2.1 分为三类

第一类包括:河北、山西、内蒙古、吉林、黑龙江、江西、山东、河南、湖南、贵州、陕西、甘肃、青海、宁夏、新疆 ,多为中部和沿海地区

第二类包括:天津、辽宁、江苏、安徽、福建、湖北、广西、海南、重庆、四川、云南、西藏,多为东北和西部地区 ,多为东北和西部地区。

第三类包括:北京、上海、浙江、广东 ,为沿海发达地区。

从各类的类中心看,第三类地区的各项消费水平最高,尤其在交通、教育等项目;第一类地区的的各项消费水平均低于第三类但高于第二类地区。

类别 食品 衣着 设备 医疗 交通 教育 居住 杂项
1 2890.07 1043.15 511.50 641.46 923.46 1037.06 848.46 322.04
2 3706.07 907.98 533.34 627.19 1123.09 1117.68 919.60 310.23
3 5252.19 1265.92 864.95 940.69 2730.43 2297.70 1317.82 583.77

3.2.2 分为两类

第一类包括:北京、天津、上海、浙江、福建、广东

第二类包括:河北、山西、内蒙古、辽宁、吉林、黑龙江、江苏、安徽、江西、山东、河南、湖北、湖南、广西、海南、重庆、四川、贵州、云南、西藏、陕西、甘肃、青海、宁夏、新疆

从各类的类中心看,第一类地区的各项消费水平较高,尤其在交通、教育、居住等项目方面,第二类的各项消费指数均低于第一类。

类别 食品 衣着 设备 医疗 交通 教育 居住 杂项
1 4925.72 1171.43 810.96 904.86 2306.43 2042.83 1324.99 529.12
2 3171.13 983.13 506.67 619.27 976.49 1036.08 843.34 308.55