python 計算t分佈的雙側置信區間

如下所示:

interval=stats.t.interval(a,b,mean,std)

t分佈的置信區 間

a:置信水平

b:檢驗量的自由度

mean:樣本均值

std:樣本標準差

from scipy import stats
import numpy as np
x=[10.1,10,9.8,10.5,9.7,10.1,9.9,10.2,10.3,9.9]
x1=np.array(x)
mean=x1.mean()
std=x1.std()
interval=stats.t.interval(0.95,len(x)-1,mean,std)
interval
Out[9]: (9.531674678392644, 10.568325321607357)

補充:用Python學分析 – t分佈

1. t分佈形狀類似於標準正態分佈

2. t分佈是對稱分佈,較正態分佈離散度強,密度曲線較標準正態分佈密度曲線更扁平

3. 對於大型樣本,t-值與z-值之間的差別很小

作用

– t分佈糾正瞭未知的真實標準差的不確定性

– t分佈明確解釋瞭估計總體方差時樣本容量的影響,是適合任何樣本容量都可以使用的合適分佈

應用

– 根據小樣本來估計呈正態分佈且方差未知的總體的均值

– 對於任何一種樣本容量,真正的平均值抽樣分佈是t分佈,因此,當存在疑問時,應使用t分佈

樣本容量對分佈的影響

– 當樣本容量在 30-35之間時,t分佈與標準正態分佈難以區分

– 當樣本容量達到120時,t分佈與標準正態分佈實際上完全相同瞭

自由度df對分佈的影響

– 樣本方差使用一個估計的參數(平均值),所以計算置信區間時使用的t分佈的自由度為 n – 1

– 由於引入額外的參數(自由度df),t分佈比標準正態分佈的方差更大(置信區間更寬)

  - 與標準正態分佈曲線相比,自由度df越小,t分佈曲線愈平坦,曲線中間愈低,曲線雙側尾部翹得愈高

  - 自由度df愈大,t分佈曲線愈接近正態分佈曲線,當自由度df= ∞ 時,t分佈曲線為標準正態分佈曲線

圖表顯示t分佈

代碼:

# 不同自由度的學生t分佈與標準正態分佈
import numpy as np
from scipy.stats import norm
from scipy.stats import t
import matplotlib.pyplot as plt
print('比較t-分佈與標準正態分佈')
x = np.linspace( -3, 3, 100)
plt.plot(x, t.pdf(x,1), label='df=1')
plt.plot(x, t.pdf(x,2), label='df=20')
plt.plot(x, t.pdf(x,100), label = 'df=100')
plt.plot( x[::5], norm.pdf(x[::5]),'kx', label='normal')
plt.legend()
plt.show()

運行結果:

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。