我有一个数据集,它是一个 numpy 数组,比如 a=[a1,a2,.....] 以及数据的权重 w=[w1,w2,w3...]。我使用 numpy histogram 包计算了直方图,它给了我 hist 数组。现在我想计算这个概率分布函数的中值以及中值周围的 68% 等高线。记住我的数据集不是高斯的。
有人可以帮忙吗?我正在使用 python。
最佳答案
这是一个使用 scipy.stats.rv_discrete 的解决方案:
from __future__ import division, print_function
import numpy as np, scipy.stats as st
# example data set
a = np.arange(20)
w = a + 1
# create custom discrete random variable from data set
rv = st.rv_discrete(values=(a, w/w.sum()))
# scipy.stats.rv_discrete has methods for median, confidence interval, etc.
print("median:", rv.median())
print("68% CI:", rv.interval(0.68))
输出反射(reflect)了示例数据集中的不均匀权重:
median: 13.0
68% CI: (7.0, 18.0)
关于python - 如何计算 Python 中非高斯分布中值的中值和 68% 置信区间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39894213/