上篇博文中的置信区间计算代码在使用过程中并不准确,本人没并没有搞清楚原因 - - 求大神解答:
import numpy as np
from scipy import stats
X1=np.array([14.65,14.95,8.49,9.51,10.23,2.75])
Xmean=X1.mean()
Xstd=X1.std(ddof=1)
interval=stats.t.interval(0.95,len(X1-1),Xmean,Xstd)
print("置信区间为:",interval)
在计算一个文献中出现的数据时出现了问题:
↑为python代码输出结果
↑为R输出结果
↑正确结果。
并没有找到其他现成的包里面的命令用于直接计算T分布下的置信区间,通过查阅资料找到自定义函数实现置信区间的计算:
def ci_t (data,confidence=0.95):
sample_mean = np.mean(data)
sample_std = np.std(data,ddof=1)
sample_size = len(data)
alpha = 1 - confidence
t_score = scipy.stats.t.isf(alpha / 2, df = (sample_size-1) )
ME = t_score * sample_std / np.sqrt(sample_size)
lower_limit = sample_mean - ME
upper_limit = sample_mean + ME
print( str(confidence*100)+ '%% Confidence Interval: ( %.2f, %.2f)' % (lower_limit, upper_limit))
return lower_limit, upper_limit
input:
ci_t(X1)
output:
95.0% Confidence Interval:(5.38, 14.82)
结果正确~
thats all thank you~
代码引用自:https://www.jianshu.com/p/6cfce4cc2f7f
感谢。