r - 如何在R中绘制二次回归?

标签 r

以下代码在 R 中生成二次回归。

 lm.out3 = lm(listOfDataFrames1$avgTime ~ listOfDataFrames1$betaexit + I(listOfDataFrames1$betaexit^2) + I(listOfDataFrames1$betaexit^3))

 summary(lm.out3)

Call:
lm(formula = listOfDataFrames1$avgTime ~ listOfDataFrames1$betaexit + 
    I(listOfDataFrames1$betaexit^2) + I(listOfDataFrames1$betaexit^3))

Residuals:
    Min      1Q  Median      3Q     Max 
-14.168  -2.923  -1.435   2.459  28.429 

Coefficients:
                                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)                        199.41      11.13  17.913  < 2e-16 ***
listOfDataFrames1$betaexit       -3982.03     449.49  -8.859 1.14e-12 ***
I(listOfDataFrames1$betaexit^2)  32630.86    5370.27   6.076 7.87e-08 ***
I(listOfDataFrames1$betaexit^3) -93042.90   19521.05  -4.766 1.15e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 7.254 on 63 degrees of freedom
Multiple R-squared:  0.9302,    Adjusted R-squared:  0.9269 
F-statistic: 279.8 on 3 and 63 DF,  p-value: < 2.2e-16

但是如何在图表上绘制曲线很困惑。

获取图形:
 plot(listOfDataFrames1$avgTime~listOfDataFrames1$betaexit)

但是曲线?

没有手动复制值就可以做到吗?
就像 mso 建议的那样,虽然它有效。

最佳答案

这应该有效。

# not tested
lm.out3 = lm(avgTime ~ poly(betaexit,3,raw=TRUE),listofDataFrames3)
plot(avgTime~betaexit,listofDataDFrames3)
curve(predict(lm.out3,newdata=data.frame(betaexit=x)),add=T)

由于您没有提供任何数据,这里是一个使用内置 mtcars 数据集的工作示例。
fit <- lm(mpg~poly(wt,3,raw=TRUE),mtcars)
plot(mpg~wt,mtcars)
curve(predict(fit,newdata=data.frame(wt=x)),add=T)



一些注意事项:

(1) 在 formula=... 中引用外部数据结构是一个非常糟糕的主意。论据 lm(...) .相反,引用 data=... 中引用的数据框的列争论,如上所述和@mso 指出。

(2) 您可以按照@mso 的建议指定公式,也可以使用 poly(...)功能与 raw=TRUE .

(3) curve(...)函数接受一个表达式作为它的第一个参数,这个表达式必须有一个变量 x ,它将由图表 x 轴的值自动填充。所以在这个例子中,表达式是:
predict(fit,newdata=data.frame(wt=x))

使用 predict(...)在具有 wt 的数据框的模型上(预测变量)由 x 给出.

关于r - 如何在R中绘制二次回归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26959527/

相关文章:

r - 如何使用变量命名 R 中的另一个变量?

r - R 中的并行包在 Windows 上通过引用传递大对象

r:在 ggplot2 中绘制带孔的多边形时撕裂

r - 按两列拆分表格

r - Revolution R 中的模块是开源的。 R 许可证是否意味着我可以免费使用随附的 R 软件包?

r - 如何将 2.8 GB gzipped (40 GB TSV) 文件批量读取到 R 中?

通过使用 dplyr 添加前缀来重命名除 id 列之外的所有列

performance - 寻找组合的函数优化——内存不足+速度

r - 有条件地选择列表中对象的元素位置并返回具有对象元素位置的新列表

将具有 NA 的行删除到特定列和条件中