python 實現引數估計 置信區間

2021-10-01 17:35:32 字數 3819 閱讀 3496

(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 點估計 例如 用樣本均值直接作為總體均值的估計乙個點估計量的可靠性是由它...