## Dirichlet toy model
library(perms)
set.seed(1996)
n = 500
num_trials = 10
levels = seq(-1, 1, length.out = num_trials)
trials = rep(n %/% num_trials, num_trials)
successes = c(10, 26, 10, 20, 20, 19, 29, 24, 31, 33)
S = 200
alpha = 1.0
get_X = function(S,n,alpha,seed){
set.seed(seed)
X = matrix(0, nrow = S, ncol = n)
for (s in 1:S) {
X[s,1] = rnorm(1)
for (i in 2:n) {
u = runif(1)
if(u < (alpha/(alpha+i-1))){
X[s,i] = rnorm(1)
}else{
if(i==2){
X[s,i] = X[s,1]
}else{
X[s,i] = sample(X[s, 1:(i-1)],size=1)
}
}
}
}
return(X)
}
seed = 1996
X = get_X(S, n, alpha, seed)
log_perms = get_log_perms_bioassay(X, levels, successes, trials,
debug=FALSE,parallel = FALSE)
log_ml = get_log_ML_bioassay(log_perms, successes, trials)
proportion = sum(!is.na(log_perms)) / S*100
proportion
log_ml
Run the code above in your browser using DataLab