☰
SPSS均值向量与协方差阵检验:从Hotelling T²到Box‘s M实操指南
2026/10/5 7:48:38 网站建设 项目流程

做多元统计分析上机实验,最磨人的不是公式推导,而是拿到SPSS之后不知道点哪里,点完又不知道看哪张表。均值向量和协方差阵的检验就是典型代表,教材里一会儿Hotelling T²、一会儿Wilks' Lambda、一会儿Box's M,理论上绕了一大圈,回到电脑前还是两眼一抹黑。

我读研时第一次做这个实验,对着SPSS的输出结果发了半天呆,后来带学生做上机课又看到一批人卡在同样的位置。所以这篇文章干脆把SPSS上完成均值向量与协方差阵检验的完整思路、操作路径、结果解读和常见坑一次讲清楚。不管你是正在写《多元统计分析》课程作业,还是做毕业论文想用MANOVA,这篇都值得收藏。

1. 实验到底要检验什么

1.1 均值向量检验:从一元t检验到多元

学过统计学的都知道一元情形下的t检验,检验单个总体的均值是否等于某个常数,或者两个总体的均值是否相等。但现实问题很少只测一个指标,比如评价一款新肥料,不可能只看产量,还要看蛋白质含量、含水量、抗病性指数,这时候研究对象就不是一个数,而是一组数。

这一组数放在一起,就构成了一个向量,叫均值向量。均值向量检验要回答的问题是:两个或多个总体的均值向量是否完全相等。注意是“向量相等”,不是每个分量单独相等,它要求把变量之间的相关性也考虑进去。如果拆成一元t检验逐个做,等于默认变量之间互不影响,这在多元数据里往往不成立,也会放大犯第一类错误的概率。

SPSS里做均值向量检验,最常见的出口是多元方差分析,也就是MANOVA。教材里的Hotelling T²本质上也是均值向量检验的一种特殊形式,在SPSS里没有单独菜单,但可以通过其他途径实现,后面我专门讲。

1.2 协方差阵检验:为什么要较真“方差是否相等”

协方差阵可以理解为多元版本的方差。一元分析里,t检验要求两个总体方差齐性,多元分析也有对应的齐性要求,即各组总体的协方差阵相等。如果协方差阵差异很大,那么后续基于合并协方差阵的统计推断就不太靠谱。

这就是Box's M检验存在的意义。它检验的零假设是:各组的协方差阵来自同一个总体。很多同学跑到这一步就很困惑,不知道这个检验和均值向量检验是什么关系。简单说,均值向量检验是主角,协方差阵检验是前提条件。前提不满足,主角的分析结论就要打折扣,甚至需要换统计量。

这也是实验报告里必须写清楚的部分。SPSS输出结果里,协方差阵检验的结果往往不在最显眼的位置,但它直接决定你应该相信哪一行多元显著性检验的数值。

1.3 什么时候会用到这套实验

凡是涉及多个因变量同时比较的场景,都会用到均值向量和协方差阵检验。比如医学实验比较三种降压药对收缩压、舒张压、心率三个指标的影响;教育研究比较两种教学法在学生语文、数学、英语三科成绩上的差异;市场调研比较不同消费群体的满意度、忠诚度、复购意愿等指标。

我的经验是,只要你的因变量数量大于等于两个,并且它们之间有一定相关性,就不应该把它们拆开做独立的一元分析。换句话说,均值向量检验在SPSS上机实验里,不只是课程作业,更是很多实证论文的分析起点。

2. 上机前必做的数据准备

2.1 数据格式:宽表还是长表,变量类型怎么设

很多人在SPSS里翻车,不是死在分析过程,而是死在数据表建错了格式。做均值向量检验时,SPSS要求使用宽格式数据:每一个因变量单独占一列,分组变量单独占一列,每一行代表一个观测样本。

我见过有同学把数据整理成长格式,也就是把所有指标竖着堆在一列,再增加一个指标类型变量。用长格式做重复测量方差分析没问题,但做普通MANOVA就会很别扭。所以上机第一步先检查数据视图,确认每个因变量有自己的列名。

变量类型也要注意:分组变量在变量视图里要设置为名义测量,因变量要设置为标度测量。SPSS有时候会自动把数值型分组变量当成连续变量,导致模型里出现莫名的协变量,影响结果。这个细节操作起来一秒钟,但很多人忽略了。

如果数据里包含问卷多维度题项,还要先想清楚维度结构。这就跟SPSS里做效度分析时纠结多维度题项要不要分维度做是一个道理,因变量之间的逻辑关系不清晰,直接全塞进模型,只会让结果更难解释。

2.2 缺失值与异常值处理

SPSS默认情况下遇到缺失值是整行删除,也就是说某一行只要有一个因变量缺失,这个样本就会退出所有分析。如果你的数据集样本量本身不大,整行删除的破坏力就非常明显。

我的建议是,在跑分析之前先做缺失值检查。用描述统计或者频率分析看一下每个变量有多少有效样本,如果缺失比例超过5%,就要考虑是补缺失值,还是把对应变量拿掉。简单补缺失可以用序列均值或者附近点的线性趋势,但补的时候要谨慎,补值不等于真实观测。

异常值方面更不能偷懒。多元分析里一个极端样本就可能让协方差阵面目全非,Box's M检验也会跟着出幺蛾子。我习惯先做多变量层面的异常值筛查,用马氏距离判断哪些样本离整体数据中心太远,而不是只看单变量箱线图,因为多元异常点往往是单变量看起来很正常的组合。

2.3 多元正态性与样本量底线

多元方差分析和Box's M检验的前提是各组数据服从多元正态分布,同时各组协方差阵齐性。多元正态这个概念很多同学觉得抽象,可以粗浅理解为:每个变量的单独分布近似正态,并且变量之间的联合分布没有明显的偏态和极端厚尾。

SPSS本身没有一键输出多元正态检验的菜单,但可以用近似办法:先用直方图或P-P图检查每个因变量在各组内的正态性,再用散点图矩阵看变量之间是否存在明显非线性关系。严格的做法是计算马氏距离,再对马氏距离做秩检验,但在上机实验里能做到分组正态近似已经够用了。

样本量是另一个容易被忽略的硬条件。每个组的样本量最好明显大于因变量个数,经验上至少是因变量个数的3倍以上,否则协方差阵的估计不稳定,甚至出现奇异矩阵。样本量连因变量个数都不超过的话,SPSS直接会报出矩阵不可计算的警告。

3. 均值向量检验的SPSS实操

3.1 单样本情况:用GLM的截距检验搞定Hotelling T²

先看最简单的情况:只有一个总体,想检验均值向量是否等于某个已知向量。这在SPSS里没有名为“Hotelling T²”的菜单按钮,但有个巧妙办法:用一般线性模型的截距检验来实现。

操作逻辑是这样的。先构造一组差值变量,每个差值等于原始因变量减去假设均值,比如d1 = x1 - 10,d2 = x2 - 20。然后打开“分析 -> 一般线性模型 -> 多变量”,把差值变量放进去,模型里只有截距项。此时SPSS输出的截距多变量检验,检验的就是这些差值变量的总体均值向量是否为零,也就是原始均值向量是否等于假设向量。

这张结果表里的四个统计量,Pillai's Trace、Wilks' Lambda、Hotelling's Trace、Roy's Largest Root,其显著性就是对单样本均值向量的检验结果。其中Hotelling's 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 先搞清楚Box's M到底在检验什么

Box's M检验的零假设是各组的协方差阵相等。为什么要在多元分析里做这个检验?因为MANOVA在计算合并协方差阵、构造F统计量时,默认各组协方差阵差异不会太大。如果协方差阵严重不齐,那么基于Wilks' Lambda的检验结果可能偏乐观或偏保守。

判断Box's M结果时,最关键的是看显著性p值。如果p值大于0.05,说明没有证据推翻协方差阵相等的假设,可以放心使用Wilks' Lambda等统计量。如果p值小于0.05,说明协方差阵可能不齐,这时候应该转向对协方差阵不齐更稳健的统计量。

这个稳健统计量就是Pillai's Trace。在多变量检验表里,Pillai's Trace通常排第一,很多同学只看Wilks' Lambda,忽略了它的价值。实际上当Box's M显著时,Pillai's Trace比Wilks' Lambda更可靠。

4.2 Box's M在SPSS里怎么调出来

很多人在一般线性模型菜单里翻箱倒柜找不到Box's M,因为这确实不在那里。Box's M在SPSS里的常规出口是判别分析。路径是“分析 -> 分类 -> 判别”,把分组变量和因变量按3.2的方式设置好,点击“统计”按钮,在矩阵选项下勾选“组内协方差”和“Box's M”。

运行后Spss会输出一张标题为“检验结果”的表格,里面给出Box's M统计量、近似F值和显著性。这张表不在一般的多变量分析结果里,所以如果你只看MANOVA输出,永远等不到它。习惯上,可以把判别分析的Box's M结果粘贴到MANOVA报告里作为前提检验的一部分。

另外,如果课程要求里提到“用Syntax输出Box's M”,可以打开语法窗口运行MANOVA命令,在参数里加入PRINT=HOMOGENEITY(BOXM)。但不同版本SPSS对传统MANOVA语法的支持不太一样,新版本不一定能跑通,还是建议优先用判别分析的界面操作。

4.3 协方差阵不齐怎么办

Box's M显著不等于实验就废了。它只是提示你,传统的多元统计量可能不稳健,选择上要留意。最直接的应对是看Pillai's Trace的结果,因为这个统计量对协方差阵不齐和多元非正态都不是很敏感。

还有一种思路是做变量变换,比如对数变换、平方根变换,让各组方差差异缩小后再分析。这个方法对偏态数据比较有效,但要注意变换后的结果解释会变复杂,均值的含义已经不是原始尺度了。

另外要说一句,Box's 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,可以为多元正态近似提供支持。

第二步,跑Box's M检验。用“分析 -> 分类 -> 判别”,分组变量选group,因变量选三个评分变量,统计里勾选Box's M。

第三步,跑MANOVA。用“分析 -> 一般线性模型 -> 多变量”,三个评分变量进因变量框,group进固定因子框。事后比较选择Tukey,选项里勾选描述统计和齐性检验。

第四步,汇总三张核心表格,开始写报告。

5.3 输出结果一张张看明白

先看Box's M检验表。假设输出显示Box's 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,拒绝零假设,说明三种培训方式下员工的技能评分均值向量存在显著差异。与此同时,Pillai's 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值,这比盲目点击菜单重要得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询