1

R を使用して MCMC のサンプルを生成しようとしていますが、興味深い点が見つかりました。

i 番目のステップごとに、次のように新しいサンプルを追加します

for(i in 1: M){
newsample=generate_sample(y.vec[i]);
y.vec[i+1]=newsample;
}

結果として、M(10^8) の長さを生成できましたが、3 日ほど時間がかかりました。

うっかり二重のforループ文に変更してしまいました

for(j in 1: K){
   for(i in 1: L){
   newsample=generate_sample(y.vec[i]);
   y.vec[i+1]=newsample;
   }
y.vec.total=c(y.vec.total,y.vec);
}

2 番目のコードは効率が悪いと思っていましたが、K*L=(10000*10000) サンプルを生成するのに 1 時間しかかかりません。

比較的長いベクトルを扱うと計算コストが指数関数的に増加するようです。

私は正しいですか?

4

0 に答える 0