基本概念
1. 集中趋势度量
2. 集中趋势度量代码实现
import numpy as np
import pandas as pd
from scipy import stats
def weighted_avg(values, weights):
return (values * weights).sum() / weights.sum()
if __name__ == '__main__':
## 创建随机Series,10-20随机10个数
df = pd.Series(np.random.randint(10, 20, 10))
weights = pd.Series([1, 1, 2, 1, 1, 1, 2, 1, 1, 1]) ##加权系数
## 数据的集中程度
print('算术平均数:',df.mean()) # 平均数
print('加权平均数:',weighted_avg(df, weights)) # 加权平均数
print('加权平均数v2:', np.average(df,weights=weights)) # 加权平均数
print('几何平均数', stats.gmean(df)) #几何平均数
print('众数:',df.mode()[0]) # 众数
print('中位数:', df.median()) # 中位数
print('分位数第一位',df.quantile(0.25)) # 25%分位数
print('分位数第二位:',df.quantile(0.5)) # 50%分位数
print('分位数第三位:',df.quantile(0.75)) # 75%分位数
3. 离散程度度量
标准分数(Z分)经验法则:
(1)当一组数据对称分布时,经验法则表明:
约有68%的数据在平均数±1个标准差的范围之内。
约有95%的数据在平均数±2个标准差的范围之内。
约有99%的数据在平均数土3个标准差的范围之内。
(2)切比雪夫不等式
经验法则适合对称分布的数据。如果一组数据不是对称分布,经用,这时可使用切比雪夫不等式(Chebyshev’s inequality),它对任据都适用。切比雪夫不等式提供的是“下界”,也就是“所占比例到任意分布形态的数据,根据切比雪夫不等式,至少有(1-1/k2)的准差之内。其中k是大于1的任意值,但不一定是整数。对于k=2的含义是:
至少有75%的数据在平均数士2个标准差的范围之内。
至少有89%的数据在平均数土3个标准差的范围之内。
至少有94%的数据在平均数土4个标准关的范围之内。
4. 离散程度度量代码实现
import numpy as np
import pandas as pd
if __name__ == '__main__':
## 创建随机Series,10-20随机10个数
df = pd.Series(np.random.randint(10, 20, 10))
## 数据的离散程度
print('方差:',df.var()) # 方差
print('标准差:',df.std()) # 标准差
print('平均差:',np.abs(df-df.mean()).mean()) # 平均绝对偏差
print('四分位极差:',df.quantile(0.75) - df.quantile(0.25)) # 四分位差
print('异众比率:', 1 - df.value_counts()[df.mode()].sum() / df.count())
print('离散系数:', df.std() / df.mean()) # 离散系数