数据说明
本案例所用的数据为ISLR中自带的数据heart.data,样本是462个南非人的身体健康状况指标,用来研究哪些因素对是否患心脏病有影响。变量描述见表1。
表1 变量说明
变量名 |
含义 |
解释 |
y |
coronary heart disease |
冠心病 |
sbp |
systolic blood pressure |
血压 |
tobacco |
cumulative tobacco |
累计烟草量 |
ldl |
low density lipoprotein cholesterol |
低密度脂蛋白胆固醇 |
adiposity |
-- |
肥胖 |
famhist |
family history of heart disease |
是否有心脏病家族史 |
typea |
type-A behavior |
A型表现 |
obesity |
-- |
过度肥胖 |
alcohol |
current alcohol consumption |
当前饮酒 |
age |
age at onset |
发病年龄 |
描述性统计
图1是变量的散点矩阵图,可以看出adiposity 和obesity线性相关性较强。
表2是因变量与定性自变量famhist的列联表分析,卡方检验p值为0,在0.05的显著性水平下,famhist对y有显著影响。
图3是连续自变量与因变量的箱线图分析。
表2定性变量与因变量列联表分
famhist y |
0 |
1 |
P值 |
0 |
206 |
96 |
|
1 |
64 |
96 |
0.000 |
图2连续自变量与因变量间的箱线图
Logistic回归
随机抽取80%的样本作为训练集,剩下的20%样本作为测试集,用所有变量建立二元logistic回归模型。之后用AIC和BIC对模型做逐步回归。模型拟合结果分别如图3-5所示
表3是模型预测结果的列联表符号示意。
表3预测结果列联表符号示意
预测值 实际值 |
0 |
1 |
0 |
TN |
FN |
1 |
FP |
TP |
真阳性率TPR=TP/(TP+FN); 假阳性率FPR=FP/(FP+FN)
敏感性Sensitivity=TP/(TP+FN);特异性Specificity=TN/(FP+TN)
约登指数Youden=Sensitivity+Specificity-1
正确率R=(TN+TP)/(TN+FN+FP+TP)
为了比较三个模型的效果,用ROC曲线以及约登曲线来选择最优的模型,如图6所示。
表4是logit-AIC模型预测效果如下表所示。
表4最优预测模型预测效果
y预测值 y实际值 |
0 |
1 |
行和 |
0 |
62 |
13 |
75 |
1 |
3 |
15 |
18 |
列和 |
65 |
28 |
93 |
得TPR=0.536,FPR=0.046,正确率R=0.828。