r - 如何将权重合并到似然函数中?
问题描述
我想将权重纳入对权重所做的事情的可能性中svyglm
。
根据Jeremy Miles和其他地方的说法,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))
}
解决方案
正如您在参考答案中所说,不同的权重在不同的上下文中使用不同。在您当前的示例中,我并没有真正看到任何人群,而目标很明确:每个观察都具有指定的“重要性”。然后加权最大似然将简单地使用
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次的第 i 次观察(当然,这种解释仅适用于整数权重,而该方法适用于任何权重):
推荐阅读
- google-cloud-firestore - 保存 Firestore 控制台过滤器设置
- javascript - React App 在同一服务器和多个域中
- python - 为什么 aiohttp 比 run_in_executor 包裹的请求慢?
- flutter - 我的颤振应用程序在启动时没有显示在 chrome 中,没有错误,当运行到我的 android 时,它给了我错误
- laravel - Laravel 帮助优化命令脚本
- django - 在上传 django 之前调整图像大小而不保存
- c++ - 正确实现类函数数组
- bash - 通过保留bash中的第一行来删除与特定模式匹配的所有行
- angular - 带有来自可观察对象的标头值的 httpinteceptor
- c# - 对话的 Outlook 收件箱对话视图的项目条件是什么?