2017-01-12 4 views
0

Ich bin eine logistische Regression mit glm() laufen und wollen Standardfehler mit cluster.bs.glm() von clusterSEs berechnen.clusterSEs: Bootstrapped SE auf Glm mit Interaktion Begriffe Fehler

Das erste Stück Code wirft einen Fehler:

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 

Wenn ich die Interaktion Begriff zu entfernen gibt es kein Problem:

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) 

Gibt es einen Programmier Grund, warum dies nicht funktionieren sollte? Da glm alle Koeffizienten des Interaktionsterms angibt, einige sind NA, würde ich erwarten, dass der obige Code trotzdem funktioniert.

Antwort

1

Es ist schwierig, das Beispiel ohne ein reproduzierbares Beispiel zu behandeln. Eine mögliche Lösung wäre jedoch, den Interaktionsterm außerhalb des Körpers Ihres Modells zu spezifizieren, wie Esarey in seinem Beispiel auf Github tut.

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'))