Как можно условно суммировать данный скрытый показатель? - PullRequest
1 голос
/ 21 марта 2020

У меня есть следующая сумма, которую я хочу вычислить в 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 и буду очень признателен за вашу помощь.

1 Ответ

1 голос
/ 21 марта 2020

Если ваши y и z имеют одинаковую длину, вы можете попробовать приведенный ниже код, и я считаю, что он математически эквивалентен вашей цели

sum(dpois(y,lambda0,log=TRUE)*(1-z)+dpois(y,lambda1,log=TRUE)*z)
...