我想知道如何从参数为p的伯努利随机变量的另一个泊松过程中模拟。
为了在区间[0,t]上模拟参数为\lambda的第一泊松过程,通常
pois = rpois(1, \lambda)
v = runif(pois, O, t)
w = sort(v)
现在,我知道我们可以将一个伯努利随机变量与第一个泊松过程的到达时间联系起来,来模拟另一个参数为p * \lambda的泊松过程,但是怎么做呢?
我知道Knuth用于生成随机泊松分布数的算法(下面用Java语言),但是我如何将其转换为随时间随机调用方法generateEvent()?
int poissonRandomNumber(int lambda) {
double L = Math.exp(-lambda);
int k = 0;
double p = 1;
do {
k = k + 1;
double u = Math.random();
p = p * u;
} while (p > L);
return k - 1;
}
我不确定堆栈溢出是否是问这个问题的合适地方,但我很好奇如何表示随机变量。
假设一个随机变量X ~ N(mu, sigma),那么我们可以分别用它的均值和协方差来表示它。然而,我知道这只适用于高斯分布。如果我想表示一个泊松分布,那么这个数据类型就不能再保存随机变量了。
我的问题可以归结为,有没有像其他数据结构一样表示随机变量的语言/库?就我个人而言,我发现很难理解随机变量的概念,这样的表示将是很棒的。我的理想概念是
RandomVariable rv = new RandomVariable(mu, sigma) // Assume 1-Dimension as of now
我知道在MATLA
我正在尝试用python3绘制泊松分布,但我在正确拟合数据集时遇到了问题。我现在拥有的功能是:
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from scipy.misc import factorial
#where valor is like [1,2,4,4,4,5,6,2,5,5,7,4,7,3,2,5,7,9,4,44,33,1,3,43,54,22,12,3,24,34,55,33]
data = valor
entries, bin_edges