使用 NumPy 計算絕對偏差和平均絕對偏差


在統計分析中,對樣本資料變異性的研究表明給定資料樣本中的值分散程度。我們計算變異性的兩種重要方法是**絕對偏差**和**平均絕對偏差**。

絕對偏差

在這種方法中,我們首先找到給定樣本的平均值,然後計算每個值與樣本平均值之間的差值,稱為每個資料樣本的絕對偏差值。因此,對於高於平均值的數值,偏差值將為正,對於低於平均值的數值,偏差值將為負。接下來,我們使用**絕對值**函式將每個偏差都變為正數。將所有這些絕對偏差加起來會得到一個正結果。如果沒有絕對值,這些偏差的總和將為零。

在下面的示例中,我們獲取一個數據樣本並計算每個資料元素的絕對偏差。

示例

from numpy import mean, absolute
   data = [12, 42, 53, 13, 112]
# Find mean value of the sample
M = mean(data)
print "Sample Mean Value = ",mean(data)
print "\n"
# Calculate absolute deviation
print "Data-Mean","","deviation"
for i in range(len(data)):
   dev = absolute(data[i] - M)
   print data[i],"-",M,round((dev),2)

輸出

執行以上程式碼會得到以下結果:

Sample Mean Value = 46.4
Data-Mean deviation
12 - 46.4 34.4
42 - 46.4 4.4
53 - 46.4 6.6
13 - 46.4 33.4
112 - 46.4 65.6

平均絕對偏差 (MAD)

平均絕對偏差 (MAD) 是我們為每個資料點計算的所有絕對偏差的平均值。採用與上一個示例相同的樣本,我們新增程式碼來對絕對偏差的值求和,並將其除以樣本大小。

示例

from numpy import mean, absolute
data = [12, 42, 53, 13, 112]
# Find mean value of the sample
M = mean(data)
print "Sample Mean Value = ",mean(data)
sum = 0
# Calculate mean absolute deviation
for i in range(len(data)):
   dev = absolute(data[i] - M)
   sum = sum + round(dev,2)
print "Mean Absolute Deviation: ", sum/len(data)

輸出

執行以上程式碼會得到以下結果:

Sample Mean Value = 46.4
Mean Absolute Deviation: 28.88

更新於: 2020-07-03

1K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告