【发布时间】:2018-12-05 09:05:11
【问题描述】:
我有一个数据集,它是一个 numpy 数组,比如 a=[a1,a2,.....] 以及数据 w=[w1,w2,w3...] 的权重。我已经使用 numpy histogram 包计算了直方图,它给了我 hist 数组。现在我想计算这个概率分布函数的中位数以及中位数周围的 68% 等高线。记住我的数据集不是高斯的。
有人可以帮忙吗?我正在使用 python。
【问题讨论】:
-
只是为了确认,对于您的数据集,w1 给出了值 a1 的可能性等?
-
我注意到,即使在“我觉得不错”的答案的情况下,您也不必赞成和接受您的问题的答案。如果您认可这样的答案,您会发现人们更愿意提供帮助!毕竟,您获得了免费帮助,通常来自专家!
-
如果权重表示这些值的可能性有多大,那么您没有样本,而是总体的描述(这里的离散随机变量案例)和引导将不是正确的做法。回复:置信区间,计算不难,但“只是numpy.percentile”听起来不对。稍后会发布答案。
-
68% 置信区间的手动计算应该如下工作:创建 (ai, wi) 对并按 ai 对对进行排序。然后,从中位数开始,每个方向的总和(wi)增加 34%。这将是 Wikipedia 上 weighted median 计算对置信区间的扩展。需要考虑边缘情况/值(请注意,例如,维基百科有两个中位数情况),所以我很高兴 scipy.stats 有一个置信区间计算。 :)
标签: python numpy scipy statistics