我是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)
我是编码和这个平台的新手,如果我提供的信息不充分,请提前道歉。
任何建议将不胜感激。
这是使用mtcars
和ggplot2
包的示例。 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()
或者用一条线代替点:
ggplot(aes(x = mpg, y = am), data = plot_data) +
geom_line()
要了解ggplot2
看似无穷无尽的可能性,请看看these 'Top 50' ggplot2 visualizations。要学习特定于包的语言,请参阅this tutorial或查看您大学的图书馆,了解Hadley Wickham的书ggplot2: elegant graphics for data analysis
。