t测试1放大器给出的P_值错误

2024-06-16 10:43:43 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是一个单样本t检验示例:

from scipy.stats import ttest_1samp
import numpy as np

ages = [32., 34., 29., 29., 22., 39., 38., 37.,38, 36, 30, 26, 22, 22.]
ages_mean = np.mean(ages)
ages_std = np.std(ages, ddof=1)
print(ages_mean)
print(ages_std)
ttest, pval = ttest_1samp(ages, 30)
print("ttest: ", ttest)
print("p_value: ", pval)
#31.0
#6.2634470725607025
#ttest:  0.5973799001456603
#p_value:  0.5605155888171379

# check analytically:
my_ttest = (ages_mean - 30.0)/(ages_std/np.sqrt(len(ages)))
print(t)
#0.5973799001456603

检查p_值

根据定义p_value = P(t>=0.59) = 1 - P(t<=.59).
使用Z表,我们得到p_value = 1 - 0.7224 = 0.2776 # 0.56!!!


Tags: fromimportnumpy示例valuestatsnpscipy
1条回答
网友
1楼 · 发布于 2024-06-16 10:43:43

如果您检查ttest_1amp的渐晕图,它会写道:

enter image description here

所以它是一个双边的p值,意味着得到一个比这个更极端的绝对t统计量的概率之和

t分布是对称的,因此我们可以取-abs(t stat)乘以2进行双面测试,p值为:

from scipy.stats import t
2*t.cdf(-0.5973799001456603, 13)
0.5605155888171379

对于单侧t检验,您的导出值是正确的:)

相关问题 更多 >