Это мой код для проведения клинического испытания, чтобы показать вероятность того, что испытание было успешным. Моя проблема в том, что мне нужно показать, что, вводя второй набор выборок (n.2), сколько выборок требуется для получения значения выше порога 90%. Любая помощь, пожалуйста, я знаю, что мне нужно зациклить код, который у меня есть, но у меня проблемы с этим.
calc.quant = function( n, X.1, a, b, n.2, nsim, thr, p1=0.025, p2=0.975 )
{
a.star = a + n
b.star = b + n - X.1
theta = rbeta( nsim, a.star, b.star
X.2 = rbinom( nsim, n.2, theta )
theta.p1p2 = matrix( 0, nrow=nsim, ncol=2 )
for( j in 1:nsim ) {
theta.p1p2[j,] = qbeta( c( p1, p2 ), a.star + X.2[j], b.star + n.2 - X.2[j] )
}
return( theta.p1p2 )
}
n = 117
X.1 = 110
a = 1
b = 1
n.2 = 50
nsim = 1000
thr = .90
res = calc.quant( n, X.1, a, b, n.2, nsim, thr )
sum( res[,1] > thr ) / nsim
*apply
для создания выходных данных для диапазона входных данных. Если ваша цель состоит в том, чтобы вместо этого сделать что-то, что действительно работает до достижения порога, вы можете попробовать циклwhile
ИЛИ продолжить использованиеfor
, но включить операторbreak
. - person Thomas   schedule 08.06.2013