Я запускаю симуляцию, пытаясь найти вероятность того, что что-то произойдет в ряде биномиальных испытаний. Я начинаю с указанием данных
iter=5000
data=data.frame(prob=runif(300), value=runif(300))
data<-data[sample(nrow(data), iter, replace=T),]
затем я добавляю испытания
cols <- c("one","two","three","four","five","six",
"seven","eight","nine","ten","eleven","twelve")
data[,cols] <- NA
one
содержит результаты только одного биномиального исследования, two
содержит результаты двух биномиальных испытаний и так далее. Если биномиальное событие происходит в любом из one
, two
, three
, ..., twelve
, ячейка помечается 1 или 0.
Затем я запускаю испытания для iter=5000
симуляции
for (col in 3:14) {
for (i in 1:iter) if (sum(rbinom((col-2),1,data[i,1]))>0) data[i,col]<-1 else data[i,col]<-0
}
Затем я оцениваю mean(data$value[data$one==0]
до ... mean(data$value[data$twelve==0]
Моя проблема в том, что код симуляции занимает вечно iter>15000
.
for (col in 3:14) {
for (i in 1:iter)
data[i,col] <- if (sum(rbinom((col-2),1,data[i,1]))>0) 1 else 0
}
Есть идеи?