分布点在数据的分布点上

2024-10-04 09:20:14 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个大数据集,我可以在某种排序分析中对其进行操作。它可以查看概率分布中的值。在

现在我有了这个大数据集,然后我想比较已知的,实际的数据。首先,我的数据集中有多少值与已知数据具有相同的值或属性。例如:

enter image description here

这是一个累积分布。连续谱线来自模拟生成的数据,强度降低只是预测的百分比。然后这些恒星是观测(已知)数据,与生成的数据进行对比。在

我举的另一个例子是如何将点投影到直方图上:

enter image description here

我很难标记已知的数据点在生成的数据集中的位置,并沿着生成的数据的分布累积地绘制它。在

如果我试图检索在生成的数据附近的点数,我会这样开始(这是不对的):

def SameValue(SimData, DefData, uncert):
     numb = [(DefData-uncert) < i < (DefData+uncert) for i in SimData]
     return sum(numb)

但是我很难解释掉在值范围内的点,然后把它们都设置到我可以绘制的地方。你知道如何收集这些数据并将其投射到累积分布上吗?在


Tags: 数据属性排序绘制例子投影将点百分比
1条回答
网友
1楼 · 发布于 2024-10-04 09:20:14

这个问题相当混乱,有很多不相关的信息,但在关键点上却模棱两可。我会尽力翻译的。在

我想你想要的是:给定一个未知分布的有限样本,在一个固定值下获得一个新样本的概率有多大?在

我不确定是否有一个普遍的答案,但无论如何,这将是一个问题,问统计学或数学的人。我猜你需要对分布本身做一些假设。在

然而,对于实际情况,找出新值将位于抽样分布的哪个仓位就足够了。在

假设我们有一个分布x,我们把它分成bins。我们可以使用numpy.histogram计算直方图h。在每个bin中找到一个值的概率由h/h.sum()给出。
如果有一个值v=0.77,我们想根据分布知道它的概率,我们可以通过在bin数组中查找索引ind来找到它所属的bin,该索引需要插入这个值以使数组保持排序。这可以使用^{}完成。在

import numpy as np; np.random.seed(0)

x = np.random.rayleigh(size=1000)
bins = np.linspace(0,4,41)
h, bins_ = np.histogram(x, bins=bins)
prob = h/float(h.sum())

ind = np.searchsorted(bins, 0.77, side="right")
print prob[ind] # which prints 0.058

因此,概率是5.8%的概率来采样一个在0.77左右的bin值。在

另一种选择是在bin中心之间插值直方图,以找到概率。在

在下面的代码中,我们绘制一个与问题图片中的分布相似的分布图,并使用两种方法,第一种方法用于频率直方图,第二种方法用于累积分布。在

^{pr2}$

enter image description here

相关问题 更多 >