gpt4 book ai didi

r - 使用 R 中的 predict() 函数绘制 glm 时,如何确保我的 x 和 y 长度没有差异?

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

我正在运行以下代码:

c.model<-glm(cars$speed~cars$dist, family=gaussian)
summary(c.model)
c.x<-seq(0,1,0.01)
c.x
c.y<-predict.glm(c.model,as.data.frame(c.x), type="response")
c.y
plot(cars$dist)
lines(c.x,c.y)

出现错误,“xy.coords(x, y) 错误:‘x’和‘y’长度不同”。我不太确定是什么导致了这个错误。

最佳答案

在匹配模型中使用的变量名称和预测期间使用的变量名称时,您需要更加小心。您收到的错误是因为 preidct 函数中 data.frame 中的名称与模型中术语的名称不匹配,因此您实际上并没有预测新值。问题是 predict 本质上是从

获取数据
model.frame(~cars$dist, data.frame(dist=c.x))

因为您在公式中明确包含 cars$dist,所以不会从您的 newdata 参数中获取“免费”符号。将其与

的结果进行比较
model.frame(~dist, data.frame(dist=c.x))

这一次,dist 没有专门绑定(bind)到 cars 变量,可以在 newdata data.frame 的上下文中“解析”。

此外,您要确保将 dist 值保持在相同的范围内。例如。

c.model <- glm(speed~dist, data=cars, family=gaussian)
summary(c.model)
c.x <- seq(min(cars$dist),max(cars$dist),length.out=101)
c.y <- predict.glm(c.model,data.frame(dist=c.x), type="response")
plot(speed~dist, cars)
lines(c.x,c.y)

enter image description here

这里我们预测观测值的范围而不是 0-1,因为实际上没有距离值小于 1。

关于r - 使用 R 中的 predict() 函数绘制 glm 时,如何确保我的 x 和 y 长度没有差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27868741/

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