使用Python NumPy的绝对偏差和绝对平均偏差
绝对值:
绝对值或实数x的模数是x的非负值,不考虑其符号。例如,7的绝对值是7,-7的绝对值也是7。
偏差:
偏差是衡量一个变量的观察值与其他一些数值(通常是该变量的平均值)之间的差异。
绝对偏差:
数据集中某一元素的绝对偏差是该元素与某一特定点之间的绝对差异。观测值X1, X2, X3, ….., Xn围绕一个值A的绝对偏差定义为-
对于离散的(未分组的)数据-
对于连续(未分组)的数据–
绝对平均偏差:
绝对平均偏差用绝对偏差来衡量数据在中位数周围的扩散和分散程度,最好是中位数。当围绕中位数测量时,观察值X1、X2、X3、……、Xn的绝对偏差最小,即A是数据的中位数。那么,由此得到的绝对偏差被称为绝对平均偏差,定义为:。
对于离散的(未分组的)数据——。
对于连续(未分组)的数据 –
Decision Making:
1.绝对平均偏差(或绝对偏差)值较高的数据集具有更多的可变性。
2.绝对平均偏差(或绝对偏差)值较低的数据集为佳。
-> 如果有两个绝对平均值为AMD1和AMD2的数据集,并且AMD1>AMD2,那么可以说AMD1中的数据比AMD2中的数据具有更大的变异性。
示例:
以下是过去20天内每天报名参加GeeksforGeeks -DS & Algo课程的考生人数。
75, 69, 56, 46, 47, 79, 92, 97, 89, 88, 36, 96, 105, 32, 116, 101, 79, 93, 91, 112
代码#1:使用numpy的绝对偏差
# Importing mean, absolute from numpy
from numpy import mean, absolute
data = [75, 69, 56, 46, 47, 79, 92, 97, 89, 88,
36, 96, 105, 32, 116, 101, 79, 93, 91, 112]
# Assume any point A about which
# absolute deviation is to be calculated
A = 79
sum = 0 # Initialize sum to 0
# Absolute deviation calculation
for i in range(len(data)):
av = absolute(data[i] - A) # Absolute value of the differences
# of each data point and A
# Summing all those absolute values
sum = sum + av
# Sum divided by length of data yields
# the absolute deviation
print(sum / len(data))
输出:
20.15
代码#2:使用numpy的绝对平均偏差
# Importing mean, absolute from numpy
from numpy import mean, absolute
data = [75, 69, 56, 46, 47, 79, 92, 97, 89, 88,
36, 96, 105, 32, 116, 101, 79, 93, 91, 112]
# Absolute mean deviation
mean(absolute(data - mean(data)))
输出:
20.055
代码#3:使用pandas的绝对平均偏差
# Import the pandas library as pd
import pandas as pd
data = [75, 69, 56, 46, 47, 79, 92, 97, 89, 88,
36, 96, 105, 32, 116, 101, 79, 93, 91, 112]
# Creating data frame of the given data
df = pd.DataFrame(data)
# Absolute mean deviation
df.mad() # mad() is mean absolute deviation function
输出:
20.055