其中有一个类别,statsmodels
可让您轻松计算加权统计信息:statsmodels.stats.weightstats.DescrStatsW
。
假设此数据集和权重:
import numpy as np
from statsmodels.stats.weightstats import DescrStatsW
array = np.array([1,2,1,2,1,2,1,3])
weights = np.ones_like(array)
weights[3] = 100
初始化类(请注意,此时您必须输入校正因子,即自由度增量):
weighted_stats = DescrStatsW(array, weights=weights, ddof=0)
然后您可以计算:
.mean
的加权平均值:
>>> weighted_stats.mean
1.97196261682243
.std
所述加权的标准偏差:
>>> weighted_stats.std
0.21434289609681711
.var
的加权方差:
>>> weighted_stats.var
0.045942877107170932
.std_mean
加权平均值的标准误差:
>>> weighted_stats.std_mean
0.020818822467555047
万一您对标准误差和标准偏差之间的关系感兴趣,请执行以下操作:标准误差的ddof == 0
计算公式为()为加权标准偏差除以权重总和的平方根减去1(版本对应的来源)statsmodels
GitHub上的0.9):
standard_error = standard_deviation / sqrt(sum(weights) - 1)