【发布时间】:2020-08-19 22:01:35
【问题描述】:
我正在使用逻辑回归来预测二元结果变量(组,0/1)。 所以我注意到了一些事情:我有两个变量代表相同的结果,一个简单地编码为“0”或“1”。
> df$Group
>[1] 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1
> 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
> [59] 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1
> 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0
>[117] 0 0 0 1 1 1 1
> 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0
> 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1
>[175] 1 0 1
>Levels: 0 1
> is.factor(df$Group)
> [1] TRUE
另一个故事代表相同的事物,但带有“名称”标签:
> df$Group
>[1] CON CI CON CI CI CON CI
> CI CON CI CI CI CON CI
>[15] CI ecc.. ecc..
> Levels: CI CON
> is.factor(df$Group2)
> [1] TRUE
> contrasts(df$Group2)
> CI 0
> CON 1
其中第一个变量中的0=CON,而1=CI。我创建了第一个数值变量,因为我希望 CI 成为我的“1”组,而 CON 是 0 参考组,但是当我从数据集进行转换时,每次我尝试做“as.factor”时发生的事情是 CI= 1 级,CON = 2 级。
我认为它们是相同的,但是当我尝试使用 sjPlot 包绘制优势比并检查确定时,我注意到 OR 完全不同,尽管通过检查汇总系数(glm 模型),一切似乎都一样(除了估计的-或+,这是有道理的,因为两组的编码不同)。具体来说,当使用数值变量时,绘制的 OR 肯定更大,而使用“名称”变量时,OR 更小。
我是否在理解 r(我是自以为是)或逻辑回归计算中遗漏了什么?我应该在逻辑回归中使用哪一个变量?我怎么能改变在“名称”变量中 r 使用“CI”作为 0 参考组而不是 CON 的事实?谢谢。
【问题讨论】:
-
如果您提供一个包含完整代码的完整可重现示例,包括
glm和不同的输出,这会容易得多。例如你指定了家庭吗?检查?family -
您好 Roman,谢谢您的回答。是的,我在计算模型时指定了族,即 glm(y ~ x, family= binomial, data= df)。
-
在这里您可以找到一些可重现示例的说明stackoverflow.com/questions/5963269/…
标签: r variables logistic-regression