在给定潜在指标的情况下,如何有条件地求和?
How can I conditionally sum given a latent indicator?
我想在 R 中计算以下总和:
$\sum^K_{k=1} [(1-z_i) * log[y_i|\lambda_0] + z_i * log[y_i|\lambda_1]]$, where [y_i|\lambda_{1/2}] follows a Poisson(\lambda_{1/2}) distribution.
潜在指示变量 z_i 等于 0 或 1,在向量 z 中提供。
目前我的 R 脚本中有这段代码:
sum(dpois(y,lambda0,log=TRUE)[z==0]+dpois(y,lambda1,log=TRUE)[z==1])
我收到以下错误,
longer object length is not a multiple of shorter object length
在这种情况下,我认为这不是我的问题。我只是不知道如何调整我的总结。我是 R 的新手,非常感谢您的帮助。
如果你的 y
和 z
长度相等,那么你可以试试下面的代码,我相信它在数学上等同于你的 objective
sum(dpois(y,lambda0,log=TRUE)*(1-z)+dpois(y,lambda1,log=TRUE)*z)
我想在 R 中计算以下总和:
$\sum^K_{k=1} [(1-z_i) * log[y_i|\lambda_0] + z_i * log[y_i|\lambda_1]]$, where [y_i|\lambda_{1/2}] follows a Poisson(\lambda_{1/2}) distribution.
潜在指示变量 z_i 等于 0 或 1,在向量 z 中提供。
目前我的 R 脚本中有这段代码:
sum(dpois(y,lambda0,log=TRUE)[z==0]+dpois(y,lambda1,log=TRUE)[z==1])
我收到以下错误,
longer object length is not a multiple of shorter object length
在这种情况下,我认为这不是我的问题。我只是不知道如何调整我的总结。我是 R 的新手,非常感谢您的帮助。
如果你的 y
和 z
长度相等,那么你可以试试下面的代码,我相信它在数学上等同于你的 objective
sum(dpois(y,lambda0,log=TRUE)*(1-z)+dpois(y,lambda1,log=TRUE)*z)