2017-12-14 3 views
0

Ich versuche, meine (mehrere) lineare Regressionslinien auf meinem ggplot hinzuzufügen. Ich habe zwei Dummies (Morgen-Abend) für den Morgen. Das Diagramm ist korrekt, aber es gibt mir einen Fehler, wenn ich die Regressionslinien hinzufügen möchte. Hier ist der Code:Fehler beim Hinzufügen mehrerer linearer Regressionslinien in ggplot

regression_1 <- lm(weight ~ morning.dummy + dayNumber + (morning.dummy*dayNumber) + 
        I(dayNumber^2) + (I(dayNumber^2)*morning.dummy), 
        data=weight_data) 
summary(regression_1) 
#plot 
plot2 <- ggplot(data=weight_data,aes(x=dayNumber, y=weight, color=morning.dummy)) + 
      geom_point()+ 
      stat_smooth(method = "lm", formula = weight ~ morning.dummy + dayNumber + (morning.dummy*dayNumber) +I(dayNumber^2) + (I(dayNumber^2)*morning.dummy), size = 1) + 
      labs(y = "Weight in kg", x = "Day Number of weight measurment", subtitle = "Day 0 = 3 October 2010") 
plot2 

Dies ist der Fehler:

Error in grid.Call.graphics(C_setviewport, vp, TRUE) : 
    non-finite location and/or size for viewport 
In addition: Warning message: 
Computation failed in `stat_smooth()`: 
object 'dayNumber' not found 

Hat jemand eine Idee, wo ich etwas falsch gemacht?

+1

Sie können nur Plot Regressionsmodelle mit einem DV in ggplot2. "Stat_smooth (method =" lm ", formula = Gewicht ~ poly (Tagnummer, Grad = 2), size = 1) sollte jedoch die gleiche Vorhersage wie Ihr Modell ergeben. – Roland

+0

Danke, ich habe es versucht bu immer noch den Fehler 'dayNumber nicht gefunden. Aber es ist einer der Variablennamen in meinem Datensatz. Was kann das Problem dann sein? –

+1

Ja, ich habe es vergessen. Es muss stat_smooth sein (method = "lm", formula = y ~ poly (x, Grad = 2), size = 1) '. Sehen Sie hier: https://Stackoverflow.com/a/25031125/1412059 – Roland

Antwort

0

ich diese Ihnen helfen, noch Hoffnung:

library('ggplot2') 

# create test data 
weight <- runif(40) * 10 
morning <- weight * runif(length(weight)) 
weight_data <- data.frame(weight, morning) 

# test data 
ression_1 <- lm(weight ~ poly(morning, degree = 2)) 
plot(morning, weight) 
points(x=morning, y=regression_1$fitted.values, col='red') 

#plot in ggplot2 
plot2 <- ggplot(data=weight_data, aes(y=weight, x=morning))+ 
    geom_point()+ 
    stat_smooth(method = "lm", formula = y ~ poly(x, degree = 2), size = 1)+ 
    labs(y = "Weight in kg", x = "Day Number of weight measurment", subtitle = "Day 0 = 3 October 2010") 

plot2 
Verwandte Themen