Change reference group using glm with binomial family

£可爱£侵袭症+ 提交于 2019-12-02 03:41:08

问题


When I run a binomial regression in R with an independed factor variable consisting of three levels "Higher" , "Middle" and "Lower" of which I want to change the reference category using relevel I get this error:

“Error in relevel.ordered(cbsnivcat3, "Lower") : 
  'relevel' only for factors”

I have checked whether cbsnivcat3 is a factor

> is.factor(data$cbsnivcat3)
[1] TRUE

> levels(data$cbsnivcat3)
[1] "Higher" "Middle" "Lower" 

> t1m4=glm(tertiary ~ relevel(cbsnivcat3, "Lower") , family = binomial, data = data)
    Error in relevel.ordered(cbsnivcat3, "Lower") : 
      'relevel' only for factors

but the same with factor glm(tertiary ~ factor(cbsnivcat3) , family = binomial, data = data) works oke.

MQ1: What causes the error, what do I do wrong?

Thanks in advance for the tips, commands and solution(s)

str(data)

$ cbsnivcat3     : Ord.factor w/ 3 levels "Higher"<"Middle"<..: 1 1 1 1 1 1 1 1 1 1 ...
$ tertiary       : num  0 0 1 1 1 1 0 1 0 0 ...

回答1:


cbsnivcat3 is an ordered factor, so relevel won't work. What you can do is change it to an ordinary factor:

cbsnivcat3 <- factor(cbsnivcat3, levels=c("Lower","Middle","Higher"))



回答2:


Try this

df <- data.frame(y=sample(c(0,1), size=100,replace=T),x1=rep(c('a','b','c'),100), x2=1:100)
summary(glm(y~x1+x2,data=df))

df$x1 <- relevel(df$x1, ref='b')
summary(glm(y~x1+x2,data=df))

df$x1 <- relevel(df$x1, ref='c')
summary(glm(y~x1+x2,data=df))


来源:https://stackoverflow.com/questions/17772775/change-reference-group-using-glm-with-binomial-family

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!