使用最小二乘法拟合的二次回归绘图时abline函数报错问题
问题解决:abline()绘制二次回归模型报错的处理
报错原因
abline()函数仅支持绘制线性(一次)回归直线,你的模型是包含二次项的多项式回归(共有3个系数:截距项、一次项、二次项),因此该函数会自动忽略二次项系数,仅使用前两个系数绘制直线,同时抛出警告信息。
正确绘图方法
方法1:使用predict()生成拟合值后绘制曲线
library(TSA) data(hours) lmhr2 <- lm(hours ~ time(hours)+ I(time(hours)^2), data =hours) summary(lmhr2) # 提取时间自变量 t <- time(hours) # 生成模型的拟合值 fitted_vals <- predict(lmhr2, newdata = data.frame(`time(hours)` = t)) # 绘制原始数据点 plot(hours) # 添加二次拟合曲线 lines(t, fitted_vals, col = "red", lwd = 2)
方法2:使用curve()直接绘制模型拟合曲线
library(TSA) data(hours) lmhr2 <- lm(hours ~ time(hours)+ I(time(hours)^2), data =hours) summary(lmhr2) plot(hours) # 利用curve和predict绘制二次拟合曲线 curve(predict(lmhr2, newdata = data.frame(`time(hours)` = x)), add = TRUE, col = "red", lwd = 2)
以上两种方法都能正确绘制出二次回归的拟合曲线,不会出现原警告信息。
内容的提问来源于stack exchange,提问作者Nana
相关产品推荐
相关产品推荐

