【发布时间】:2019-04-09 05:16:52
【问题描述】:
我正在尝试实现伯努利混合,并且想知道如何在不循环的情况下正确地对计算进行矢量化。
我尝试了各种版本的 apply 但无法获得所需的输出 (dim = c(5,4,2)。我的组件参数应该在列表中而不是矩阵中吗?
set.seed(123)
#Data
X <- matrix(sample(c(0,1), 20, replace = TRUE, prob = c(.6, .4)),
nrow = 5, ncol = 4)
#Params
parameters <- matrix(runif(8), nrow = 2, ncol = 4)
#Would like to vectorize this
dbinom(X, 1, parameters[1,], log = TRUE)
dbinom(X, 1, parameters[2,], log = TRUE)
【问题讨论】:
-
你试过
apply(parameters, 1, function(x) dbinom(X, 1, x, log = TRUE))
标签: r mixture-model expectation-maximization