我要在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
的长度相等,那么您可以尝试下面的代码,并且我相信它在数学上等同于您的目标
sum(dpois(y,lambda0,log=TRUE)*(1-z)+dpois(y,lambda1,log=TRUE)*z)