gpt4 book ai didi

r - 如何在 Logit 回归的调查数据上使用 GAM (mgcv) 中的样本权重?

转载 作者:行者123 更新时间:2023-12-04 10:48:07 25 4
gpt4 key购买 nike

我很感兴趣的是对来自全国性调查的数据进行 GAM 回归,该调查提供了样本权重。我很感兴趣地阅读了这篇 post .
我选择了我感兴趣的变量来生成 DF:

nhanesAnalysis <- nhanesDemo %>%
select(fpl,
age,
gender,
persWeight,
psu,
strata)

然后,据我所知,我使用以下代码生成了一个加权 DF:
library(survey)    
nhanesDesign <- svydesign( id = ~psu,
strata = ~strata,
weights = ~persWeight,
nest = TRUE,
data = nhanesAnalysis)

假设我只选择带有 age≥30 的科目:
ageDesign <- subset(nhanesDesign, age >= 30)

现在,我会用 fpl ~ s(age) + gender 拟合 GAM 模型( mgcv package ) .是否可以使用 weights 这样做?参数或使用 svydesign对象 ageDesign ?

编辑

我想知道从 svyglm 推断计算出的权重是否正确对象并将其用于 weights GAM 中的参数。

最佳答案

这比看起来要困难得多。有两个问题

  • 您想获得适量的平滑
  • 您需要有效的标准错误。

  • 只是将采样权重赋予 mgcv::gam()不会做以下任何一个: gam()将权重视为频率权重,因此会认为它拥有的数据比实际拥有的数据多得多。由于权重,您会得到不平滑和低估的标准误差,并且由于整群抽样,您也可能会得到低估的标准误。

    简单的解决方法是改用回归样条( splines 包)。这些不如 mgcv 使用的惩罚样条好,但差异通常不大,它们与 svyglm 直接合作。 .您确实需要选择分配多少自由度。
    library(splines)
    svglm(fpl ~ ns(age,4) + gender, design = nhanesDesign)

    关于r - 如何在 Logit 回归的调查数据上使用 GAM (mgcv) 中的样本权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56313837/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com