python - 如何计算 Python 中非高斯分布中值的中值和 68% 置信区间?

标签 python numpy scipy statistics

我有一个数据集,它是一个 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/

相关文章:

java - 从逆向工程的 lua 文件中解码 Ascii 字符串值

python - 如何在 Python 的 Mako 模板中迭代时跟踪状态

Python Dataframe 将 bool 列数据合并为一列数据

python - to_categorical 返回 2 列矩阵

python - 如何只将一个参数传递给 odeint?

python-3.x - Sklearn kmeans等效于肘法

python - 如何在python 3中使用给定的两个页面输入来搜索每个页面

php - 将 JSON 传递给 PHP 不起作用

python - numpy数组: First occurence of N consecutive values smaller than threshold

python - Python3.3的Scipy在哪里下载?