上篇博文中的置信区间计算代码在使用过程中并不准确,本人没并没有搞清楚原因 - - 求大神解答:

import numpy as npfrom 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

感谢。

收藏 打印