(1)py實現乙個總體均值的置信區間
"""mean:樣本均值
std:樣本標準差
sig: 總體方差
n: 樣本量
confidence:置信水平
功能:構建總體均值的置信區間
"""alpha = 1 - confidence
z_score = scipy.stats.norm.isf(alpha / 2) # z分布臨界值
t_score = scipy.stats.t.isf(alpha / 2, df = (n-1) ) # t分布臨界值
if n >= 30 and sig != none:
me = z_score*sig / np.sqrt(n) # 誤差
lower_limit = mean - me
upper_limit = mean + me
if n >= 30 and sig == none:
me = z_score*std / np.sqrt(n)
lower_limit = mean - me
upper_limit = mean + me
if n < 30 and sig == none:
me = t_score*std / np.sqrt(n)
lower_limit = mean - me
upper_limit = mean + me
return (round(lower_limit, 3), round(upper_limit, 3))
mean_interval(mean=8900, std=none, sig=500, n=35, confidence=0.95)
mean_interval(mean=8900, std=500, sig=none, n=35, confidence=0.90)
mean_interval(mean=8900, std=500, sig=none, n=35, confidence=0.99)
(2)py實現乙個總體方差的置信區間
(1) 樣本均值為21, 樣本標準差為2, 樣本量為50;
(2) 樣本均值為1.3, 樣本標準差為0.02, 樣本量為15;
(3) 樣本均值為167, 樣本標準差為31, 樣本量為22;
question1: 根據以上樣本結果,計算總體方差的90%的置信區間?
question2: 根據以上樣本結果,計算總體標準差的90%的置信區間?
def std_interval(mean=none, std=none, n=none, confidence=0.95, para="總體標準差"):
"""mean:樣本均值
std:樣本標準差
n: 樣本量
confidence:置信水平
para:總體估計引數
功能:構建總體方差&總體標準差的置信區間
"""variance = np.power(std,2)
alpha = 1 - confidence
chi_score0 = scipy.stats.chi2.isf(alpha / 2, df = (n-1))
chi_score1 = scipy.stats.chi2.isf(1 - alpha / 2, df = (n-1))
if para == "總體標準差":
lower_limit = np.sqrt((n-1)*variance / chi_score0)
upper_limit = np.sqrt((n-1)*variance / chi_score1)
if para == "總體方差":
lower_limit = (n-1)*variance / chi_score0
upper_limit = (n-1)*variance / chi_score1
return (round(lower_limit, 2), round(upper_limit, 2))
std_interval(mean=21, std=2, n=50, confidence=0.90)
std_interval(mean=1.3, std=0.02, n=15, confidence=0.90)
std_interval(mean=167, std=31, n=22, confidence=0.90)
(3)py實現兩個總體方差比的置信區間
def two_std_interval(d1, d2, confidence=0.95, para="兩個總體方差比"):
"""d1: 資料1
d2: 資料2
confidence:置信水平
para:總體估計引數
功能:構建兩個總體方差比&總體標準差比的置信區間
"""n1 = len(d1)
n2 = len(d2)
var1 = np.var(d1, ddof=1) # ddof=1 樣本方差
var2 = np.var(d2, ddof=1) # ddof=1 樣本方差
alpha = 1 - confidence
f_score0 = scipy.stats.f.isf(alpha / 2, dfn=n1-1, dfd=n2-1) # f分布臨界值
f_score1 = scipy.stats.f.isf(1-alpha / 2, dfn=n1-1, dfd=n2-1) # f分布臨界值
if para == "兩個總體標準差比":
lower_limit = np.sqrt((var1 / var2) / f_score0)
upper_limit = np.sqrt((var1 / var2) / f_score01)
if para == "兩個總體方差比":
lower_limit = (var1 / var2) / f_score0
upper_limit = (var1 / var2) / f_score1
return (round(lower_limit, 2), round(upper_limit, 2))
two_std_interval(data1, data2, confidence=0.95, para="兩個總體方差比")
引數估計與置信區間
數碼林部落格 原文引自 我們總是希望能夠從一些樣本資料中去 資料總體的表現特徵,在 資料分析中也是如此,我們試圖從最近幾天的資料表現來推測目前 的整體形勢是怎麼樣的,有沒有變好或者變差的訊號,但當前幾天的資料無法完全代表總體,所以這裡只能使用 估計 同時,的資料始終存在波動,將最近時間段的資料作為抽...
python實現引數估計
引數估計 parameter estimation 統計推斷的一種。根據從總體中抽取的隨機樣本來估計總體分布中未知引數的過程。從估計形式看,區分為點估計與區間估計 從構造估計量的方法講,有矩法估計 最小二乘估計 似然估計 貝葉斯估計等。要處理兩個問題 1 求出未知引數的估計量 2 在一定信度 可靠程...
引數估計 引數估計
1 引數估計 用樣本統計量去估計總體的引數。2 估計量 用於估計總體引數的統計量的名稱 如樣本均值,樣本比例,樣本方差等 例如 樣本均值就是總體均值 3 引數用 4 估計值 估計引數時計算出來的統計量的具體值 如果樣本均值 5 點估計 例如 用樣本均值直接作為總體均值的估計乙個點估計量的可靠性是由它...