私のコードのチャンクが行っているのは、4X100000 行列を F のいずれかの T で埋めることです。行列に X という名前を付けます。次に、Xij ~ Bernoulli(P) および P~normal(0.5,0.15) ここで、max(P) = 1 および最小(P) = 0。
統計は非常に非効率的です。上記のプロセスに準拠しているディストリビューションがあれば、私も助けてください。
毎回ランダムである 1 エントリごとに行列全体を埋める必要があるため、計算は非常に遅くなります。かかる時間を大幅に短縮する方法はありますか?非常に非効率的です。
ここで統計効率の問題
x = rnorm(100000,mean = 0.5,sd = 0.15)
x[x > 1] = 1
x[x < 0] = 0
probability = function(x){
x.sam = sample(x,1)
p = c(x.sam,1-x.sam)
return(p)
}
aggro2 = function(x){
aggro2 = sample(c(T,F),1, prob = probability(x))
return(aggro2)
}
ここで計算効率の問題
ptm = proc.time()
aggro =c()
n=100000
for (i in 1:(4*n)){
cat(round(i/(4*n)*100,2),"\n")
aggro = c(aggro, aggro2(x))
}
aggro.mat = matrix(aggro,4,n)
elapsed = proc.time()[3] - ptm[3]
cat(elapsed)