gpt4 book ai didi

r - 将 glm 的预测线添加到 ggplot2,大于原始数据集

转载 作者:行者123 更新时间:2023-12-02 09:18:00 24 4
gpt4 key购买 nike

我包含了一个示例数据集,只是为了演示我正在尝试做什么。

Speed <- c(400,220,490,210,500,270,200,470,480,310,240,490,420,330,280,210,300,470,230,430,460,220,250,200,390)

Hit <- c(0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,0)

obs <- c(1:25)

msl2.data <- as.data.frame(cbind(obs,Hit,Speed))

msl2.glm <- glm(Hit ~ Speed, data = msl2.data, family = binomial)

在基础包中做我想做的。

plot(Hit~ Speed, data = msl2.data, xlim = c(0,700), xlab = "Speed", ylab = "Hit", main = "Plot of hit vs Speed")

pi.hat<-(predict( msl2.glm, data.frame(Speed=c(0:700)), type="response" ))

lines( 0:700, pi.hat, col="blue" )

我正在尝试重新创建上面的情节,但是在 ggplot 中。我一直无法解决的错误是 aes(x,y) 有不同的长度,这是真的,但我希望它们有不同的长度。

gg 对此有什么想法吗?

最佳答案

您有几种方法;第一个做所有的建模在 ggplot 内部,第二个在外部执行并传递相关数据被阴谋。

首先

gplot(dat=msl2.data, aes(Speed, Hit)) + 
geom_point() +
geom_smooth(method="glm", method.args=list(family="binomial"),
fullrange=TRUE, se=FALSE) +
xlim(0, 700)

fullrange 被指定以便预测线覆盖 x 范围。 xlim 扩展 x 轴。

第二

#Create prediction dataframe
pred <- data.frame(Speed=0:700, pi.hat)

ggplot() +
# prediction line
geom_line(data=pred, aes(Speed, pi.hat)) +
# points - note different dataframe is used
geom_point(dat=msl2.data, aes(Speed, Hit))

我通常更喜欢在外部进行建模(第二种方法),并将 ggplot 纯粹用作绘图机制。

关于r - 将 glm 的预测线添加到 ggplot2,大于原始数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45121039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com