第一章 PSPP 概述
1.1 什么是 PSPP
PSPP 是一套自由、开源的统计分析与报表生成程序,由 GNU 项目维护。它的设计目标,是提供一套与 SPSS 这类商业统计产品句法相近、却完全不受专有许可约束的分析工具——既能在图形界面里点选完成常规分析,也能通过纯文本命令写出可复现的批处理脚本。
PSPP 以两种形态交付,二者共享同一套计算内核:
pspp:命令行界面(文本界面)。分析者把命令写入语法文件,再以pspp file.sps的方式批量运行,或者进入交互提示符逐条键入。psppire:图形用户界面(Graphical User Interface,PSPPIRE)。它提供数据编辑器、语法编辑器与输出查看器,使不熟悉命令的分析者也能通过菜单完成操作。
在 pspp 命令行界面中,既可以把分析写成语法文件后批量运行:
$ pspp analysis.sps也可以进入交互提示符逐条键入(每行一条命令,以英文句点结尾):
PSPP> DESCRIPTIVES /VARIABLES=height.而在 psppire 图形界面下,同样的分析可在语法编辑器里输入 DESCRIPTIVES /VARIABLES=height. 后,通过 Run 菜单运行【手册明示】。
需要强调:PSPP 的语法与 SPSS 的语法"相似"(similar to SPSS statistical products),而非逐字兼容。大部分常用命令、子命令的写法彼此相通,但在细节与过程覆盖面上存在差别,这一点将在 1.3 节展开。分析结果可输出为多种格式,包括 ASCII、PostScript、PDF、HTML、DocBook 与 TeX,便于直接嵌入论文、网页或排版系统。
1.2 PSPP 的发展与开源背景
PSPP 诞生于自由软件运动的脉络之中。它隶属于 GNU 项目,践行"自由软件"(free software)的理念:用户不仅免费获得程序,更享有运行、研究、再分发与改进它的四项核心自由。这一理念决定了 PSPP 与商业统计软件在授权上的根本不同——后者的能力被密封在许可证条款之内,而 PSPP 的全部权利从一开始就交还给使用者。
程序本身以 GNU 通用公共许可证(GNU GPL)发布;随附文档则以 GNU 自由文档许可证(GFDL,GNU Free Documentation License)发布。换言之,你运行的每一行可执行代码与阅读的每一份手册文字,其许可都是公开、可核查的,而非包裹在最终用户许可协议(EULA)的封闭条款里。这种许可结构使本书得以在遵循原许可的前提下进行中文整理与表述。
自由软件并不意味着"已经做完"。PSPP 官方手册原话即坦言:"PSPP is a work in progress."(PSPP 仍是一项进行中的工作。)这句话不是谦辞,而是对软件状态的如实陈述:它持续改进,亦有尚未补齐的环节。读者在依赖 PSPP 完成关键分析时,应参照官方手册与自身专业判断,而非假定它已与某一商业产品完全对等。
1.3 PSPP 与 SPSS 的关系及异同
把 PSPP 理解为"SPSS 的开源克隆"是一个常见的误会。两者确实渊源深厚:PSPP 的许多命令名、子命令结构乃至数据文件格式(.sav)都刻意贴近 SPSS,使习惯 SPSS 的分析者能平滑迁移。语法层面的"相似"是真实的,也是 PSPP 最有价值的特性之一。
然而相似不等于完整兼容,二者之间存在清晰边界。其一,PSPP 并未实现 SPSS 的全部过程,尤其是一批高级统计与作图功能目前缺失(详见 1.4 节与附录)。其二,PSPP 解读语法时遵循自己的实现,某些在 SPSS 中可行的写法未必被 PSPP 接受,反过来 PSPP 的扩展也未必能在 SPSS 中运行。其三,图形界面 PSPPIRE 的菜单布局参照了通用统计软件习惯,但并未逐一复刻 SPSS 的每一个对话框,相关路径在本书中均标注为界面推断。
因此,从 SPSS 迁移到 PSPP 通常是低成本的,尤其当工作集中在描述统计、t 检验、相关、回归与常规方差分析时;而当流程依赖尚未实现的高级过程(如析因方差分析的 UNIANOVA、基于 GPL 的原始作图)时,则需要寻找替代路径或保留原有软件。认清这条边界,既能避免在不兼容命令上反复碰壁,也能在可行范围内充分享受开源方案带来的自由。
1.4 PSPP 的功能特点与适用场景
PSPP 的强项,在于把统计分析变得透明、可复现且零成本。它适合以下几类场景:
- 教学与入门:命令与菜单一一对应,便于讲解每一项统计量背后的计算逻辑,又不像商业软件那样带来授权负担。
- 中小规模数据分析:问卷、实验记录、观测样本等常规体量下,PSPP 的描述统计、假设检验、方差分析与回归能力足以覆盖绝大多数课程与研究需求。
- 可复现的语法批处理:把分析写成
.sps语法文件,既能在pspp命令行批量重跑,也便于在服务器、容器等无图形界面的环境中复用,保证结果可审计、可追溯。 - 多格式输出:分析产物可导出为 PDF、HTML、TeX 等,方便嵌入报告、网页与论文排版系统。
也必须正视它的局限。PSPP 当前不支持以下部分高级过程(手册第 21 章 Not Implemented 清单):
ANOVA与UNIANOVA(析因方差分析):双因素及以上的方差分析在 PSPP 中须改用GLM命令,并在/DESIGN子命令中显式写出交互项(如age_group*sex)。单因素方差分析仍可用ONEWAY。GGRAPH、IGRAPH、XGRAPH(基于 GPL 的原始自定义作图):PSPP 当前不支持,无法用 GPL 语言绘制任意图形;常规统计图应改用GRAPH或FREQUENCIES/EXAMINE/CROSSTABS内嵌的图形子命令。STEMLEAF(茎叶图):PSPP 当前不支持;若需观察分布形态,可改用FREQUENCIES /HISTOGRAM或EXAMINE /PLOT=HISTOGRAM生成直方图替代。GET TRANSLATE:PSPP 当前不支持;导入 Excel 或 CSV 应改用GET DATA /TYPE=ODS或GET DATA /TYPE=TXT。- 另有
MANOVA、MULT RESPONSE、CURVEFIT、PPLOT等过程亦未实现。
这些缺口不影响 PSPP 在主流教学与中小规模分析中的可用性,但要求使用者清楚边界、及时转向可行方案,而非在缺失命令上反复碰壁。
1.5 本书约定与符号说明
为使后续各章口径一致,本书(技术侧)作如下约定:
命令、子命令、变量名、文件扩展名与英文菜单项一律保持英文原样,例如 COMPUTE、/VARIABLES、psppire、.sav,其后中文为说明。凡涉及图形界面的菜单路径,若属界面推断(即依据通用统计软件界面给出、手册未逐项文档化),均在附近标注"(界面推断,手册未逐项文档化)",提示读者以实际软件为准。
代码示例使用围栏代码块呈现,保留英文原样。PSPP 命令以英文句点 . 结尾;在交互提示符(如 PSPP>)下一行一条键入时,句点同样需要;而在某些特定提示符(如 data>)录入数据期间,则不要再重复输入句点。行内代码用反引号包裹。
统计符号采用通行约定:显著性水平记为 α,概率值记为 p,样本均值记为 x̄,样本标准差记为 s。其余统计量在正文首次出现时一并说明,避免读者来回翻查。
下面用一个轻量示例验证安装是否就绪:在终端运行 pspp --version 查看版本信息,或在图形界面中启动 psppire(界面推断,手册未逐项文档化)观察窗口是否正常弹出。两者任一成功,即表明 PSPP 已安装可用。
$ pspp --version
pspp (GNU PSPP) 2.0.1-gff8d3d
...启动 PSPPIRE 后,典型窗口由数据编辑器、语法编辑器(File → New → Syntax)与输出查看器组成;若窗口出现并能新建语法文件,便可进入后续章节的数据管理练习。本书随附示例所用的 physiology.sav、personnel.sav、repairs.sav、horticulture.sav 等数据均来自手册自带的示例集,纯属虚构,仅用于演示操作步骤,不得用于任何真实研究结论。