2017-01-12 8 views
0

glm()を使用してロジスティック回帰を実行しており、cluster.bs.glm()clusterSEsから使用して標準エラーを計算したいとします。clusterSEs:相互作用用語エラーを伴うglmのブートストラップSE

コードの最初のビットがエラーをスローします。

mod1 <- glm(lfp ~ age + I(age^2) + genstat + married + 
      isced + factor(syear) + 
      I(factor(syear):married), 
      data = subw, 
      family=binomial(link='logit')) 

library(clusterSEs) 
head(subw) 
se <- cluster.bs.glm(mod=mod1, dat=subw, cluster= ~pid , boot.reps = 10) 

Error in cl(dat, mod, clust)[ind.variables, 2] : subscript out of bounds 

私は相互作用項を削除すると問題がない:

mod1 <- glm(lfp ~ age + I(age^2) + genstat + married + 
      isced + factor(syear), 
      data = subw, 
      family=binomial(link='logit')) 


se <- cluster.bs.glm(mod=mod1, dat=subw, cluster= ~pid , boot.reps = 10) 

これが動作しない理由プログラミング理由、ありますか? glmは相互作用項のすべての係数を報告するので、いくつかはNAであるため、上記のコードがうまくいくと思います。

答えて

1

再現可能な例がない場合のトラブルシューティングは難しいです。しかし、可能性のある解決策の1つは、EsasyがGithubの彼の例で行っているように、モデルの本体の外に対話項を指定することです。

your_data <- your_data %>% mutate(your_interaction = var_1 * var_2) 

mod1 <- glm(lfp ~ age + I(age^2) + genstat + married + 
      isced + factor(syear) + your_interaction, 
      data = subw, 
      family=binomial(link='logit')) 
関連する問題