我正在使用逻辑回归来预测二进制结果变量(组,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
将字母顺序用于因子水平。您可以通过[]来设置自己的订单
df$Group <- factor(df$Group, levels=c('CON','CI'))
然后,
CON
将被用作逻辑回归的参考水平,您应该获得与0/1编码相同的结果。