【问题标题】:Plot multiple-regression line in ggplot2在 ggplot2 中绘制多重回归线
【发布时间】:2017-07-02 05:44:40
【问题描述】:

这里有点新手问题。我想使用 ggplot2 来绘制我的多元回归模型,但我遇到了一个错误。在决定询问社区之前,我在论坛上做了一些研究。 original question 发错论坛了。

我了解如何绘制简单的线性回归:

ggplot(data, aes(x=X, y=Y))+geom_point()+ 
  geom_smooth(method='lm',formula=Y~X)

但是当我尝试做多元回归时:

Model<-lm(Y~x1*x2*x3*x4*x5, data, na.action=na.omit)

ggplot(data, aes(x=X, y=Model))+geom_point()+ 
  geom_smooth(method='lm',formula=Y~x1*x2*x3*x4*x5)

我收到此错误:

不知道如何为 lm 类型的对象自动选择比例。默认为连续。
错误:美学长度必须为 1 或与数据 (209) 相同:x, y

【问题讨论】:

    标签: r ggplot2 linear-regression


    【解决方案1】:

    您是否尝试过使用 abline() 函数?

    尝试使用

    abline(Model,lwd=3,col="red")
    

    【讨论】:

    • 请正确格式化您的代码,将其放在反引号之间或缩进。你回答的内容不错,我在评论一下。
    【解决方案2】:

    如果你有两个自变量,你可以试试这个进行多元回归,

    set.seed(1) 
    data <- data.frame(x1=rnorm(100, 5, 2), x2=rnorm(100, 10, 5)) # some random data
    data$y <- 3*data$x1 + 2*data$x2 + rnorm(100, 2, 5)
    
    lmFit <- lm(y ~ x1 + x2, data = data)
    
    x1 <- seq(from = min(data$x1), to =  max(data$x1), by = 0.1)
    x2 <- seq(from = min(data$x2), to = max(data$x2), by = 0.1)
    y <- outer(X = x1, Y = x2, FUN = function(x1, x2) {
      predict(lmFit, newdata = data.frame(x1 = x1, x2 = x2))
    })
    
    open3d()
    bg3d("white")
    material3d(col="black")
    persp3d(x1, x2, y,  col = "green3", xlab = "x1", ylab = "x2", zlab = "y",theta=50, phi=25, expand=0.75, ticktype="detailed")
    points3d(data$x1, data$x2, data$y, col = "red", size=5)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 2015-01-15
      • 1970-01-01
      • 2014-07-06
      • 2020-10-07
      • 1970-01-01
      相关资源
      最近更新 更多