【发布时间】:2017-07-04 04:45:57
【问题描述】:
我正在尝试从头开始在 python 中重新创建一个双尾样本 t 检验以加深我的理解,并且我似乎有一些数据样本的工作代码,但我发现一个示例与输出不匹配来自 scipy.ttest_1samp ,我试图找出原因。
t 统计数据匹配,但我得到不同的 p 值。我的 t.cdf 函数是否有问题导致我的 p 值错误?
我的代码:
sample = [10.81261135, 9.68035252, 9.87293556, 10.06308861,
9.57381722, 10.00922156, 10.90522431, 9.70843104,
10.16614481, 10.09447189, 10.51260742, 10.17503686,
10.38718472, 10.52334431, 9.55808306, 10.24290938,
10.6048062 , 10.27535938, 9.6329808 , 9.67338239]
mu = 7.128061097
sam_mean = np.mean(sample)
sam_std = np.std(sample, ddof=1)
n = len(sample)
df = n-1
t = (sam_mean-mu) / (sam_std / (n**(1/2.)))
p = (scs.t.cdf(t,df))*2
return (t,p)
我的结果:
(32.369715406889142, 2.0)
scipy.ttest_1samp 的结果:
Ttest_1sampResult(statistic=32.369715406889142, pvalue=4.3828444145707213e-18)
【问题讨论】:
-
你的p值不应该是生存函数(1 - cdf)* 2吗?
标签: python numpy scipy statistics