python方差的计算公式为什么减一_样本标准差分母为何是n-1
歡迎各位學(xué)習(xí)從0到1Python數(shù)據(jù)科學(xué)之旅,騰訊課堂和網(wǎng)易云課堂入口分別如下:
(騰訊課堂新營(yíng)業(yè),報(bào)名可領(lǐng)取20元優(yōu)惠券)
微信公眾號(hào):pythonEducation
模型和統(tǒng)計(jì)項(xiàng)目QQ:231469242
大家好,今天給大家介紹標(biāo)準(zhǔn)差。標(biāo)準(zhǔn)差在統(tǒng)計(jì)領(lǐng)域是一個(gè)重要概念,有些地方晦澀難懂,特別是樣本標(biāo)準(zhǔn)差的分母為何是n-1,而不是n或n-2,接下來我會(huì)一一介紹并用計(jì)算機(jī)模擬難點(diǎn)。
什么是標(biāo)準(zhǔn)差?下面看兩組數(shù)[28,29,30,31,32],[10,20,30,40,50],它們的平均數(shù)都是30。這兩組數(shù)是一致的嗎?實(shí)際上,這兩組數(shù)離散程度有很大區(qū)別。
用numpy模塊計(jì)算,兩組數(shù)的標(biāo)準(zhǔn)差相差10倍
方差是實(shí)際值與期望值之差平方的平均值。方差,通俗點(diǎn)講,就是和中心偏離的程度!用來衡量一批數(shù)據(jù)的波動(dòng)大小(即這批數(shù)據(jù)偏離平均數(shù)的大小)并把它叫做這組數(shù)據(jù)的方差。記作S2。
在樣本容量相同的情況下,方差越大,說明數(shù)據(jù)的波動(dòng)越大,越不穩(wěn)定。標(biāo)準(zhǔn)差就是方差的平方根。方差和標(biāo)準(zhǔn)差用于不同場(chǎng)合,方便計(jì)算。
(標(biāo)準(zhǔn)差英文解釋)
方差公式
標(biāo)準(zhǔn)差公式
難點(diǎn)來了,總體標(biāo)準(zhǔn)差和樣本標(biāo)準(zhǔn)差的公式是有區(qū)別的,如下圖
樣本標(biāo)準(zhǔn)差公式中,分母是n-1。
為何樣本標(biāo)準(zhǔn)差的分母為何是n-1,而不是n或n-2?
我們用計(jì)算機(jī)建模,環(huán)境Anaconda(python2.7)
參數(shù)解釋:
Sigma表示總體標(biāo)準(zhǔn)差
S表示樣本標(biāo)準(zhǔn)差
ddofValue=0?表示樣本標(biāo)準(zhǔn)差分母是n
ddofValue=1 表示樣本標(biāo)準(zhǔn)差分母是n-1
ddofValue=2 表示樣本標(biāo)準(zhǔn)差分母是n-2
算法思路:
1.模擬出一個(gè)總體(服從正態(tài)分布的1000個(gè)隨機(jī)數(shù))
2.?從總體中隨機(jī)抽樣(100個(gè)隨機(jī)數(shù))
3.分別算出總體和樣本的標(biāo)準(zhǔn)差,然后相減得到distance差值
4.循環(huán)1000次試驗(yàn),把1000個(gè)distance相加,得到total_distance
5.在步驟3中,分別對(duì)樣本標(biāo)準(zhǔn)差的分母取n, n-1,n-2, ?最終得到dict_modes
觀察dict_modes,ddof1的絕對(duì)值最小3.8
ddof1=1 表示樣本標(biāo)準(zhǔn)差分母是n-1
總結(jié):s樣本標(biāo)準(zhǔn)差的分母采用n-1更加接近真實(shí)的總體標(biāo)準(zhǔn)差。通過計(jì)算機(jī)模擬,我們證明了為什么樣本標(biāo)準(zhǔn)差的分母n-1比較合適,而不是n或n-2。
源代碼:
如果允許代碼有任何問題,請(qǐng)反饋至郵箱231469242@qq.com
# -*- coding: utf-8 -*-
'''
為什么樣本標(biāo)準(zhǔn)差的分母是n-1
'''
import random
import numpy as np
#試驗(yàn)次數(shù)
trial=1000
#正態(tài)分布總體大小
size_total=1000
#正態(tài)分布樣本大小
size_sample=100
#分母狀態(tài)
#ddofValue=0 表示樣本標(biāo)準(zhǔn)差分母是n
#ddofValue=1 表示樣本標(biāo)準(zhǔn)差分母是n-1
#ddofValue=2 表示樣本標(biāo)準(zhǔn)差分母是n-2
list_ddofValues=[0,1,2]
#返回樣本標(biāo)準(zhǔn)差和總體標(biāo)準(zhǔn)差的距離總和
def Total_distance(ddofValue):
#總體標(biāo)準(zhǔn)差
和樣本標(biāo)準(zhǔn)差的差值
total_distance=0
for i in range(trial):
normal_values=list(np.random.normal(size=size_total))
#總體標(biāo)準(zhǔn)差
sigma=np.std(normal_values,ddof=0)
#隨機(jī)抽樣
sample=random.sample(normal_values,size_sample)
s=np.std(sample,ddof=ddofValue)
distance=sigma-s
total_distance+=distance
return total_distance
#選擇最佳模型
def Dict_modes():
distance_ddof0=Total_distance(list_ddofValues[0])
distance_ddof1=Total_distance(list_ddofValues[1])
distance_ddof2=Total_distance(list_ddofValues[2])
dict_modes={}
dict_modes["ddof0"]=distance_ddof0
dict_modes["ddof1"]=distance_ddof1
dict_modes["ddof2"]=distance_ddof2
return dict_modes
dict_modes=Dict_modes()
print dict_modes
'''
for i in range(trial):
normal_values=list(np.random.normal(size=n))
#總體標(biāo)準(zhǔn)差
sigma=np.std(normal_values,ddof=0)
#plt.hist(normal_values)
#隨機(jī)抽樣
sample=random.sample(normal_values,100)
#plt.hist(sample)
s=np.std(sample,ddof=ddofValue)
distance=sigma-s
total_distance+=distance
print"when ddofValue is:",ddofValue
print"Distance:",total_distance
'''
End.
Python數(shù)據(jù)分析與機(jī)器學(xué)習(xí)項(xiàng)目實(shí)戰(zhàn)
(騰訊課堂新營(yíng)業(yè),報(bào)名可領(lǐng)取20元優(yōu)惠券)
總結(jié)
以上是生活随笔為你收集整理的python方差的计算公式为什么减一_样本标准差分母为何是n-1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 托运车辆多少钱啊?
- 下一篇: python的ogr模块_python