绘制glm()的结果

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

我是R初学者(第一学期 - 我们这个程序用于单变量统计),目前正在努力策划我的glm()的结果。我在互联网上阅读了不少线程和帮助文件,但我有两个问题:1)我不明白这个建议,因为它太先进了或者2)我理解这个建议但是当我复制代码时,它没有'工作。

我认为我接近解决方案,但我的曲线不符合预期。谁能告诉我我做错了什么?

new.data<-data.frame(x=rnorm(50,0,1), y=c("yes", "no")) 
mock_model<-glm(y~x, data=new.data, family=binomial) 
x1<-seq(min(new.data$x), max(new.data$x), 0.01) 
y1<-predict(mock_model, list(x=x1), type="response") 
plot(new.data$x, new.data$y, xlab="numeric var", ylab="binary var") 
points(x1, y1)

我是编码和这个平台的新手,如果我提供的信息不充分,请提前道歉。

任何建议将不胜感激。

r plot regression logistic-regression glm
1个回答
1
投票

这是使用mtcarsggplot2包的示例。 ggplot2的语法大致如下:你用ggplot()命令开始绘图,你可以(但不必)定义美学(aes()选项),包括选择轴变量,但也可以包含选项更改视觉效果,如颜色,线宽等。如果在ggplot()中定义轴变量,请不要忘记将data赋值(请参见下面的示例)放在aes()之外。

然后,你添加几个geoms来绘制特定的东西,比如geom_point()的数据点,geom_line()的线条或许多其他有趣的东西。如果要使用ggplot()命令中指定的变量和数据,只需将geom留空(除了要用于特定aes()的任何可视化geom选项)。但是,您可以为geom定义新数据和变量,例如在同一图中使用不同的数据源。

data(mtcars)

model_shift <- glm(am ~ mpg, data = mtcars, family = 'binomial')
x <- seq(min(mtcars$mpg), max(mtcars$mpg), .1)
y <- predict(model_shift, list(mpg = x), type = 'response')
plot_data <- data.frame(mpg = x, am = y)

library(ggplot2)
ggplot(aes(x = mpg, y = am), data = plot_data) +
  geom_point()

enter image description here

或者用一条线代替点:

ggplot(aes(x = mpg, y = am), data = plot_data) +
  geom_line()

enter image description here

要了解ggplot2看似无穷无尽的可能性,请看看these 'Top 50' ggplot2 visualizations。要学习特定于包的语言,请参阅this tutorial或查看您大学的图书馆,了解Hadley Wickham的书ggplot2: elegant graphics for data analysis

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