3

すべてのステップでポアソン確率変数の実現があり、この実現を保存してから、次のポアソン確率変数を実現し、それを前のすべての実現の合計に追加するプロセスを生成したいと思います。さらに、すべてのステップでこのプロセスが停止する可能性があります。それが皆さんにとって理にかなっていることを願っています...どんな考えでもありがたいです!

4

2 に答える 2

7

よりコンパクトに言えば、停止する前に達成されたステップの総数に対して単一の幾何学的に分散された乱数を選択し、それを使用cumsumして多くのポアソン偏差を合計します。

stopping.prob <- 0.3  ## for example
lambda <- 3.5         ## for example
n <- rgeom(1,1-stopping.prob)+1  ## constant probability per step of stopping
cumsum(rpois(n,lambda))
于 2011-06-12T14:50:21.077 に答える
1

シミュレーションのパラメーターについて非常に曖昧ですが、これはどうですか?

ランダム ポアソン数のラムダ。

lambda <- 5

これは、関数が終了するときのしきい値です。

th <- 0.999

長さ 1000 のベクトルを作成します。

bin <- numeric(1000)

くそったれを実行します。基本的に「サイコロ」を振ります (生成される値は 0 から 1 の間です)。値が 未満の場合th、ランダムなポアソン数を返します。値がそれを上回っているth(等しくない) 場合、関数は停止します。

for (i in 1:length(bin)) {
    if (runif(1) < th) {
        bin[i] <- rpois(1, lambda = lambda)
    } else {
        stop("didn't meet criterion, exiting")
    }
}

ゼロがある場合は削除します。

bin <- bin[bin != 0]

cumsum値を累積的に合計するために使用できます。

cumsum(bin)
于 2011-06-12T12:45:48.063 に答える