使用 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
广告