【问题标题】:Creating vector with Poisson increments使用泊松增量创建向量
【发布时间】:2020-09-02 10:51:16
【问题描述】:

如果我们从 0 到 1 之间的向量开始,M = 100 个增量

z = np.linspace(0,10,M)

此向量从 0 到 1 具有相等的增量。

我想创建一个新向量,其中增量 z_{n+1}-z_n 根据参数 lambda 的泊松分布分布。我通过 cumsum 尝试了这个

lam = 10000
dz = np.random.poisson(lam, M)
z = np.cumsum(dz)

但我不确定这是否正确?这个新向量 z 的增量是否有通过泊松分布分布的增量?

【问题讨论】:

  • 你能解释一下“z 向量看起来不对”是什么意思吗?我不知道那应该是什么样子。如果你在泊松分布上做 cumsum,它看起来与泊松分布完全不同,对吧?我想,我不明白你的问题是什么。
  • 我将此问题标记为不清楚,因为您会问两件事;关于具有 M 增量的向量的一些东西,以及关于 cumsum'd possion 的图形的一些东西。我不能说我明白问题是什么。如果您可以整理您的问题,我们可以更好地帮助您找到答案。 :-)
  • 抱歉,我已经更新了我的问题@Alan

标签: python numpy poisson


【解决方案1】:

感谢更新,我现在明白问题所在了。答案是不;你不应该期望向量z 的增量是泊松分布。

为了说明原因,让我们创建一堆不同的泊松分布并将它们相加。

a = np.random.poisson(1000, 200)
b = np.random.poisson(1000, 200)
c = np.random.poisson(1000, 200)
d = np.random.poisson(1000, 200)
e = np.random.poisson(1000, 200)

plt.figure(figsize=(15, 10))
plt.hist(a+b, bins=200)
plt.hist(a+b+c, bins=200)
plt.hist(a+b+c+d, bins=200)

这看起来像:

很酷,所以我们可以看到结果似乎仍然是泊松分布,但直方图移动得越来越高。还要注意 lambda 参数的线性缩放。所有分布的 lambda=1000,当我将 2 加在一起时,结果看起来像 lambda = 2000 的分布,当我添加 3 时,它看起来像 lambda=3000。

所以,这实际上只是大致地看待问题,似乎以这种方式添加向量会保留泊松行为,并增加 lambda 值。

但是,您的用例是每个区间必须是从泊松分布中提取的值。假设我们的向量以[lambda, 0, 0, ..., 0] 开头,其中 lambda 表示从具有速率参数 lambda 的泊松分布中提取的值。为了获得 ith 值,我们将另一个从泊松中提取的值 lambda 添加到 (i-1)th 值。所以我们的向量看起来像[l, l+l, 0, ..., 0]。如果我们重复这个,我们的向量是:

z = [l, l+l, l+l+l, ..., l+ ...n-1 times... l]

这肯定不是泊松分布。这大致相当于从我绘制的每个直方图中提取一个值。您的图表看起来如此的原因是因为数组中后面的值非常高,当然它们是,最终值是平均值接近 10,000 的 1000 个值的总和!直方图绘制等间距的 bin。如果你将垃圾箱的数量设置得太低,你会得到一个厚块。如果将其设置得太高,您将获得每个包含单个值计数的离散块,大致位于i*lambda,其中i 是数组元素的索引。

最后一点要注意;如果中间的值是从平均值为 10, 000 的分布中提取的,则您不能要求数组以 0 开头并以 1 结尾。除非您想做一些标准化。

【讨论】:

    猜你喜欢
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多