方差分析技术执行单向ANOVA取一组分组数据,并确定某一变量的均值在组间是否存在显著差异。通常有多个响应变量,您感兴趣的是确定整个均值集在不同的组与下一组之间是否不同。有一个多元版本的方差分析可以解决这个问题。
的Carsmall.
数据集有1970年、1976年和1982年的各种车型的测量数据。假设你对汽车的特性是否随时间而改变很感兴趣。
负载Carsmall.谁
名称大小字节类属性加速100x1 800双缸100x1 800双排量100x1 800双马力100x1 800双MPG 100x1 800双Mfg 100x13 2600 char Model 100x33 6600 char Model_Year 100x1 800双Origin 100x7 1400 char Weight 100x1 800 double
其中四个变量(加速度
,位移
,马力
,英里/加仑
)是对个别车型的连续测量。的变量model_year.
指示汽车制造的年份。控件可以创建这些变量的分组绘图矩阵gplotmatrix
函数。
创建这些变量的分组绘图矩阵gplotmatrix
函数。
x = [MPG马力排量重量];Model_Year gplotmatrix (x, [], [],xo ' + ')
(当第二个论点gplotmatrix
为空时,函数图为x
互相争论,并沿着对角线放置直方图。空的第四个参数将生成一个带有默认颜色的图。第五个参数控制用于区分组的符号。)
看来每年的车都不一样。例如,右上方的图是英里/加仑
与重量
.1982年款汽车的行驶里程似乎比老款汽车高,而且平均重量也更轻。但作为一个整体,这三年是否有显著的不同?的manova1
函数可以回答这个问题。
[d p统计]= manova1 (x, Model_Year)
d = 2
p =2×110-6×0.0000 - 0.1141
统计=结构体字段:W: [4x4 double] B: [4x4 double] T: [4x4 double] dfW: 90 dfB: 2 dfT: 92 lambda: [2x1 double] chisq: [2x1 double] chisqdf: [2x1 double] eigenval: [4x1 double] eigenvec: [4x4 double] canon: [100x4 double] mdist:[2.8187 0.7899 0.6187 0.4050 0.8538 4.2337 6.0117 4.9600…gmdist: [3x3 double] gnames: {3x1 cell}
的manova1
函数产生三个输出:
第一个输出d
是对群均值维数的估计。如果均值都相同,则维数为0,表示均值在同一点。如果平均值不同,但沿直线下降,则维度为1。在这个例子中,维数是2,表示组是指落在一个平面上,而不是沿着一条直线。这是三组均值的最大可能维度。
第二个输出p
是向量p-值用于一系列测试。第一个p-Value测试尺寸是0,下一个尺寸是1,等等。在这种情况下都是p值很小。这就是为什么估计的维数是2。
第三个产出统计数据
是一个包含多个字段的结构,将在下一节中进行描述。
的字段统计数据
结构
的W
,B
,T
在普通的单向方差分析中,域是与平方和的内、间和总平方和相似的矩阵。接下来的三个字段是这些矩阵的自由度。字段λ
,chisq
,chisqdf
是对组均值维度的测试成分。(p的第一个输出参数manova1
.)
接下来的三个字段用于进行规范分析。回想一下,在主成分分析(PCA)你要寻找原始变量的组合它有最大的可能的变化。在多变量方差分析中,你会转而寻找组间分离最大的原始变量的线性组合。在单变量单变量方差分析中,它是能给出最显著结果的单变量。找到这个组合后,你接下来要找的是分离度第二高的组合,以此类推。
的eigenvec
域是一个矩阵,它定义了原始变量的线性组合的系数。的特征值
场是测量相应线性组合的组间方差与组内方差之比的向量。的佳能
字段是正则变量值的矩阵。每一列都是均值为中心的原始变量的线性组合,使用的系数来自eigenvec
矩阵。
c1 = stats.canon (: 1);c2 = stats.canon (:, 2);
绘制前两个规范变量的分组散点图。
图gscatter (c1, c2 Model_Year, [],“牛”)
前两个典型变量的分组散点图比任何一对原始变量的分组散点图显示出更多的组间分离。在这个例子中,它显示了三个点云,它们相互重叠,但有不同的中心。右下角的一个点与其他点分开。你可以在图上用gname
函数。
粗略地说,第一个正则变量,c1
,将1982辆汽车分开(具有高值c1
)。第二个正则变量,c2
,揭示了1970年和1976年的车之间的一些区别。
的最后两个字段统计数据
结构是马氏距离。的选择
场测量从每个点到组均值的距离。值大的点可能是离群值。在这个数据集中,最大的离群值是散点图中的别克庄园旅行车。(注意,您可以将模型名提供给gname
如果您想用模型名而不是行号标记点,则使用上面的函数。)
求与群均值的最大距离。
马克斯(stats.mdist)
ans = 31.5273
找到与组的最大距离的点。
查找(stats.mdist == ANS)
ans = 20
找出与组均值最大距离对应的汽车模型。
:模型(20日)
'别克旅行车(sw) '
的gmdist
场测量每对组平均值之间的距离。检查组的使用方法grpstats
.
grpstats (x, Model_Year)
ans =3×4103.×0.0177 0.1489 0.2869 3.4413 0.0216 0.1011 0.1978 3.0787 0.0317 0.0815 0.11117 0.1289 2.4535
求每组均值之间的距离。
stats.gmdist
ans =3×30 3.8277 11.1106 3.8277 0 6.1374 11.1106 6.1374
正如预期的那样,1970年和1982年极端年份之间的多元距离(11.1)大于间隔更近的年份之间的差异(3.8和6.1)。这与散点图是一致的,在散点图中,随着年份从1970年到1976年到1982年的变化,这些点似乎遵循一个进程。如果你有更多的组,你可能会发现使用manovacluster
功能,绘制一个图表,表示组的集群,形成的距离之间的平均值。