2017-02-14 4 views
0

Ein wenig Neuling Frage hier. Ich möchte mit ggplot2 mein multiples Regressionsmodell darstellen, habe aber einen Fehler gefunden. Ich habe etwas im Forum recherchiert, bevor ich beschloss, die Community zu fragen. Die original question wurde versehentlich im falschen Forum gepostet.Plot mehrere-Regressionslinie in ggplot2

Ich verstehe, wie eine einfache lineare Regression zeichnen:

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

Aber wenn ich es für multiple Regression zu tun versucht:

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) 

ich diesen Fehler:

Don't know how to automatically pick scale for object of type lm. Defaulting to continuous.
Error: Aesthetics must be either length 1 or the same as the data (209): x, y

Antwort

0

Haben Sie versucht, die Funktion abline() zu verwenden?

versuchen

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

Bitte formatieren Sie den Code richtig, entweder es zwischen einfachen Anführungszeichen setzen oder Einrückung. Der Inhalt Ihrer Antwort ist gut, ich kommentiere das Aussehen. – Dario

0

verwenden Sie diese für multiple Regression versuchen könnte, wenn Sie zwei unabhängige Variablen,

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) 

enter image description here