假设我有以下从卡方分布中抽取的 100,000 个点的样本。
x=np.random.chisquare(10,100000)
我们绘制不对称的直方图。让我们说直方图代表概率。
我想获得 68% 的样本概率最高。或者,一般如何以最大概率获得 N% 的样本?请注意,当 N 趋于零时,我们将获得众数/最大值/最大似然点。请帮忙。PS我不是在寻找分位数/百分位数,如果分布/直方图不对称,它不会给出概率最高的样本部分。
对于您的问题,我能想到的最简单的解决方案是拟合卡方分布,评估每个样本的密度,然后在数据集的分数处取顶部k
样本。k
N'th
from math import floor
import numpy as np
from scipy.stats import chi2
N = 100000
k = int(floor(0.68 * N))
x = np.random.chisquare(10, N)
dist = chi2.fit(x)
top_k = x[np.argsort(chi2.pdf(x, *dist))][::-1][:k]