Как включить весовые коэффициенты в функцию правдоподобия? - PullRequest
0 голосов
/ 16 декабря 2018

Я хочу включить весовые коэффициенты в вероятность того, что svyglm делает с весовыми коэффициентами.

Согласно Джереми Майлзу и в других местах , svyglmФункция использует весовые коэффициенты для «взвешивания важности каждого случая, чтобы сделать их репрезентативными (друг для друга, ...)».

Вот мои данные:

(dat <- data.frame(
  A = c(1, 1, 0, 0), B = c(1, 0, 1, 0),
  Pass = c(278, 100, 153, 79), Fail = c(743, 581, 1232, 1731), Weights= c(3, 1, 12, 3)
))

Вот мой likelihood функция:

ll <- function (b0, b1, b2, b3) {
  odds <- exp(b0) * (1 + b1 * dat$A + b2 * dat$B + b3 * dat$A * dat$B)
  -sum(dbinom(
    x = dat$Pass, size = rowSums(dat[, 3:4]),
    prob = odds / (1 + odds), log = TRUE))
}

1 Ответ

0 голосов
/ 16 декабря 2018

Как сказано в приведенных вами ответах, разные веса используются по-разному в разных контекстах.В вашем текущем примере я не вижу каких-либо групп населения, хотя цель довольно ясна: для каждого наблюдения должна быть указана «важность».Тогда взвешенное максимальное правдоподобие будет просто использовать

ll <- function (b0, b1, b2, b3) {
  odds <- exp(b0) * (1 + b1 * dat$A + b2 * dat$B + b3 * dat$A * dat$B)
  -sum(dat$Weights * dbinom(
    x = dat$Pass, size = rowSums(dat[, 3:4]),
    prob = odds / (1 + odds), log = TRUE))
}

Это действительно можно интерпретировать как включение i-го наблюдения в выборку w i раз (эта интерпретация, конечно, точноtrue только для целых весов, в то время как метод работает с любыми весами):

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...