天天看點

[python skill]利用python計算T分布下的置信區間

上篇博文

中的置信區間計算代碼在使用過程中并不準确,本人沒并沒有搞清楚原因 - - 求大神解答:

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 感謝。