SPSS 命令: SPSS MVA

在浏览器中做缺失值分析(MVA)

缺失值分析告诉你数据缺了多少、以哪些组合缺失,以及缺失看起来是否随机。

免费 · 无需注册 · 文件留在本机 · 更新于 2026年10月18日

能告诉你什么

Crosstabs 在你的设备上运行与 SPSS MVA 对应的过程:含极值计数的单变量缺失统计、表格化缺失模式、方差不等 t 检验、成列、成对与 EM 估计,以及 Little 的 MCAR 检验。

  • 每个变量缺失多少个值(计数与百分比),系统缺失和已声明的用户缺失代码都计入。
  • 哪些变量倾向于同时缺失,以及每种模式包含多少个案。
  • 跳过某题的人在其他变量上是否不同:Welch t 检验比较每个定量变量在“存在”与“缺失”两组之间的差异。
  • 数据是否符合完全随机缺失(MCAR):根据 EM 估计计算 Little 的卡方检验。
  • 成列删除、成对删除与 EM(MAR 假设下的最大似然)三种方式下,平均值、协方差和相关如何变化。

适用场景

适合使用

  • 在对调查或固定样本数据建模之前,判断只用完整个案是否站得住脚,还是需要插补。
  • 当审稿人或客户询问缺失是否随机时:报告 Little 的 MCAR 检验和方差不等 t 检验。
  • 当完整的多重插补超出所需时,用 EM 平均值和相关作为基于 MAR 假设的快速汇总。

改用其他方法

  • 需要得到补全后的数据集用于分析:EM 估计只是汇总统计量,不是插补值。请使用多重插补并汇聚结果。
  • 按相邻值填补时间序列的缺口:使用替换缺失值。
  • 使用抽样(调查)权重且需要检验时:此时只显示描述性表格,基于设计的推断请使用复杂抽样。

在 Crosstabs 中如何操作

  1. 01

    打开数据

    在工作区打开 .sav、CSV 或 Excel 文件并切换到“统计”模式。.sav 文件中已声明的用户缺失代码会被识别。

  2. 02

    选择缺失值分析

    在“缺失值”组中选择“缺失值分析”(MVA)。

  3. 03

    选择变量

    勾选“定量变量”(至少一个),可选勾选“分类变量”;分类变量计入缺失统计和模式,但不参与 EM。

  4. 04

    选择输出表

    保持勾选“表格化模式和图表”与“方差不等 t 检验”,并设置“省略个案少于以下比例的模式(%)”和“省略缺失少于以下比例的指示变量(%)”(默认 1% 与 5%)。勾选“EM 估计和 Little 的 MCAR 检验”并设置“EM 最大迭代次数”;如需比较,可再勾选“成列估计”或“成对估计”。

  5. 05

    声明权重后运行

    如果启用了权重,请说明它是频数权重还是抽样权重(系统不会自行猜测),然后点击“运行”。分析在你设备上的后台线程中运行。

计算示例

以下结果由 Crosstabs 引擎在构建本页时根据模拟数据实际计算得出,并非手工填写。

用示例数据试一试

数据

60 名模拟客户,包含年龄、收入(千元)、满意度(0–10)和地区。35 岁以下客户的收入被有意设置为更常缺失,因此缺失与一个已观测变量有关;满意度和地区则随机缺失。固定随机种子保证每次构建结果相同。

单变量统计
项目N平均值标准差缺失计数缺失百分比低极值数高极值数
age6041.6311.3100.0%00
income4456.6511.541626.7%00
satisfaction536.221.33711.7%10
region5646.7%

极值:落在 Q1 − 1.5 × IQR 与 Q3 + 1.5 × IQR 之外的个案。

方差不等 t 检验
缺失指示变量变量tdfP(双尾)存在数缺失数平均值(存在)平均值(缺失)
incomeage4.4229.2<.001441644.9132.63
incomesatisfaction0.4917.9.62940136.276.05
satisfactionage3.2813.1.00653742.6833.71
satisfactionincome1.604.3.18040457.3149.98
regionage0.633.3.57156441.9337.50
regionincome0.062.1.95841356.6956.07
regionsatisfaction0.893.6.4294946.265.70
EM 平均值
项目ageincomesatisfaction
平均值41.6353.806.18
标准差11.3112.391.32

Little 的 MCAR 检验:卡方 = 16.299,自由度 = 5,显著性 = .006。EM 在 13 次迭代后收敛。

结果解读

60 个个案中有 23 个(38.3%)至少有一个缺失值。方差不等 t 检验显示,收入缺失的客户更年轻(平均年龄 32.6 对 44.9,p < .001);Little 的 MCAR 检验为 χ²(5) = 16.30,p = .006。两者结合提示:只用完整个案分析会高估年长客户的比重;收入的 EM 平均值(53.80,已观测值的平均值为 56.65)借助年龄对此做了校正。

输出表格说明

单变量统计
N、平均值、标准差、缺失计数与百分比,以及低、高极值数(落在 Q1 − 1.5 × IQR 与 Q3 + 1.5 × IQR 之外;大文件改用平均值 ± 2 个标准差)。
方差不等 t 检验
对每个指示变量,把个案分为“存在”和“缺失”两组,用 Welch t 检验比较每个定量变量。p 值小说明数据可能不是完全随机缺失。
表格化模式
每行是一种缺失值模式(X 表示该变量缺失),给出个案数和“完整条件…”计数:去掉这些变量后会有多少完整个案。“缺失值模式”图展示同样的模式。
EM 平均值
EM 算法估计的平均值和标准差;脚注给出 Little 的 MCAR 检验(卡方、自由度、显著性)及收敛状态。随后是 EM 协方差和 EM 相关性表。
估计平均值和标准差摘要:成列
可选的成列与成对表(平均值、协方差、相关性及成对频数)让你看到删除方式对各估计值的影响有多大。

前提假设与注意事项

  • EM 和 Little 检验把定量变量视为多元正态;严重偏态的变量可能使 MCAR 检验过于频繁地拒绝。
  • 在给定分析变量的条件下数据为随机缺失(MAR)时,EM 估计才有效;它无法纠正非随机缺失(MNAR)的数据。
  • Little 的 MCAR 检验至少需要两种缺失值模式;所有定量变量均缺失的个案不纳入 EM。
  • 使用抽样权重时只报告单变量统计和模式;t 检验、EM 和 Little 检验假定个案独立,因此不予报告。

结果如何验证

MVA 引擎与独立的 Python 参考实现生成的参考值对照验证:单变量、成列与成对统计量与 numpy/pandas 一致(相对误差 1e-11 以内),方差不等 t 检验与 scipy.stats.ttest_ind(Welch)一致(1e-10),采用 SPSS n − 1 分母的 EM 与独立的 numpy 实现一致(1e-9),Little 检验一致到 1e-8;最大似然 EM 及 Little 检验与 R norm::em.norm(经 naniar::mcar_test)一致到 1e-7。频数权重经测试与展开后的数据结果一致。 验证证据(英文)

常见问题

Little 的 MCAR 检验显著,该怎么办?

数据很可能不是完全随机缺失,成列删除可能导致偏差。查看方差不等 t 检验,找出哪些已观测变量能预测缺失,把它们纳入模型,并使用 EM 或多重插补——它们只要求 MAR,而不要求 MCAR。

MCAR 检验不显著能证明数据是 MCAR 吗?

不能。它只说明在这些变量中没有反对 MCAR 的证据;个案少时检验效能很低,而且它无法发现取决于缺失值本身的缺失机制。

可以把 EM 平均值作为最终结果吗?

在 MAR 下它们是不错的点估计,但没有能反映缺失信息的标准误。若要做检验和置信区间,请生成多个插补数据集并按 Rubin 规则汇聚。

像 99 这样的用户缺失代码会被当作缺失吗?

会。变量元数据中声明为用户缺失的代码按缺失计算,脚注会列出每个变量有多少个。

我的数据会被上传吗?

不会。MVA 在浏览器标签页内的 Web Worker 中运行,文件不会发送到 Crosstabs 服务器。

用你自己的数据运行缺失值分析

打开 .sav、CSV 或 Excel 文件。所有计算都在浏览器中完成,文件不会离开你的设备。

打开分析工作区

SPSS 是 IBM Corp. 的商标。Crosstabs 与 IBM 无关联,也未获得 IBM 认可。