統計學第九周 引數估計python實現

2021-10-01 18:25:32 字數 3787 閱讀 5322

統計學第九周

引數估計複習

引數估計,根據從總體中隨機取樣獲得樣本,根據取樣樣本來估計總體分布中引數的過程。

方法:估計形式上分:點估計與區間估計;估計的方法有矩法估計,最小二乘法估計,似然估計,貝葉斯估計等等

問題一般有:

?未知引數的估計量

?在一定置信度下求解估計量的精度

實戰2.1

#coding=utf-8

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import seaborn as sbn

from scipy import stats

plt.rcparams[

'font.sans-serif']=

['simhei'

]plt.rcparams[

'axes.unicode_minus']=

false

#解決負數座標顯示

df = pd.read_excel(

'd:\\excel\\tj-week7_data.xlsx'

)print

(df.head())

age = df[

'age'

]#print(age.mean())

#29.64209269662921

#抽取100個樣本

age_sam = age.sample(

100)

print

(age_sam.describe(

))

count    100.000000

mean 30.635800

std 15.160597

min 0.750000

25% 22.000000

50% 28.000000

75% 41.500000

max 66.000000

name: age, dtype: float64

2.2

#計算置信區間

#1)、pandas.std() 預設是除以n-1 的,即是無偏的,如果想和numpy.std() 一樣有偏,需要加上引數ddof=0 ,即pandas.std(ddof=0) ;dataframe的describe()中就包含有std();

#2)、 numpy.std() 求標準差的時候預設是除以 n 的,即是有偏的,np.std無偏樣本標準差方式為加入引數 ddof = 1;

#正態分佈下的置信區間

defnorm_conf

(data,confidence=

0.95):

sample_mean = np.mean(data)

sample_std = np.std(data,ddof =1)

sample_size =

len(data)

conf_interval = stats.norm.interval(confidence,loc=sample_mean,scale=sample_std)

print

(conf_interval)

norm_conf(age)

年齡在95%的置信區間維

(1.2364661816394822, 58.04771921161894)

注:scipy.stats.norm.interval

# 求正態分佈95%置信區間

ci = stats.norm.interval(

0.95

, loc=mean, scale=std)

# 隨機生成1000個樣本

norm_samples = stats.norm.rvs(loc=mean, scale=std, size=

1000

)# 求gamma置信區間 gamma(a, b)

ci_gamma = stats.gamma.interval(

0.95

, a, scale=

1/b)

# 隨機生成1000個樣本

gamma_samples = stats.gamma.rvs(a, scale=

1/b, size=

1000

)80954267

可參考:

正態分佈官網

#t分布

#t分布下的置信區間

defttest_conf

(data,confidence=

0.95):

sample_mean = np.mean(data)

sample_std = np.std(data,ddof=1)

sample_size =

len(data)

conf_interval = stats.t.interval(confidence,df =

(sample_size-1)

,loc=sample_mean,scale=sample_std)

print

(conf_interval)

ttest_conf(age)

(1.1880290866314134

,58.09615630662701

)

2.3

#重複抽取資料1000次,計算正態分佈下的95%置信區間範圍

scale_means =

for _ in

range

(1000):

# for _ in range(n): _是佔位符,表示不在意變數的值,只是迴圈n次

scale_sample = age.sample(

100,replace=

true

) mean = scale_sample.mean(

)#print(scale_means)

print

(norm_conf(scale_means)

)#(26.683871851503763, 32.56412034849624)

print

(ttest_conf(scale_means)

)#t分布下

(26.82880423989253

,32.40856276010748

)

2.4

#繪製資料sbn.set_palette("hls")#設定所有圖顏色,hls色彩空間

本文參考自:

其中主要**來自於該鏈結。

問題:在計算置信區間時,已知方差和未知方差,在計算時是否需要處以根號n,?

numpy.std() 樣本方差,預設就是除以n的,而方差已知則是在計算時需要轉化,再處以n,確實是對的

統計學 第八周 引數估計

梳理大綱 引數估計 1 點估計 矩估計法 2 區間估計 總體均值的區間估計 總體比例的區間估計 總體方差的區間估計 兩個總體均值之差的區間估計 兩個總體比例之差的區間估計 兩個總體方差比的區間估計 3 樣本量的確定 估計總體均值時樣本量的確定 估計總體比例時樣本量的確定 參考資料 引數估計 用樣本統...

統計學第九周學習

這週的學習內容是引數估計實踐,主要是使用python對我們上週學習的理論知識進行實踐。正態分佈下的置信區間 def norm conf data,confidence 0.95 sample mean np.mean data sample std np.std data,ddof 1 sample...

統計學二 假設檢驗與引數估計

假設檢驗是推斷性統計的基石,也是統計學習中的難點。在本課節中,老師會用最簡明易懂的語言講透假設檢驗以及與其密切相關的置信區間的原理,幫助學員在使用樣本估計總體時能夠知其然並且知其所以然。在現實問題中,我們難以直接對總體,如北京市所有區域每一時點的空氣質素指標進行統計分析,因此往往通過抽樣方式來推測真...