ARTICLE DETAIL

资讯详情

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

SPSS单样本与独立样本t检验:Levene检验、效应量与Python复算

SPSS单样本与独立样本t检验:Levene检验、效应量与Python复算 简介这份PPT面向统计学初学者、教育或社科领域的师生与研究人员围绕SPSS中t检验这一常用推断统计方法展开讲解。内容以单样本t检验与独立样本t检验两大类型为主线具体示范了从数据导入、变量定义、菜单操作到结果解读的完整流程并配有学习兴趣分数、班级心理健康水平等真实练习案例有助于读者理解t值、自由度与p值的含义及显著性判断依据。资源包共1个PPT文件体积约1.24MB轻量便携适合课堂演示或自学通读。目前已有818人学习下载。对于需要在论文写作、教学备课或课题数据分析中快速掌握SPSS-t检验操作与结果解读的读者可直接参照案例完成练习并对照结果解释部分梳理解读逻辑在较短时间内建立从操作到结论的完整统计思维。1. 一份14人的学习兴趣分数为什么值得先跑一次单样本t检验14 个学生的学习兴趣分数摆在表格里全校平均分是 80这组人的平均分是 91.71。差距 11.71 分看起来很大但看起来大和统计上显著是两件事如果这 14 个人恰好是全校兴趣最浓的一小撮或者分数波动本身就大得离谱11.71 分的差距也可能只是抽样波动。SPSS 里的 t 检验就是用来把这种肉眼判断换成概率判断的工具单样本 t 检验回答的是一个样本均值与已知总体均值是否有显著差异独立样本 t 检验回答的是两组互不相关的样本均值是否来自同一个总体。这类内容对教育、心理、医学、社科的问卷数据分析最实用也是 SPSS 入门阶段最容易踩坑的一环——数据录错列、分组变量编错码、方差齐性不看就直接读第一行输出都会让结论反过来。下面从数据准备开始一路走到输出解读和复算验证每一步都给出可直接抄进 SPSS 的语法。2. SPSS 数据准备变量视图、分组编码与 t 检验前的正态性检查2.1 单样本与独立样本的数据排布差异很多人第一次做独立样本 t 检验卡住的地方不是统计而是数据怎么摆。SPSS 对这两种检验要求的数据结构完全不同摆错了菜单里连变量都拖不进去。单样本 t 检验只需要一列测量值样本的每一行就是一个观测没有分组信息。上面那 14 个兴趣分数就属于这种情况一列interest14 行。独立样本 t 检验需要两列一列是测量值因变量一列是分组标识自变量。一班和二班的心理健康分数必须竖着堆在同一列mental里共 24 行再用第二列class标注每行属于哪个班。常见的错误做法是把两个班分开写成两列然后在对话框里勾成对变量——那是配对样本 t 检验适用前提是两组数据一一对应比如同一批人前后测跟分别从两个班随机抽取 12 人完全不是一回事强行这么算自由度、p 值全错。提示判断标准很简单两组人之间有没有一一对应关系。有对应同一批被试的前后测、配对设计的双胞胎用配对样本没有对应两个班、两个组用独立样本。2.2 变量视图里的四行设置变量视图Variable View里需要落到实处的只有几个字段其余保持默认即可。变量名类型小数位值标签测量尺度interest数值 Numeric2无标度 Scalemental数值 Numeric0无标度 Scaleclass数值 Numeric01一班2二班名义 Nominalclass是分类变量测量尺度选名义两个分数变量选标度。值标签一定要写否则输出里的组别只显示 1 和 2报告时还得回头查代码本。分组变量的编码习惯用 1 和 2不要用 0 和 1 之外的跳跃值SPSS 的T-TEST GROUPS语法里要显式写出这两个值写错一个数字就会提示找不到组。如果不想手动敲数据可以直接用语法把数据灌进去这段可以整段复制到语法窗口跑DATA LIST FREE / interest. BEGIN DATA 90 85 88 92 95 99 100 89 92 91 93 88 87 95 END DATA. VARIABLE LABELS interest 学习兴趣测试分数. VARIABLE LEVEL interest (SCALE). EXECUTE.DATA LIST FREE表示按空白分隔自由读入BEGIN DATA ... END DATA包住原始数据块VARIABLE LEVEL把测量尺度显式声明为标度避免 SPSS 把整数变量误判成名义变量影响后续菜单过滤。跑完这段数据视图里就应该出现一列 14 行的数据右下角显示14 个案例。2.3 做 t 检验之前先看分布t 检验对数据有两个隐藏要求观测独立、样本来自近似正态的总体。样本量小的时候正态性对结论的影响会被放大14 个人的样本属于必须检查的区间。常用做法是用探索分析一次性拿到描述统计和正态性检验EXAMINE VARIABLESinterest /PLOT BOXPLOT HISTOGRAM NPPLOT /STATISTICS DESCRIPTIVES /NOTOTAL./PLOT里NPPLOT输出正态 Q-Q 图点基本贴着对角线就说明没有严重偏态/STATISTICS DESCRIPTIVES给出均值、标准差、偏度峰度/NOTOTAL是去掉总合计行减少输出噪音。看正态性检验表时重点看 Shapiro-Wilk 这一列样本量小于 50 时它以更高的检验效能著称。p 大于 0.05 只能说明没有足够证据推翻正态不等于数据一定正态配合直方图和 Q-Q 图一起看更稳妥。如果偏态严重且样本量小可以退一步用 Wilcoxon 符号秩检验代替单样本 t 检验结论表述改成中位数差异。3. 单样本t检验实战从91.71与80的比较拆解 t9.98、df13 与 p 值3.1 菜单路径与等价语法菜单操作是分析 → 比较均值 → 单样本 T 检验把interest拖进检验变量在检验值框里填总体均值 80。菜单点完一次之后SPSS 会在语法窗口留下等价语句建议直接改用语法方便复现和改参数T-TEST /TESTVAL80 /MISSINGANALYSIS /VARIABLESinterest /CRITERIACI(.95)./TESTVAL80就是要比较的总体均值这个数字必须来自外部已知信息不能拿样本均值反推/MISSINGANALYSIS表示按分析逐次排除缺失值而不是整行删除/CRITERIACI(.95)指定 95% 置信区间改显著性水平就改这里的 0.95比如做 99% 区间写.99。3.2 t 值是怎么被算出来的SPSS 输出的t9.98, df13, p.001不是黑箱手算一遍就知道每个数字从哪来。单样本 t 统计量的定义是t (样本均值 − 总体均值) / (样本标准差 / √n)代入 14 个兴趣分数均值 91.71样本标准差 4.39n14标准误 4.39 / √14 1.173。分子是 91.71 − 80 11.71于是 t 11.71 / 1.173 ≈ 9.98。自由度 df n − 1 13来自用样本标准差估计总体标准差时损失的那一个自由度。按这个逻辑可以用 Python 独立复算一遍避免把 SPSS 的选项点错还不自知import numpy as np from scipy import stats interest np.array([90, 85, 88, 92, 95, 99, 100, 89, 92, 91, 93, 88, 87, 95]) n len(interest) mean, sd interest.mean(), interest.std(ddof1) # ddof1 才是样本标准差 se sd / np.sqrt(n) t_manual (mean - 80) / se print(fn{n}, mean{mean:.2f}, sd{sd:.2f}, se{se:.3f}) print(ft(手算){t_manual:.3f}) print(stats.ttest_1samp(interest, popmean80)) # 输出 (t, p)ddof1是关键参数NumPy 默认ddof0算的是总体标准差直接拿来算标准误会把 t 值抬高一点点样本越小偏差越明显。stats.ttest_1samp返回的是双尾 p 值与 SPSS 输出表里 Sig.(双尾) 那一列对应。3.3 输出表读哪几列SPSS 的单样本检验输出是两张表。第一张是单样本统计给出 N、均值、标准差、标准误用来自查数据有没有录错——如果这里的均值和你手算的对不上先别往下看回去查数据。第二张是单样本检验包含 t、df、Sig.(双尾)、均值差、差值的 95% 置信区间。输出列本例取值含义t9.984检验统计量越大越偏离原假设df13自由度n−1Sig.(双尾).001在原假设成立时出现当前或更极端结果的概率均值差值11.714样本均值 − 检验值95% 置信区间[89.18, 94.25]差值的区间估计不包含 80置信区间这一列经常被忽略但它比 p 值信息量更大区间是 [89.18, 94.25]整段都落在 80 的右侧说明差异不仅显著方向也明确。报告时写t(13)9.98, p.001, 95% CI [89.18, 94.25]比只写显著高于专业得多。3.4 显著之后还要看效应量p 值小只说明不太可能是巧合不说明差异有多大。14 人的样本均值差 11.71 分配合 4.39 的标准差用 Cohens d 衡量d (样本均值 − 检验值) / 样本标准差 11.71 / 4.39 ≈ 2.67按常用经验标准d 超过 0.8 就算大效应2.67 属于非常大的量级说明这个班不仅显著高于全校而且高出的幅度在分布上是很扎眼的位置。SPSS 本身不直接输出 Cohens d可以手算也可以在语法里加/EFFECT相关的扩展命令或者用上面那段 Python 顺手算出来。4. 独立样本t检验实战两班心理健康分数的方差齐性与 Levene 检验4.1 数据落位与菜单入口两个班的心理健康分数共 24 个观测按 2.1 节说的方式堆成两列。菜单路径是分析 → 比较均值 → 独立样本 T 检验mental进检验变量class进分组变量然后点定义组在组 1 和组 2 的框里分别填 1 和 2。这一步没做输出里会提示无法分组。等价语法如下T-TEST GROUPSclass(1 2) /MISSINGANALYSIS /VARIABLESmental /CRITERIACI(.95).GROUPSclass(1 2)括号里是两个组的编码值顺序无所谓但必须和值标签一致如果分组变量有三个水平比如三个班这个命令只能比较其中两组多组比较应该用单因素方差分析加事后检验硬拆成多次两两比较会放大第一类错误率。4.2 Levene 检验决定了读哪一行独立样本 t 检验的输出表有两行 假定等方差和不假定等方差。选哪一行取决于同一张表里莱文方差等同性检验的显著性。Levene FLevene Sig.应读的行自由度写法1.281.269假定等方差df 22显著.05——不假定等方差df 带小数如 21.6本例两组样本量都是 12方差分别为 84.61 和 108.42Levene 检验的 F 值约 1.28p 约 .27没有证据说明方差不齐读第一行即可。这里有个容易被忽略的细节样本量相等时即使方差略有不齐t 检验对违背方差齐性的耐受度也较高真正危险的是样本量悬殊比如 10 比 200又方差不齐这时候第一行和第二行的结论可能完全相反必须读第二行并配合 Welch 校正。4.3 从均值差到 p 值一班的 12 个分数均值 77.67标准差 9.20二班均值 75.67标准差 10.41均值差只有 2 分。合并方差约为 96.51合并标准差 9.82标准误 9.82 × √(1/12 1/12) 4.011于是t (77.67 − 75.67) / 4.011 ≈ 0.499df 12 12 − 2 22双尾 p 约 .62远大于 .05说明两班的心理健康平均分没有统计学上的显著差异。这个结果恰好说明为什么不能只看均值差2 分的差距配上 9 到 10 分的组内波动、每组只有 12 人的样本量这个差异完全可能由随机抽样造成。差值的 95% 置信区间约为 [−6.32, 10.32]跨过 0与不显著的结论一致。把这三个环节用 Python 一次性验证import numpy as np from scipy import stats a np.array([85, 67, 83, 79, 92, 90, 74, 79, 81, 63, 70, 69]) # 一班 b np.array([88, 65, 68, 87, 56, 78, 83, 69, 70, 90, 75, 79]) # 二班 print(均值/标准差:, a.mean().round(2), a.std(ddof1).round(2), b.mean().round(2), b.std(ddof1).round(2)) print(Levene:, stats.levene(a, b)) # (F, p) print(等方差:, stats.ttest_ind(a, b, equal_varTrue)) # 对应第一行 print(Welch :, stats.ttest_ind(a, b, equal_varFalse)) # 对应第二行 print(非参 :, stats.mannwhitneyu(a, b, alternativetwo-sided))equal_varTrue对应 SPSS 的假定等方差行equal_varFalse就是 Welch 校正。SPSS 输出里还会附一张独立样本效应量表给出 Cohens d 和 Hedges 校正量本例 d ≈ 0.20属于小效应与 p 值的不显著互相印证。4.4 均值对不上时先查这三处数据中心理健康分数的均值按原始数据算是 77.67 和 75.67。如果你在软件里跑出来的均值不是这两个数别急着怀疑 SPSS按顺序查三件事分组变量有没有串行把一班的某个分数标成了 2、有没有把两班数据粘到同一列时漏行、缺失值是不是被整行删除了导致 N 变小。这三类错误在输出表第一行的 N 列上会直接暴露——N 不等于 12就说明数据落位有问题。5. 复算与报告交叉验证 SPSS 输出、效应量与练习题自检第一件事是把跑出来变成算得出来。上面两段 Python 代码的作用不是替代 SPSS而是建立一条独立验证链先用interest.std(ddof1)对照 SPSS 描述统计里的标准差再用ttest_1samp对照 t 和 p两者在保留两位小数后应该完全一致。只要有一项对不上问题一定在数据或参数上而不是算法上。这个习惯在写论文时尤其值钱因为审稿人问你的 t 值怎么来的你能立刻答出分子分母。第二件事是补上 SPSS 默认不输出的两个量效应量和置信区间宽度。单样本的 Cohens d 用均值差除以样本标准差独立样本用均值差除以合并标准差置信区间 SPSS 会输出但报告里经常被漏掉。一个完整的报告句式是该组英语成绩M79.00, SD10.02与全校均值 75 相比差异不显著t(14)1.55, p.144, 95% CI [−2.55, 10.55], Cohens d0.40。第二道练习题——英语成绩 97、85、67 一直到 70n15均值正好 79与 75 的差是 4 分标准误约 2.59t 约 1.55p 约 .14结论是不显著。这个例子特别适合用来打脸均值差 4 分肯定有差异的直觉。第三件事是把注意力从 p 值转到三件套上均值差、置信区间、效应量。p 值受样本量影响极大n 从 12 加到 120同样 2 分的均值差可能从 p.62 变成 p.01但效应量几乎不变。判断差异有没有实际意义看 d 和区间比看 p 更靠谱。注意用 Welch 校正行报告结果时自由度是小数例如 21.6报告里要照实写不能四舍五入成整数否则读者按公式复算会对不上。最后留一个自查清单式的技巧每次跑完 t 检验先把 SPSS 输出的 N 和均值抄下来与自己手算的两个数字对一遍再看 Levene 的 p 决定读哪一行最后确认置信区间有没有跨过检验值单样本或 0独立样本。这三步走完再下结论比直接盯着 Sig. 那一格点鼠标稳妥得多。报告里写t(22)0.50, p.62, 95% CI [−6.32, 10.32]比写无显著差异信息量大得多也经得起别人拿你的原始分数重算一遍。本文还有配套的精品资源点击获取
返回列表