簡體   English   中英

如何在GAM(mgcv)中使用樣本權重進行Logit回歸的調查數據?

[英]How to use sample weights in GAM (mgcv) on survey data for Logit regression?

我很有興趣對全國范圍內提供樣本權重的調查數據進行GAM回歸。 我感興趣地閱讀了這篇文章 我選擇了我感興趣的vars產生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)

現在,我將使用mgcv package適合GAM模型( fpl ~ s(age) + gender )。 是否可以使用weights參數或使用svydesign對象ageDesign

編輯

我想知道從svyglm對象推斷計算權重是否正確,並將其用於GAM中的weights參數。

這比它看起來更難。 有兩個問題

  1. 您希望獲得適當的平滑量
  2. 您需要有效的標准錯誤。

只是將采樣權重給予mgcv::gam()將不會執行以下任何一項: gam()將權mgcv::gam()為頻率權重,因此會認為它擁有的數據比實際數據多得多。 由於權重的原因,您將得到不平衡和低估的標准誤差,並且由於群集采樣,您也可能會低估標准誤差。

簡單的解決方法是使用回歸樣條( splines包)。 這些並不像mgcv使用的懲罰樣條那么好,但差異通常不是什么大問題,而且它們與svyglm直接svyglm 您需要選擇分配多少自由度。

library(splines)
svglm(fpl ~ ns(age,4) + gender, design = nhanesDesign)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM