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

已知t值计算代码,如何求解100个样本的p值?

计算t检验的p值(样本量n=100)

你的样本量为100,对应的自由度是 df = sample_size - 1 = 99。可以用Python的scipy.stats模块快速计算p值,分双侧检验和单侧检验两种场景,具体实现如下:

步骤1:安装依赖(如果未安装)

如果还没装scipy,先执行:

pip install scipy

步骤2:完整代码实现

import numpy as np
from scipy import stats

sample_mean = 12.75
sample_std = 2
sample_size = 100
pop_mean = 13.04

# 计算已有的t统计量
t_statistic = (sample_mean - pop_mean) / (sample_std / np.sqrt(sample_size))
# 计算自由度
df = sample_size - 1

# 双侧检验p值(检验样本均值与总体均值是否存在差异)
p_two_sided = 2 * stats.t.sf(np.abs(t_statistic), df)
# 左侧单侧p值(检验样本均值是否显著小于总体均值)
p_left = stats.t.cdf(t_statistic, df)
# 右侧单侧p值(检验样本均值是否显著大于总体均值)
p_right = stats.t.sf(t_statistic, df)

# 输出结果
print(f"t统计量: {t_statistic:.4f}")
print(f"双侧p值: {p_two_sided:.4f}")
print(f"左侧单侧p值: {p_left:.4f}")
print(f"右侧单侧p值: {p_right:.4f}")

代码说明

  • stats.t.sf:生存函数,计算的是t > 给定值的概率(即右尾概率)
  • 双侧检验需要将单侧结果乘以2,因为要同时考虑正负两个方向的尾部概率
  • 左侧检验直接用stats.t.cdf计算t <= 给定值的累积概率
  • 选择哪种p值取决于你的检验方向:
    • 仅检验「样本均值和总体均值是否有差异」→ 用双侧p值
    • 明确检验「样本均值是否显著小于/大于总体均值」→ 用对应方向的单侧p值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:23:16