Skip to content

缺失值口径 ​

统计过程取数时,「缺失」包含两种:

  • 系统缺失:单元格为空(. / 未录入);
  • 用户缺失值:变量上通过 MISSING VALUES 声明的取值(如问卷里的 -1、99、999,或「11 THRU 14」这样的缺失范围)。

两者在所有分析过程里一视同仁,都算缺失。这一节把每条口径写清楚,避免同一个数据集在不同过程里得到互相矛盾的 N。

五条基本口径 ​

规则内容
A单变量过程只看该变量自身:该变量的系统缺失与用户缺失值都不算有效取值。
B多变量过程要求各变量按个案对齐。相关矩阵按 PSPP / SPSS 默认的成对删除(每一对各自排除该对里的缺失);需要「完全案例」的过程(如配对 t 检验、配对置换、简单回归、K 均值、信度、因子分析)用整行删除,即只保留所有参与变量都有效的个案。
C加权统计同时要求取值与权重都有效;任一缺失就整条个案不参与。
D带分组变量的过程:分组变量或分析变量缺失的个案不进任何一组(分组变量的缺失值本身也不会成为一个组);组标签用分组变量的显示值(有值标签时用值标签)。
E分类过程(频数、交叉表、FREQUENCIES、条形图)把用户缺失值计成「缺失」一栏,而不是一个类别;交叉表的行列类别不包含用户缺失值。

逐过程对照 ​

过程口径
描述统计、频率、直方图、箱线图、误差条图、Q-Q 图A
单样本 t 检验、正态性检验、ROCA
独立样本 t 检验、单因素 / 双因素 ANOVA、ANCOVA、Kruskal-Wallis、有序趋势检验、置换检验(两样本)D(分组变量或分析变量缺失都剔除) + A
配对 t 检验、Wilcoxon 符号秩、配对置换B(成对完整个案)
Pearson / Spearman 相关、偏相关B(成对删除)
简单 / 多元 / 逐步回归、logistic 回归、因子分析、K 均值、信度B(整行删除)
加权描述统计与其他加权过程C
频数、交叉表、CTABLES、条形图E
多重响应集(MRSETS 的 /FREQUENCIES、/CROSSTABS)A + E:按变量逐个判定选中,计数不加权;应答个案数为含至少一个有效响应的个案数

变量取值本身的原始值(含用户缺失值)仍然保留在数据集里:数据编辑器、导出与「查找个案」看到的是原始值,只有统计过程按上面的口径把它们当缺失。Dataset.rawColumn 返回原始取值,Dataset.numericColumn 返回已把用户缺失值置空的分析取值。

与 PSPP 的差别 ​

PSPP 默认同样把用户缺失值排除在分析之外,但提供了逐过程的 MISSING=INCLUDE 开关,把用户缺失值当成普通取值参与计算。本应用固定排除,不提供该开关:口径统一、结果不容易被误读;确实需要「把 99 当普通取值」时,请先用 RECODE 把该取值改成想要的值(或删除 MISSING VALUES 声明)。

其余口径与 PSPP 2.1.2 一致,test/pspp_parity_test.dart 用 PSPP 自带测试的期望输出做对拍(AUTORECODE、RANK、ONEWAY、CORRELATIONS 成对删除、NPAR TESTS Mann-Whitney),并在 CI 上执行。

v1.4.0 顺带修正的口径(一处缺陷 + 两处口径差异) ​

对拍与复核过程中发现并修正了一处错位缺陷与两处统计口径差异(都属于「结果和教科书 / PSPP 对不上」的类别):

  1. 多变量个案错位(缺陷):此前部分多变量过程先各自过滤列、再按位置截断,导致变量之间错位配对(例如某一行 pre 有效、post 缺失时,两列会错开一格)。现在统一走按个案对齐的取数(见上表),并有专门的回归用例。
  2. Levene 方差齐性:改为以组均值为中心(PSPP / SPSS 口径)。此前用的是组中位数(Brown-Forsythe),数值与 PSPP、SPSS 的 Levene 表不同;SPSS 的 ONEWAY / T-TEST / GLM 也都用组均值。
  3. Mann-Whitney U:渐近方差补上结校正 σ² = n1·n2·[(n+1)/12 − Σ(t³−t)/(12·n·(n−1))],p 用 2·Φ(z)(PSPP 的 Asymp. Sig. (2-tailed))。连续性校正后的 Z / p(SPSS、R correct = TRUE 的口径)仍可在 API 结果的 extra['zContinuityCorrected'] / extra['pContinuityCorrected'] 取到。

统计量的实现与 API 见 statkit,各过程的入口见统计分析。

Released under the AGPL-3.0 License.