如何给定潜在指示符有条件求和?

问题描述 投票:1回答:1

我要在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的新手,非常感谢您的帮助。

r statistics sum conditional-statements poisson
1个回答
1
投票

如果yz的长度相等,那么您可以尝试下面的代码,并且我相信它在数学上等同于您的目标

sum(dpois(y,lambda0,log=TRUE)*(1-z)+dpois(y,lambda1,log=TRUE)*z)
© www.soinside.com 2019 - 2024. All rights reserved.