代码之家  ›  专栏  ›  技术社区  ›  Krantz

如何将权重合并到似然函数中

  •  4
  • Krantz  · 技术社区  · 6 年前

    我想在可能性中加入权重来做 svyglm 与重量有关。

    根据 @Jeremy Miles elsewhere ,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)
    ))
    

    这是我的似然函数:

    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 回复  |  直到 6 年前
        1
  •  2
  •   Julius Vainora    6 年前

    正如你提到的答案中所说,不同的权重在不同的上下文中使用不同。在您当前的示例中,我没有看到任何群体,但是目标非常明确:每个观察都有一个特定的“重要性”。那么加权最大似然将简单地使用

    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))
    }
    

    这确实可以解释为包括对样品w的第i次观察。 时间(当然,这种解释仅适用于整数权重,而该方法适用于任何权重):

    enter image description here