r 中的逻辑回归结果变量预测
Logistic regression outcome variable predictions in r
我正在使用逻辑回归来预测二元结果变量(组,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
另一个代表相同事物的相同故事,但有 "names" 个标签:
> 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 是完全不同的,尽管通过检查 summary( glm 模型),一切似乎都一样(除了估计的 - 或 + 之外,这是有道理的,因为两组的编码不同)。具体来说,当使用数值变量时,绘制的 OR 肯定更大,而当使用 "name" 变量时,OR 更小。
我是不是在理解r(我是自我思考的)或者逻辑回归的计算上遗漏了什么?我应该在逻辑回归中使用哪一个变量?我怎样才能改变 "name" 变量 r 使用 "CI" 作为 0 参考组而不是 CON 的事实?谢谢。
默认情况下,R
对因子水平使用字母顺序。您可以简单地通过
设置自己的顺序
df$Group <- factor(df$Group, levels=c('CON','CI'))
然后 CON
将用作逻辑回归中的参考水平,您应该得到与 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
另一个代表相同事物的相同故事,但有 "names" 个标签:
> 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 是完全不同的,尽管通过检查 summary( glm 模型),一切似乎都一样(除了估计的 - 或 + 之外,这是有道理的,因为两组的编码不同)。具体来说,当使用数值变量时,绘制的 OR 肯定更大,而当使用 "name" 变量时,OR 更小。
我是不是在理解r(我是自我思考的)或者逻辑回归的计算上遗漏了什么?我应该在逻辑回归中使用哪一个变量?我怎样才能改变 "name" 变量 r 使用 "CI" 作为 0 参考组而不是 CON 的事实?谢谢。
默认情况下,R
对因子水平使用字母顺序。您可以简单地通过
df$Group <- factor(df$Group, levels=c('CON','CI'))
然后 CON
将用作逻辑回归中的参考水平,您应该得到与 0/1 编码相同的结果。