溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python計算庫numpy進行方差/標準方差/樣本標準方差/協(xié)方差的示例分析

發(fā)布時間:2021-08-11 11:22:42 來源:億速云 閱讀:1648 作者:小新 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關Python計算庫numpy進行方差/標準方差/樣本標準方差/協(xié)方差的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

variance: 方差

方差(Variance)是概率論中最基礎的概念之一,它是由統(tǒng)計學天才羅納德·費雪1918年最早所提出。用于衡量數(shù)據(jù)離散程度,因為它能體現(xiàn)變量與其數(shù)學期望(均值)之間的偏離程度。具有相同均值的數(shù)據(jù),而標準差可能不同,而通過標準差的大小則能更好地反映出數(shù)據(jù)的偏離度。

計算:一組數(shù)據(jù)1,2,3,4,其方差應該是多少?

計算如下:

均值=(1+2+3+4)/4=2.5
方差=((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 +(4-2.5)^2)/4 = (2.25+0.25+0.25+2.25)/4 = 1.25

python的numpy庫中使用var函數(shù)即可求解,代碼&執(zhí)行如下:

liumiaocn:tmp liumiao$ cat np-5.py 
#!/usr/local/bin/python
import numpy as np
arr = np.array([1,2,3,4])
print("variance of [1,2,3,4]:", np.var(arr))
liumiaocn:tmp liumiao$ python np-5.py 
('variance of [1,2,3,4]:', 1.25)
liumiaocn:tmp liumiao$

standard deviation: 標準偏差

標準偏差=方差的開放,所以:

計算: 一組數(shù)據(jù)1,2,3,4,其標準偏差應該是多少?

計算就很簡單了,對其求出的方差1.25進行開方運算即可得到大約1.118

可以使用numpy庫中的std函數(shù)就可以非常簡單的求解,代碼&執(zhí)行如下:

liumiaocn:tmp liumiao$ cat np-6.py 
#!/usr/local/bin/python
import numpy as np
arr = np.array([1,2,3,4])
print("variance of [1,2,3,4]:", np.var(arr))
print("sqrt of variance [1,2,3,4]:",np.sqrt(np.var(arr)))
print("standard deviation: np.std()", np.std(arr))
liumiaocn:tmp liumiao$ python np-6.py 
('variance of [1,2,3,4]:', 1.25)
('sqrt of variance [1,2,3,4]:', 1.118033988749895)
('standard deviation: np.std()', 1.118033988749895)
liumiaocn:tmp liumiao$

sample standard deviation: 樣本標準偏差

標準偏差是對總體樣本進行求解,如果有取樣,則需要使用樣本標準偏差,它也是一個求開方的運算,但是對象不是方差,方差使用是各個數(shù)據(jù)與數(shù)學均值的差的求和的均值,簡單來說除的對象是N,樣本偏差則是N-1。

計算: 一組數(shù)據(jù)1,2,3,4,其樣本標準偏差應該是多少?
計算如下:
均值=(1+2+3+4)/4=2.5
樣本標準偏差的方差=((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 +(4-2.5)^2)/3 = (2.25+0.25+0.25+2.25)/4 = 5/3
所以對5/3開方運算所得到的就是樣本標準偏差為:1.29

同樣適用numpy的std函數(shù)就可以做到這點,只需要將其一個Optional的參數(shù)設定為1即可,代碼&執(zhí)行如下:

liumiaocn:tmp liumiao$ cat np-7.py 
#!/usr/local/bin/python
import numpy as np
arr = np.array([1,2,3,4])
print("sample standard deviation: np.std()", np.std(arr, ddof=1))
liumiaocn:tmp liumiao$ python np-7.py 
('sample standard deviation: np.std()', 1.2909944487358056)
liumiaocn:tmp liumiao$

注意:matlab中的std實際指的是樣本標準偏差,這點需要注意,如果你的代碼從matlab上copy過來,請注意其實際的意義是標準偏差還是樣本標準偏差

Covariance:協(xié)方差

協(xié)方差和方差較為接近,區(qū)別在于除數(shù)為N-1。

計算: 一組數(shù)據(jù)1,2,3,4,其協(xié)方差應該是多少?

計算如下:

均值=(1+2+3+4)/4=2.5
方差=((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 +(4-2.5)^2)/(4-1) = (2.25+0.25+0.25+2.25)/3 = 1.66667

使用numpy的cov函數(shù)即可簡單求出,代碼和執(zhí)行結果如下:

liumiaocn:tmp liumiao$ cat np-8.py 
#!/usr/local/bin/python
import numpy as np
arr = np.array([1,2,3,4])
print("Covariance: np.cov()", np.cov(arr))
liumiaocn:tmp liumiao$ python np-8.py 
('Covariance: np.cov()', array(1.66666667))
liumiaocn:tmp liumiao$

關于“Python計算庫numpy進行方差/標準方差/樣本標準方差/協(xié)方差的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI