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