我是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)
我是编码和这个平台的新手,如果我提供的信息不充分,请提前道歉。
非常感谢任何建议。
答案 0 :(得分:1)
以下是使用mtcars
和ggplot2
包的示例。 ggplot2
的语法大致如下:您使用ggplot()
命令开始绘图,您可以在其中(但不必)定义美学(aes()
选项),其中包括选择轴变量,但也可以包含更改视觉效果的选项,如颜色,线宽等。如果在ggplot()
中定义轴变量,请不要忘记放置data
赋值(见aes()
之外的以下示例。
之后,您可以添加多个地图以绘制特定内容,例如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
。