You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于np.var和np.sqrt的单侧T检验(Python实现)

练习背景

本次练习需对比两组数值列表,计算方差与均值后通过t检验分析差异。
假设研究人员验证新型药物对血压的影响,测量20名参与者服药前后血压,原假设为药物无影响,备择假设为药物可降血压,需进行单侧t检验,显著性水平设为0.05。

  • 服药前血压:118, 126, 132, 142, 136, 125, 130, 140, 128, 134, 138, 127, 131, 129, 139, 124, 133, 137, 141, 135
  • 服药后血压:116, 102, 125, 144, 107, 123, 118, 131, 145, 111, 134, 137, 128, 121, 142, 119, 135, 129, 139, 126
技术疑问解答
  1. 用差值数组计算方差是正确的
    这是配对t检验的标准操作:配对t检验本质是将前后测量的差值作为单样本,检验其均值是否显著小于0(对应药物降血压的单侧假设)。你混淆了“差值数组的方差”和“均值差的方差”——均值差就是差值数组的均值,而我们需要先计算差值数组的样本方差,再推导均值的标准误,因此用差值数组计算方差完全符合配对t检验的逻辑。

  2. np.var(med_diff, ddof=1)确实以n-1为除数
    NumPy的np.var函数中,ddof参数用于调整自由度:当ddof=1时,计算的是样本方差,除数为n-1;默认ddof=0时计算的是总体方差,除数为n。官方文档明确说明除数为N - ddof(N为样本量),你的推测完全正确。

  3. 教授的标准误写法正确,需除以n再开平方
    标准误是样本均值的标准差,对于配对t检验,我们关注的是差值均值的标准误,公式为:
    标准误 = 差值的样本标准差 / √n
    而差值的样本标准差是√var_med,因此标准误等价于√(var_med / n)。你直接开平方得到的是差值的样本标准差,并非标准误,所以教授的写法是正确的。

免责声明

我知晓有其他模块可实现t检验或计算标准差,但教授要求按此方式实现。

实现代码
#原假设(H0):药物对血压无影响
#备择假设(H1):药物能降低血压

import numpy as np
from scipy.stats import t

#服药前血压数据
before_med = np.array([118, 126, 132, 142, 136, 125, 130, 140, 128,
                       134, 138, 127, 131, 129, 139, 124, 133, 137, 141, 135])

#服药后血压数据
after_med = np.array([116, 102, 125, 144, 107, 123, 118, 131, 145,
                      111, 134, 137, 128, 121, 142, 119, 135, 129, 139, 126])

print(len(before_med), len(after_med))

n = len(before_med)

mean_before_med = np.mean(before_med)
print('服药前均值:', mean_before_med)
mean_after_med = np.mean(after_med)
print('服药后均值:', mean_after_med)

#通过t检验进行比较

#两组数据的差值数组
med_diff = after_med-before_med

#计算差值的样本方差(除以n-1)
var_med = np.var(med_diff, ddof=1)
print("差值的样本方差:", var_med)

#计算差值均值的标准误
s = np.sqrt(var_med/n)
print("标准误:", s)

df = n-1
tval = (mean_after_med-mean_before_med)/s
print("t值:", tval)

#单侧检验的p值(备择假设为差值均值<0)
pval = t.cdf(tval, df=df)

print("t值=", tval, "p值=", pval)

#结果:由于p值<0.05,拒绝原假设,认为药物能降低血压

#单侧检验的临界值(显著性水平0.05)
sep = t.ppf(0.95, df)
print("将5%的数据与95%的数据分开的临界值:", sep)

内容的提问来源于stack exchange,提问作者nala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:40:03