ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SPSS均值向量与协方差阵检验:从Hotelling T²到Box‘s M实操指南

SPSS均值向量与协方差阵检验:从Hotelling T²到Box‘s M实操指南 做多元统计分析上机实验最磨人的不是公式推导而是拿到SPSS之后不知道点哪里点完又不知道看哪张表。均值向量和协方差阵的检验就是典型代表教材里一会儿Hotelling T²、一会儿Wilks Lambda、一会儿Boxs M理论上绕了一大圈回到电脑前还是两眼一抹黑。我读研时第一次做这个实验对着SPSS的输出结果发了半天呆后来带学生做上机课又看到一批人卡在同样的位置。所以这篇文章干脆把SPSS上完成均值向量与协方差阵检验的完整思路、操作路径、结果解读和常见坑一次讲清楚。不管你是正在写《多元统计分析》课程作业还是做毕业论文想用MANOVA这篇都值得收藏。1. 实验到底要检验什么1.1 均值向量检验从一元t检验到多元学过统计学的都知道一元情形下的t检验检验单个总体的均值是否等于某个常数或者两个总体的均值是否相等。但现实问题很少只测一个指标比如评价一款新肥料不可能只看产量还要看蛋白质含量、含水量、抗病性指数这时候研究对象就不是一个数而是一组数。这一组数放在一起就构成了一个向量叫均值向量。均值向量检验要回答的问题是两个或多个总体的均值向量是否完全相等。注意是“向量相等”不是每个分量单独相等它要求把变量之间的相关性也考虑进去。如果拆成一元t检验逐个做等于默认变量之间互不影响这在多元数据里往往不成立也会放大犯第一类错误的概率。SPSS里做均值向量检验最常见的出口是多元方差分析也就是MANOVA。教材里的Hotelling T²本质上也是均值向量检验的一种特殊形式在SPSS里没有单独菜单但可以通过其他途径实现后面我专门讲。1.2 协方差阵检验为什么要较真“方差是否相等”协方差阵可以理解为多元版本的方差。一元分析里t检验要求两个总体方差齐性多元分析也有对应的齐性要求即各组总体的协方差阵相等。如果协方差阵差异很大那么后续基于合并协方差阵的统计推断就不太靠谱。这就是Boxs M检验存在的意义。它检验的零假设是各组的协方差阵来自同一个总体。很多同学跑到这一步就很困惑不知道这个检验和均值向量检验是什么关系。简单说均值向量检验是主角协方差阵检验是前提条件。前提不满足主角的分析结论就要打折扣甚至需要换统计量。这也是实验报告里必须写清楚的部分。SPSS输出结果里协方差阵检验的结果往往不在最显眼的位置但它直接决定你应该相信哪一行多元显著性检验的数值。1.3 什么时候会用到这套实验凡是涉及多个因变量同时比较的场景都会用到均值向量和协方差阵检验。比如医学实验比较三种降压药对收缩压、舒张压、心率三个指标的影响教育研究比较两种教学法在学生语文、数学、英语三科成绩上的差异市场调研比较不同消费群体的满意度、忠诚度、复购意愿等指标。我的经验是只要你的因变量数量大于等于两个并且它们之间有一定相关性就不应该把它们拆开做独立的一元分析。换句话说均值向量检验在SPSS上机实验里不只是课程作业更是很多实证论文的分析起点。2. 上机前必做的数据准备2.1 数据格式宽表还是长表变量类型怎么设很多人在SPSS里翻车不是死在分析过程而是死在数据表建错了格式。做均值向量检验时SPSS要求使用宽格式数据每一个因变量单独占一列分组变量单独占一列每一行代表一个观测样本。我见过有同学把数据整理成长格式也就是把所有指标竖着堆在一列再增加一个指标类型变量。用长格式做重复测量方差分析没问题但做普通MANOVA就会很别扭。所以上机第一步先检查数据视图确认每个因变量有自己的列名。变量类型也要注意分组变量在变量视图里要设置为名义测量因变量要设置为标度测量。SPSS有时候会自动把数值型分组变量当成连续变量导致模型里出现莫名的协变量影响结果。这个细节操作起来一秒钟但很多人忽略了。如果数据里包含问卷多维度题项还要先想清楚维度结构。这就跟SPSS里做效度分析时纠结多维度题项要不要分维度做是一个道理因变量之间的逻辑关系不清晰直接全塞进模型只会让结果更难解释。2.2 缺失值与异常值处理SPSS默认情况下遇到缺失值是整行删除也就是说某一行只要有一个因变量缺失这个样本就会退出所有分析。如果你的数据集样本量本身不大整行删除的破坏力就非常明显。我的建议是在跑分析之前先做缺失值检查。用描述统计或者频率分析看一下每个变量有多少有效样本如果缺失比例超过5%就要考虑是补缺失值还是把对应变量拿掉。简单补缺失可以用序列均值或者附近点的线性趋势但补的时候要谨慎补值不等于真实观测。异常值方面更不能偷懒。多元分析里一个极端样本就可能让协方差阵面目全非Boxs M检验也会跟着出幺蛾子。我习惯先做多变量层面的异常值筛查用马氏距离判断哪些样本离整体数据中心太远而不是只看单变量箱线图因为多元异常点往往是单变量看起来很正常的组合。2.3 多元正态性与样本量底线多元方差分析和Boxs M检验的前提是各组数据服从多元正态分布同时各组协方差阵齐性。多元正态这个概念很多同学觉得抽象可以粗浅理解为每个变量的单独分布近似正态并且变量之间的联合分布没有明显的偏态和极端厚尾。SPSS本身没有一键输出多元正态检验的菜单但可以用近似办法先用直方图或P-P图检查每个因变量在各组内的正态性再用散点图矩阵看变量之间是否存在明显非线性关系。严格的做法是计算马氏距离再对马氏距离做秩检验但在上机实验里能做到分组正态近似已经够用了。样本量是另一个容易被忽略的硬条件。每个组的样本量最好明显大于因变量个数经验上至少是因变量个数的3倍以上否则协方差阵的估计不稳定甚至出现奇异矩阵。样本量连因变量个数都不超过的话SPSS直接会报出矩阵不可计算的警告。3. 均值向量检验的SPSS实操3.1 单样本情况用GLM的截距检验搞定Hotelling T²先看最简单的情况只有一个总体想检验均值向量是否等于某个已知向量。这在SPSS里没有名为“Hotelling T²”的菜单按钮但有个巧妙办法用一般线性模型的截距检验来实现。操作逻辑是这样的。先构造一组差值变量每个差值等于原始因变量减去假设均值比如d1 x1 - 10d2 x2 - 20。然后打开“分析 - 一般线性模型 - 多变量”把差值变量放进去模型里只有截距项。此时SPSS输出的截距多变量检验检验的就是这些差值变量的总体均值向量是否为零也就是原始均值向量是否等于假设向量。这张结果表里的四个统计量Pillais Trace、Wilks Lambda、Hotellings Trace、Roys Largest Root其显著性就是对单样本均值向量的检验结果。其中Hotellings Trace在两组情况下和教材里的T²检验直接对应所以看到这个统计量时不要觉得陌生。3.2 两独立样本间接用判别分析实现T²检验两个独立总体的均值向量检验上机操作里有一个经常被忽视的捷径用判别分析跑一遍。Fisher判别分析的组间离差比和Hotelling T²在数学上是一一对应的。操作路径是“分析 - 分类 - 判别”把分组变量选入分组变量框多个因变量选入自变量框。输出结果里会有一张Wilks Lambda表其中函数1的Wilks Lambda和显著性就是两样本均值向量检验的结果。Wilks Lambda越小说明组间差异越显著对应的p值就是你要看的结论。这个技巧其实很有用因为判别分析同时还会输出标准化判别函数系数能帮你看出均值向量差异主要是由哪些变量贡献的这是单纯MANOVA表格给不了的信息。我写实验报告时经常把这两张表放在一起讨论。如果你觉得判别分析太绕也可以直接用多变量分析实现。打开“分析 - 一般线性模型 - 多变量”把多个因变量放进因变量框把分组变量放进固定因子框看Wilks Lambda的显著性。结果和判别分析是等价的。3.3 多组比较多元方差分析MANOVA的做法三组及以上的均值向量比较MANOVA就是标准做法。这也是《多元统计分析》课程上机实验最常考察的内容。操作路径打开“分析 - 一般线性模型 - 多变量”。把多个因变量放进因变量框分组变量放进固定因子框。如果需要控制某个连续变量可以放进协变量框那就变成了多元协方差分析但课程实验阶段一般用不到。点击“事后比较”按钮把分组变量选入右侧可以选择LSD、Tukey、Bonferroni等事后检验。点击“选项”按钮至少勾选描述统计和齐性检验这样输出结果里会同时给出各组均值、标准差和单变量的方差齐性检验。运行之后核心看三个部分多变量检验表、主体间效应检验表和事后比较表。多变量检验表回答的是“整体上各组均值向量是否相等”主体间效应表回答的是“具体哪个因变量存在组间差异”事后比较表回答的是“差异具体发生在哪两组之间”。这三张表是递进关系写报告的时候按照这个逻辑来老师一眼就能看出你理解了。3.4 两两比较怎么和MANOVA配合使用MANOVA整体显著只能说明各组均值向量不完全相等不能说明哪两组不一样。这时需要事后比较但这里有一个很容易踩的认知误区SPSS里的事后比较选项本质上是针对单独每个因变量去做的不是针对均值向量本身做的。也就是说Tukey或LSD的比较结果是逐个因变量进行的单变量比较。合理的使用方式是在MANOVA整体显著的前提下用事后比较辅助判断每个变量上哪些组别不同。如果直接把事后比较结果当作多元层面的两两差异等于又退回了一元思维。还有一种更贴合多元思路的做法是在两两比较时对两组样本单独跑一次两样本均值向量检验然后用Bonferroni校正p值。SPSS里需要手动操作对每个组对跑一遍3.2里的分析再乘以比较次数得到校正后的显著水平。课程作业这样做会显得很专业但前提是你的组别数量不多。4. 协方差阵齐性检验的SPSS实操4.1 先搞清楚Boxs M到底在检验什么Boxs M检验的零假设是各组的协方差阵相等。为什么要在多元分析里做这个检验因为MANOVA在计算合并协方差阵、构造F统计量时默认各组协方差阵差异不会太大。如果协方差阵严重不齐那么基于Wilks Lambda的检验结果可能偏乐观或偏保守。判断Boxs M结果时最关键的是看显著性p值。如果p值大于0.05说明没有证据推翻协方差阵相等的假设可以放心使用Wilks Lambda等统计量。如果p值小于0.05说明协方差阵可能不齐这时候应该转向对协方差阵不齐更稳健的统计量。这个稳健统计量就是Pillais Trace。在多变量检验表里Pillais Trace通常排第一很多同学只看Wilks Lambda忽略了它的价值。实际上当Boxs M显著时Pillais Trace比Wilks Lambda更可靠。4.2 Boxs M在SPSS里怎么调出来很多人在一般线性模型菜单里翻箱倒柜找不到Boxs M因为这确实不在那里。Boxs M在SPSS里的常规出口是判别分析。路径是“分析 - 分类 - 判别”把分组变量和因变量按3.2的方式设置好点击“统计”按钮在矩阵选项下勾选“组内协方差”和“Boxs M”。运行后Spss会输出一张标题为“检验结果”的表格里面给出Boxs M统计量、近似F值和显著性。这张表不在一般的多变量分析结果里所以如果你只看MANOVA输出永远等不到它。习惯上可以把判别分析的Boxs M结果粘贴到MANOVA报告里作为前提检验的一部分。另外如果课程要求里提到“用Syntax输出Boxs M”可以打开语法窗口运行MANOVA命令在参数里加入PRINTHOMOGENEITY(BOXM)。但不同版本SPSS对传统MANOVA语法的支持不太一样新版本不一定能跑通还是建议优先用判别分析的界面操作。4.3 协方差阵不齐怎么办Boxs M显著不等于实验就废了。它只是提示你传统的多元统计量可能不稳健选择上要留意。最直接的应对是看Pillais Trace的结果因为这个统计量对协方差阵不齐和多元非正态都不是很敏感。还有一种思路是做变量变换比如对数变换、平方根变换让各组方差差异缩小后再分析。这个方法对偏态数据比较有效但要注意变换后的结果解释会变复杂均值的含义已经不是原始尺度了。另外要说一句Boxs M检验本身对多元正态性很敏感。大样本下很小的协方差阵差异也会导致p值显著所以很多搞应用统计的人会把检验水准放宽到0.01或者结合样本量判断“如果各组样本量接近协方差阵轻微不齐的影响没有想象中那么严重”。实验报告里可以引用这个思路但前提是你清楚自己数据的样本量情况。5. 一个案例从头跑到尾5.1 数据与假设怎么设定为了演示完整流程我构造一份课程里常用的模拟数据。假设研究问题是检验三种培训方式对员工三项工作技能评分的影响因变量分别是沟通能力评分、技术操作评分和团队协作评分分组变量是培训方式取值1、2、3每组各有20个样本总样本量60。研究假设如下零假设H0三种培训方式下员工的三项技能评分均值向量完全相等。备择假设H1至少有一种培训方式下员工的三项技能评分均值向量与其他组不同。同时还要检验前提各组协方差阵是否相等以及每组因变量是否近似服从正态分布。这份数据的特点是因变量之间存在中等程度相关性技术操作评分和团队协作评分相关系数大概在0.4左右这正是适合用多元分析而不是拆开做一元检验的典型场景。5.2 分步操作流程打开SPSS后先把数据录入成宽格式三列因变量分别叫comm_score、tech_score、team_score分组变量叫group标签1、2、3分别对应三种培训方式。第一步做描述统计和正态性初步检查。用“分析 - 描述统计 - 探索”把三个因变量放入因变量列表分组变量放入因子列表图里勾选带检验的正态图。看Shapiro-Wilk检验的p值如果每组每个变量的p值都大于0.05可以为多元正态近似提供支持。第二步跑Boxs M检验。用“分析 - 分类 - 判别”分组变量选group因变量选三个评分变量统计里勾选Boxs M。第三步跑MANOVA。用“分析 - 一般线性模型 - 多变量”三个评分变量进因变量框group进固定因子框。事后比较选择Tukey选项里勾选描述统计和齐性检验。第四步汇总三张核心表格开始写报告。5.3 输出结果一张张看明白先看Boxs M检验表。假设输出显示Boxs M统计量为7.214近似F值为1.142显著性为0.330。这个p值大于0.05说明没有充分证据认为三组协方差阵不同前提条件成立后续可以放心看Wilks Lambda。再看多变量检验表。假设Wilks Lambda值是0.672对应的F值为4.121显著性为0.001。p值小于0.05拒绝零假设说明三种培训方式下员工的技能评分均值向量存在显著差异。与此同时Pillais Trace的显著性如果也是0.002说明结论稳健不只是依赖某一个统计量。接着看主体间效应检验表。这张表会把每个因变量单独列出来比如沟通能力评分对应的F值是2.873显著性0.065不显著技术操作评分F值是6.542显著性0.003显著团队协作评分F值是5.108显著性0.009显著。说明整体差异主要由技术操作和团队协作这两项贡献。最后看事后比较。Tukey结果显示技术操作评分上培训方式1和方式3差异显著培训方式2和方式3差异显著团队协作评分上方式1和方式3差异显著。这样整篇实验报告的结论链条就完整了先通过前提检验再通过整体检验判断有无差异最后通过单变量和事后比较定位差异来源。6. 我踩过的坑和排查方法6.1 菜单找不到、选项对不上的问题SPSS版本很多中文汉化又不完全一致不同版本里的菜单名称可能略有差别。比如老版本里一般线性模型叫“Univariate”和“Multivariate”新版本中文界面叫“单变量”和“多变量”很多同学一打开就懵。遇到这种情况先别急着逐级翻菜单直接在顶部搜索框输入英文关键词比如Multivariate快速定位。另外SPSS的语法窗口永远是最靠得住的界面菜单版本升级了语法命令反而保持稳定。还有一个高频坑是中文版SPSS把“固定因子”翻译成“固定因素”把“协变量”翻译成“协变量”有些老师课件里写的操作路径和你安装的版本对不上这时候看英文路径比看中文路径更不容易踩坑。6.2 多元显著的背后是单变量全不显著这是很经典的一种输出结果多变量检验Wilks Lambda显著但主体间效应表里每个变量都不显著。很多同学看到这里直接傻眼以为数据出了问题。其实这正是多元分析的魅力所在。多个变量单独看都区分不开两组但组合在一起就能区分开原因是变量之间共享了某些联合信息。比如两个变量单独差异都很小但它们的相关结构在两组里差异明显这种模式只能靠多元检验捕捉。遇到这种情况报告里如实描述就好不需要强行解读每个变量。另一个建议是回到判别分析里看标准化判别函数系数搞清楚到底是哪些变量的线性组合在起区分作用。6.3 协方差阵奇异的处理如果SPSS在运行MANOVA时弹出警告说矩阵是奇异的或者不计算某些统计量通常由两个原因造成一是样本量太少小于等于因变量个数二是因变量之间存在严重多重共线性比如某个变量几乎是另外两个变量的线性组合。解决思路是检查相关矩阵。如果两个因变量相关系数超过0.9考虑删除其中一个或者合并成一个综合指标。问卷数据尤其容易出现这种问题因为多个题项本身就在测量同一个潜变量所以做多元分析之前先做一下共线性诊断是很有必要的。样本量方面至少保证每组样本量大于因变量个数。更稳妥的经验值是每组样本量达到因变量个数的5倍以上这样协方差阵估计才能稳定下来。6.4 不许用多个一元检验代替多元检验很多同学为了省事把多个因变量拆开用一元方差分析挨个跑一遍只要有一个变量显著就说总体有差异。这种做法课程作业里可能勉强过关但方法论上站不住脚。原因有两层。其一多个一元检验会让第一类错误的概率膨胀本来设定0.05的显著性水平跑三个变量整体犯错概率可能涨到0.14。其二一元检验完全忽略了变量之间的相关性无法回答“均值向量作为一个整体是否有差异”这个问题。实验报告里如果出现“因为某个变量显著所以均值向量显著”的表述基本上是概念没理清。如果你担心的是“整体显著但不知道哪个变量在起作用”正确路径是MANOVA做完再结合主体间效应检验和判别分析来定位而不是反过来跳过整体检验直接做单变量比较。关于SPSS软件本身说两句总有人问SPSS去哪里下载我个人建议优先用学校或单位提供的正版授权很多高校都有校园版。网上所谓“破解免费版”不仅不稳定还有安全风险装完不知道会塞进什么木马插件。上机实验本身就够折腾了别让软件问题成为新的坑。整个实验跑下来我的体会是均值向量和协方差阵的检验看起来是操作题实际上考的是你对统计假设、统计量和模型适用条件的理解。菜单点一遍花不了十分钟真正拉开差距的是你能不能解释清楚每一步为什么这样做以及输出结果里的每个数字到底在说什么。分享一个我常用的收尾技巧写实验报告时把SPSS的输出表格标题改成中英文对照同时标注每个符号的含义。比如Wilks Lambda后面括号里注明“组内变异占总体变异的比例值越小组间差异越大”导师看完印象会很不一样。分析之前先明确前提跑完结果先看统计量再看p值这比盲目点击菜单重要得多。
返回列表