У меня есть следующий алгоритм
Шаг 1. Создайте X1 = x1 ~ Bin (6,1 / 3)
Шаг 2. Создайте X2 | X1 = x1 ~ Bin (6-x1, (1/3) / (1-1 / 3))
Шаг 3. Генерируйте X3 | X1 = x1, X2 = x2 ~ Bin (6-x1-x2, (1/3) / (1-1 / 3-1 / 3))
Шаг 4. Повторите шаг 1-3 N раз.
Вот мой подход к реализации этого алгоритма в R:
mult_binom<-function(n) #n=6
{
n=1000
random_vectors<-Matrix(0,n,3)
for(i in 1:n){
X1<-rbinom(n,3,1/3)
X2<-rbinom(n-X1,3,(1/3)/(1-(1/3)))
X3<-rbinom(n-X1-X2,3,(1/3)/(1-(1/3)-(1-3)))
arr<-c(X1,X2,X3)
}
for(j in 1:n){
random_vectors[j]<-arr[j]
}
return(random_vectors)
}
Вызов функции как mult_bin(6)
дает аналогичную матрицу, как показано ниже
1000 x 3 sparse Matrix of class "dgCMatrix"
[1,] 1 . .
[2,] 1 . .
[3,] 1 . .
[4,] 2 . .
[5,] 1 . .
[6,] 1 . .
[7,] 1 . .
[8,] . 3 .
и продолжается до [1000,]
Я не ожидал этого результата.
Почему там точки?
Что я сделал не так?