基于样本量调整国家队均值的Scipy实现及经验贝叶斯方法问询
问题背景与需求
我有32支国家队的数据集,需要衡量每支球队的一个均值参数,计算逻辑为:先算出每支球队每场比赛中所有前锋的球探评分均值,再计算该球队所有比赛的均值(或中位数)。
世界杯预选赛中的球队分为两组:一组踢了18场及以上比赛,另一组仅踢了8场及以下比赛。我的假设是:若两支球队的均值相同,样本量更大(踢18场)的球队应排名更高。
分组数据与分析
小样本组(比赛数≤8场)
通过以下代码筛选数据:
less_than_8 = all_stats[all_stats['games']<=8]
得到的avg_attack数据如下:
3 0.610759 7 0.579832 14 0.537579 20 0.346510 25 0.403606 27 0.536443
用以下代码绘制核密度估计曲线:
sns.displot(less_than_8, x="avg_attack",kind='kde',bw_adjust=2)
该组数据的均值为0.5024547681196802。
大样本组(比赛数≥18场)
通过以下代码筛选数据:
more_than_18 = all_stats[all_stats['games']>=18]
得到的avg_attack数据如下:
0 0.148860 1 0.330585 4 0.097578 6 0.518595 8 0.220798 11 0.200142 12 0.297721 15 0.256037 17 0.195157 18 0.176994 19 0.267094 21 0.295228 22 0.248932 23 0.420940 24 0.148860 28 0.297721 30 0.350516 31 0.205128
绘制核密度估计曲线后,该组数据均值更低,为0.25982701104003497。
显然样本量会影响均值,样本量越大均值越低。
核心疑问
是否可以利用先验和后验假设,将大样本量的均值调整为如同基于小样本量计算的结果,或者反之?我已拥有所有球队的标准差(std)。
了解到经验贝叶斯(Empirical Bayes)估计结合beta分布是类似问题的解决方案,但不确定如何从现有案例中推导先验均值。
内容的提问来源于stack exchange,提问作者8-Bit Borges
相关产品推荐
相关产品推荐

