如何在ggplot2中进行多个逻辑回归?

时间:2018-03-05 20:39:03

标签: r ggplot2 logistic-regression

我创建了一个包含以下代码和数据的图表:

ggplot(data.frame, aes(x=Score, y=Year, col=Position)) +
  geom_smooth(method="lm", se=FALSE).

Year   Position   Score
2010   QB         16.5
2011   QB         15.4
2012   QB         16.1
2013   QB         14.3
2014   QB         13.8
2010   RB         14.2
2011   RB         13.9
2012   RB         13.9
2013   RB         11.8
2014   RB         11.6
2010   WR         11.4
2011   WR         12.4
2012   WR         10.4
2013   WR         8.8
2014   WR         9.7

enter image description here

我的目标是使用下面的数据执行类似的图表,除了逻辑回归,因为Y值(Score1)是二进制的。我尝试将method="lm"更改为method="Binominal",但这无效。有人可以帮忙吗?我更喜欢它在ggplot中完成,因此图形看起来尽可能相似。

Score1 Position Score2
0   QB         16.5
0   QB         15.4
1   QB         16.1
0   QB         14.3
1   QB         13.8
1   RB         14.2
1   RB         13.9
1   RB         13.9
0   RB         11.8
0   RB         11.6
1   WR         11.4
1   WR         12.4
0   WR         10.4
1   WR         8.8
1   WR         9.7

2 个答案:

答案 0 :(得分:4)

正确的方法是

ggplot(data.frame, aes(x=Score2, y=Score1, col=Position)) +
+     geom_smooth(method="glm",method.args = list(family = "binomial"), se=FALSE)

但是,Score1应为0或1,因此您必须转换类并可能创建多个图。

答案 1 :(得分:2)

使用stat_smooth代替geom_smooth,如下所示:

ggplot(data.frame, aes(x=Score, y=Year, col=Position)) + stat_smooth(method="glm", family="binomial",se=fALSE)

编辑:您可能需要qplot,在以下链接结尾处有一个逻辑回归示例https://www.rdocumentation.org/packages/ggplot2/versions/0.9.0/topics/stat_smooth