【问题标题】:Logistic regression outcome variable predictions in rr中的逻辑回归结果变量预测
【发布时间】: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


【解决方案1】:

默认情况下,R 使用字母顺序表示因子水平。您可以简单地设置自己的订单

df$Group <- factor(df$Group, levels=c('CON','CI'))

然后CON 将用作逻辑回归中的参考水平,您应该得到与使用 0/1 编码相同的结果。

【讨论】:

  • 谢谢卢卡斯。如果我只是修改参考组,您能否解释一下为什么它会发生变化?尽管变量中级别的顺序不同,OR 不应该相同吗?
  • 非常感谢你们,我肯定需要更彻底地研究逻辑回归背后的理论,你们帮了大忙。
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2020-07-30
  • 2022-08-24
  • 1970-01-01
  • 1970-01-01
  • 2015-01-03
  • 1970-01-01
相关资源
最近更新 更多