【问题标题】:Stratifying Logistic Regression分层逻辑回归
【发布时间】:2021-03-15 03:52:49
【问题描述】:

我正在尝试按年龄对我的 glm 模型进行分层。

我的主要问题是:我可以创建一个名为 BYDECADE 的新列并按如下方式运行代码,而不是在 glm 中执行此子集设置吗?

 fit <- glm(COMPLICATION~BYDECADE, 
                 data = data.clean, 
                 family = binomial)

AGE BYDECADE
43     40
45     40
24     20
21     20
23     20
37     30
34     30
36     30

以下作品,但显然我并没有捕捉到每个 50 岁以上的人的十年

fit <- glm(COMPLICATION~AGE, 
             data = subset(data.clean, AGE > 50), 
             family = binomial)

但以下内容对我不起作用,我不知道该怎么做。

fit <- glm(COMPLICATION~AGE, 
             data = subset(data.clean, AGE > 50 & AGE <= 60), 
             family = binomial)

【问题讨论】:

  • 不太清楚你真正在问什么。第一个问题的答案是肯定的,您可以很好地制作该列并按照您认为合适的方式使用它。您其余的代码示例我看不出它们与您的第一个问题有什么关系?在一种情况下,您正在过滤大于 50 的 AGE,而在另一种情况下,您正在过滤 (50,60] 的 AGE 范围。这与将年龄四舍五入到最接近的 10'er 有什么关系?
  • 非常感谢您回答了这些问题,因为我可以创建一个新专栏。我所展示的是,如果过滤器 AGE > 50 代码运行,但如果我添加额外的位以过滤 AGE > 50 和 AGE
  • 你能显示错误吗?
  • contrasts&lt;-(*tmp*, value = contr.funs[1 + isOF[nn]]) 中的错误:对比只能应用于具有 2 个或更多级别的因子
  • 为此,我检查了变量 AGE,它是一个具有 > 2 个级别的因素。

标签: r glm


【解决方案1】:

这里有很多关于拟合分层 (G)LM 的问题。这是一种方法。

## convert AGE back to numeric:
data.clean <- transform(data.clean, AGE=as.factor(as.character(AGE)))
fits <- lme4::lmList(COMPLICATION~AGE|BYDECADE, 
                 data = data.clean, 
                 family = binomial)

【讨论】:

  • 这有什么问题(即投反对票)?太简洁了?
猜你喜欢
  • 1970-01-01
  • 2018-09-20
  • 2020-01-31
  • 2020-05-16
  • 2011-08-05
  • 2021-11-11
  • 2018-01-26
  • 2020-03-22
  • 2016-12-01
相关资源
最近更新 更多