r中的Logistic回归结果变量预测

问题描述 投票:0回答:1

我正在使用逻辑回归来预测二进制结果变量(组,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包绘制比值比并进行检查以确保时,尽管注意到了summary(glm模型)的系数,但我注意到OR还是大不相同。 ,一切看起来都一样(除了-或+估算值,这是有道理的,因为两组编码方式不同)。具体来说,当使用数字变量时,绘制的OR肯定较大,而当使用“名称”变量时,OR较小。

我是不是在理解r(我是自觉的)或逻辑回归的计算中缺少什么?在逻辑回归中应使用哪个变量?我如何改变在“名称”变量中r使用“ CI”作为0引用组而不是CON的事实?谢谢。

r variables logistic-regression
1个回答
0
投票

默认情况下,R将字母顺序用于因子水平。您可以通过[]来设置自己的订单

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

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

© www.soinside.com 2019 - 2024. All rights reserved.