R 向ggplot添加1000条回归线的最佳方法是什么?(基于模型的引导)

R 向ggplot添加1000条回归线的最佳方法是什么?(基于模型的引导),r,ggplot2,quadratic-curve,R,Ggplot2,Quadratic Curve,从一个自举模型中,我得到了该回归模型的1000组系数: y=b0+b1x+b2(x^2) 如果我已经有了系数,那么绘制二次线的函数调用是什么?也就是说,我不想将线性模型“拟合”到我的数据中 我尝试通过for循环向ggplot对象添加行: for (i in 1:1000) { reg_line <- stat_function(fun=function(x) quad$coefficients[1] + q

从一个自举模型中,我得到了该回归模型的1000组系数:

y=b0+b1x+b2(x^2)

如果我已经有了系数,那么绘制二次线的函数调用是什么?也就是说,我不想将线性模型“拟合”到我的数据中

我尝试通过for循环向ggplot对象添加行:

for (i in 1:1000) { 
  reg_line <- stat_function(fun=function(x) quad$coefficients[1] + 
                                      quad$coefficients[i,2]*x + quad$coefficients[i,3]*(x**2))
  reg_lines <- reg_lines + reg_line}
for(1:1000中的i){

reg_line可能还有其他方法可以做到这一点,但希望这能给你一些想法。我使用了mtcars数据集并生成了一些用于建模的引导样本。你可以跳过这一步

library(ggplot2)
library(tidyr)
library(dplyr)

data(mtcars)

drat=seq(min(mtcars$drat), max(mtcars$drat), length.out=100)

# Bootstrap function
bs <- function() {
  df = mtcars[sample(1:nrow(mtcars), replace=TRUE),]
  lm_fit <- lm(mpg ~ drat+I(drat^2), data=df)
  data.frame(Model=predict(lm_fit, newdata=data.frame(drat))) # Replace with your own
}

foo <- replicate(10, bs()) # Simulate


+geom\u abline(斜率=,截距=)
?@Hugh我如何将二次项添加到geom_abline?对不起,太油嘴滑舌了。你不能将
geom_abline
用于二次项,但你能用它在绘图上添加1000条直线吗,还是只添加最后一条?为了得到更好的响应,你可能应该包含一个最小的可复制示例,以便在我们运行了你的代码,得到了同样的结果。现在你只给出了一个摘录。也许这(第二个答案):谢谢你详细的回答。我想这就是解决问题的方法。
foo_long <- data.frame(foo, drat) %>%
  pivot_longer(cols=-drat, names_to="Model", values_to="mpg")

ggplot(data = mtcars, aes(x = drat, y = mpg)) + 
  geom_point(color='blue') +
  geom_line(data = foo_long, aes(x=drat, y=mpg, group=Model, color=Model)) +
  guides(color=FALSE)