11

我正在尝试将拟合的二次曲线添加到绘图中。

abline(lm(data~factor+I(factor^2)))

显示的回归是线性的而不是二次的,我收到以下消息:

消息 d'avis : In abline(lm(data ~ factor + I(factor^2)), col = palette[iteration]) : 使用 des deux Premiers des 3 coefficients de régression

意思是:

使用 3 个回归系数中的前 2 个

仅运行该lm()功能时,我没有收到任何消息。

这是一个示例数据:

factor <- 1:7
data <- c(0.1375000,0.2500000,0.3416667,0.4583333,0.7250000,0.9166667,1.0000000)
4

3 回答 3

11

而不是 using abline, use 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")
于 2013-02-17T22:52:28.070 回答
3

到目前为止,我无法得到答案,因为我使用的数据集的 x 值没有增加(如上面大卫罗宾逊所述)。这是我解决它的方法...

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)
于 2014-02-18T20:47:08.150 回答
0

感谢所有这些宝贵的答案。小心点:

采用

基于包含“马力”的数据框使用预测

yVals = predict(glm.fit, newdata = data.frame(horsepower=xVals)

基于包含“马力”的数据框使用预测

yVals = predict(lm.fit, newdata = data.frame(horsepower=xVals)

lm.fit是一个函数

于 2015-03-12T10:09:09.497 回答