我对根据全国抽样调查数据得出的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)
现在,我将GAM模型(fpl ~ s(age) + gender
)与mgcv package
相匹配。是否可以使用weights
参数或使用svydesign
对象ageDesign
来做到这一点?
答案 0 :(得分:1)
这比看起来要困难得多。有两个问题
仅将采样权重赋予load: 1.52 cmd: node 5397 waiting 0.14u 0.03s
不会执行以下任何一项操作:mgcv::gam()
将权重视为频率权重,因此会认为它的数据比实际多得多。由于权重,您会得到不够平滑和被低估的标准误,而且由于聚类抽样,您也可能会被低估的标准误。
简单的解决方法是改用回归样条线(gam()
包)。这些效果不如splines
所使用的惩罚样条曲线好,但是通常差异并不大,它们可以直接与mgcv
一起使用。您确实需要选择分配多少个自由度。
svyglm