Reaven和Miller(1979)研究了145名非肥胖成年人的葡萄糖耐量和胰岛素血液化学指标之间的关系。
他们使用斯坦福线性加速器中心的PRIM9系统将数据可视化为3D,并发现了一个奇特的图案,看起来像是一个有两个翼的大斑点。
本文帮助客户使用这些数据来说明多元线性模型的各种图形方法。
正如我们将看到的那样,这些数据在几个方面都是奇怪的,并且标准的MANOVA存在问题,因为某些假设被违反了。
设置
读取数据str(Diabetes)
这些变量是:
relwt
:相对体重,表示实际体重与人的身高相比的期望体重的比率glufast
:空腹血浆葡萄糖水平glutest
:测试血浆葡萄糖水平,测量葡萄糖不耐受的程度,instest
:测试中的血浆胰岛素,测量口服葡萄糖的胰岛素反应,sspg
:稳态血浆葡萄糖,测量胰岛素抵抗性group
:诊断组
数据的椭圆和方差齐性
我们首先绘制数据集中三个变量的协方差椭圆。
从这个结果中可以清楚地看出,这里存在方差-协方差矩阵的异质性问题。正常组显示了最小的方差,而明显糖尿病组则显示了最大的方差。
covEllipses(Diabetes
视频
决策树模型原理和R语言预测心脏病实例
视频
非线性模型原理与R语言多项式回归、局部平滑样条、 广义相加模型GAM分析
视频
从决策树到随机森林:R语言信用卡违约分析信贷数据实例
化学糖尿病群体与正常人在一个方向上不同,而明显糖尿病群体在另一个方向上有所不同,并且其内部群体相关性与其他群体呈相反的符号。这在单独的散点图中更容易看到,例如以下示例。
这个发现是Reaven和Miller得出化学糖尿病和明显糖尿病反映不同疾病状态而不是逐渐加重的结论的部分原因。
另外,我们注意到可以使用scatter3d``car
包中的三维散点图更容易地看到组之间的差异。
scatter3d
带有50%数据椭圆体的糖尿病数据的三维散点图
Box’s M检验
Box’s M检验确认协方差矩阵存在显著的异质性。
diab.boxm <- box
对数行列式按照我们在协方差椭圆图中看到的数据椭圆体的大小进行排序。
拟合MLM模型
对组间均值差异拟合MANOVA模型。
MANOVA显示group
对响应变量集合有高度显著影响。
Anova(diab.mlm)
在 QQ 图中检查残差
MANOVA 的另一个假设是残差服从多元正态分布。可以通过卡方 QQ 图进行视觉评估。 从下图可以看出,数据点与红色的等值线明显不同。有太多具有较大 D2 值的数据点。
随时关注您喜欢的主题
qplot(da.ml)
HE 图
HE 图显示了各均值之间的 H 椭圆以及误差的 E 椭圆。
默认情况下,将绘制前两个响应变量。结果显示出在 Normal 和 Chemical 变量上的均值排序较为明显。
hplot(diab.
对于 MLM 的方法会给出一个散点图矩阵,其中包含所有响应变量之间的 HE 图。从结果中可以看出,Diabetes 变量的模式与其他变量不同。
pairs(diblm, fill=TRUE, fill.alpha=0.1)
典型判别分析
典型判别分析将数据有效地投影到响应的线性组合空间,这个空间解释了组间方差相对于组内方差的最大比例。
diab.an
典型判别图
plot(dib.an, fill=TRUE, fill.alpha=0.1)
通过一个对象的方法,将典型维度上的分数绘制出来,并在每个组上叠加 60% 的数据椭圆。组均值的位置显示了它们在典型维度上的表现。
响应变量与典型维度的关系通过矢量(类似于双标图)显示出来。每个矢量由其与典型维度的相关系数(结构系数)定义。
plot(diab.can, ellipse=TRUE, var.lwd=2)
在这个图中可以看到:
- 第一维与
glufast
、glutest
高度相关,而且组别按照Normal < Chemical < Overt
的顺序排列。 - 第二维将
Diabetic
组与其他两个组区分开来。这个维度与检测过程中的血浆胰岛素水平密切相关。这验证了我们在HE矩阵图中对所有响应变量的观察结果。 - 规范化的得分数据椭圆的相对大小是方差异质性缺乏的另一个视觉指标。
规范化的HE图
使用规范判别分析的HE图可以概括展示出规范判别分析的结果。变量向量与规范结构图中的变量向量相同。
heplot(dabcn, fill=c(TRUE, FALSE), fil.apha=0.1, var.lwd=2)
## 矢量比例因子设置为12.06
线性判别分析和二次判别分析
线性判别分析(LDA)在精神上与多元方差分析(MANOVA)类似,但重点是分类而不是测试均值之间的差异。此外,LDA允许指定组成员身份的先验概率,以使分类错误率与所关注人群中获得的结果可比较。二次判别分析允许组之间的协方差矩阵存在差异,并给出二次而不是线性的分类边界。
从LDA的角度来看,可视化结果的一个目标是通过LD1和LD2的得分来查看分类的边界。
递归分区决策树
递归分区是一种创建决策树的方法,旨在对人群的成员进行分类。它使用预测因子的二分间隔将数据递归地分割成子群体。 对于糖尿病数据,结果非常简单:当glutest < 420
时,将正常组与两个临床组区分开来。对于后者,glufast < 117
将个体分类为化学性糖尿病而不是明显性糖尿病。
diabart <- rpart(
使用rpart.plot包可以绘制分区树的漂亮图形。节点中的数字给出了每个组中分类的比例。rpart.plot(, box.pal
这样做效果如何?我们可以查看预测的组成员资格与实际结果之间的表格,并计算错误率。效果还不错!
(class.pred <- table(predicted # 错误率 1 - sum(diag(class.pred))/sum(class.pred) ## [1] 0.013
参考资料
Friendly, M. & Sigal, M. (2017) Visualizing Tests of Equality of Covariance Matrices. Submitted for publication.
Reaven, G. M. & Miller, R. G. (1979). An Attempt to Define the Nature of Chemical Diabetes Using a Multidimensional Analysis Diabetologia, 16, 17-24.
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!