我正在尝试将拟合的二次曲线添加到图中。
abline(lm(data~factor+I(factor^2)))
显示的回归是线性的而不是二次的,我得到这样的信息:
Message d'avis:在abline(lm(data~factor + I(factor ^ 2))中,col = palette [iteration]):利用des deux premiers des 3 系数derégression
表示:
使用3个回归系数中的前2个
仅运行lm()
功能时,我没有收到任何消息。
以下是示例数据:
factor <- 1:7
data <- c(0.1375000,0.2500000,0.3416667,0.4583333,0.7250000,0.9166667,1.0000000)
答案 0 :(得分:10)
不使用abline
,而是使用fitted
,它会为您提供与预测输入长度相同的向量:
fitted(lm(data~factor+I(factor^2)))
# 1 2 3 4 5 6 7
# 0.1248016 0.2395833 0.3699405 0.5158730 0.6773810 0.8544643 1.0471230
因此,像:
plot(factor, fitted(lm(data~factor+I(factor^2))), type="l")
答案 1 :(得分:3)
到目前为止,我无法得到答案,因为我使用的数据集的x值没有增加(如David Robinson所述)。这就是我解决它的方法......
require(ISLR)
plot(mpg~horsepower, data=Auto)
# fit the model
glm.fit = glm(mpg~poly(horsepower,2), data=Auto)
# create 100 x-values based on min/max of plotted values
minMax = range(Auto$horsepower)
xVals = seq(minMax[1], minMax[2], len = 100)
# Use predict based on a dataframe containing 'horsepower'
yVals = predict(glm.fit, newdata = data.frame(horsepower = xVals))
lines(xVals, yVals)
答案 2 :(得分:0)
感谢所有这些有价值的答案。小心点:
使用
yVals = predict(glm.fit, newdata = data.frame(horsepower=xVals)
yVals = predict(lm.fit, newdata = data.frame(horsepower=xVals)
lm.fit
是一个函数