【问题标题】:Error in a bivariate logistic model in RR中的双变量逻辑模型中的错误
【发布时间】:2018-06-09 19:57:31
【问题描述】:

我的研究中有一个意外错误。让我向您展示我研究中的几个代码块。希望你能帮助我。

我有两个二进制变量:alco 和 Smoke,它们是这样生成的:

smoke<- factor(with(df, ifelse((q34<2),1,0)))
alco<-factor(with(df, ifelse((q47==1), 1,0)))
df<- cbind(df, smoke, alco, educ_3, smoke_14)

我尝试使用 zeligverse 包分析模型

m3<-zelig(cbind(smoke,alco) ~ fem+age+age2+smoke_14+ninc,  model = "blogit", data = df)

导致错误

eval 中的错误(process.binomial2.data.VGAM):必须响应 仅包含 0 和 1

我无法得到它,因为 cbind 中的变量是二项式的。

【问题讨论】:

  • 错误告诉你两个响应变量应该是零和一 - 所以尽量不要将它们转换为因子,而是将它们保留为 0/1
  • 如果根据您的模型,cbind(smoke,alco) 作为响应变量是有效的。那么我认为smokealco 可能有NA。

标签: r regression mlogit


【解决方案1】:

最好知道您要拟合的内容以及数据的外观。 Here 有一些指导方针可以提出好的问题。

我假设您正在尝试运行(二进制)logit。如果是glm()可以估计出这样的模型

例如:

df = data.frame(x = factor(sample(0:1, 25, replace = TRUE)), 
                y = factor(sample(1:4, 25, replace = TRUE)), 
                z = sample(18:65, 25, replace = TRUE))


summary(glm(x ~ y + z, family = binomial(link = "logit"), 
            data = df))

如果您的结果变量中有两个以上的类别并且它们是有序的。 clm() from ordinal 包可以是一个选项:

 library(ordinal)

 summary(clm(y ~ x + z, data = df, link = "logit")

希望对你有帮助

【讨论】:

猜你喜欢
  • 2020-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 2021-04-28
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多