使用 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+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告