Ich habe ein negatives Binom-Glm verwendet, um die Häufigkeit von Wirbeltieren in Seegras zu untersuchen. Weil ich einen Interaktionsterm hatte, sagte ich einige Werte für den Fischreichtum voraus. Ich möchte, dass diese vorhergesagten Regressionslinien das Ende des Diagrammbereichs erreichen. Gerade jetzt sind sie alle Schneiden zu verschiedenen Zeiten ab, wie im Beispiel unten:Regressionsgeraden erweitern mit geom_line() ggplot2
total<-c(1,0,5,7,9,10,23,45,78,100)
shoots_collected<-c(1,2,3,4,5,6,7,45,67,88)
epi_bio<-c(0.0,11,0.89,1.5,9,5,.04,6,7,.9)
Year<-c(1,1,1,1,2,2,2,2,1,1)
Year<-as.factor(Year)
intertidal<-data.frame(shoots_collected,Year,epi_bio, total)
glm.neg<-glm.nb(total~Year+shoots_collected+epi_bio+shoots_collected*epi_bio,
data=intertidal)
summary(glm.neg)
abun_shoots2015<-data.frame("shoots_collected"=rep(0:30, rep(5,31)),
"epi_bio"=rep(c(0,1,2,3,4), 31), "Year"=rep("1", 155))
# then extracted predicted values using:
p2015<-predict(glm.neg, newdata=abun_shoots2015, se.fit=TRUE, type='response')
abun_shoots2015$fit<-p2015$fit
ggplot(intertidal, aes(x=shoots_collected, y=total)) +
scale_x_continuous(limits = c(0, 30))+
scale_y_continuous(limits=c(0,10))+
geom_point(pch=1)+
geom_line(data=abun_shoots2015[which(abun_shoots2015$epi_bio==0.0000),], aes(x=shoots_collected, y=fit), col="red")+
geom_line(data=abun_shoots2015[which(abun_shoots2015$epi_bio==1),], aes(x=shoots_collected, y=fit), col="green")+
geom_line(data=abun_shoots2015[which(abun_shoots2015$epi_bio==2),], aes(x=shoots_collected, y=fit), col="blue")+
geom_line(data=abun_shoots2015[which(abun_shoots2015$epi_bio==3),], aes(x=shoots_collected, y=fit), col="yellow")+
geom_line(data=abun_shoots2015[which(abun_shoots2015$epi_bio==4),], aes(x=shoots_collected, y=fit), col="pink")
ich zuvor mit dem Befehl lines()
, wechselte aber zu geom_lines()
so konnte ich fullrange=TRUE
verwenden, aber es immer noch nicht funktioniert. Ich sehe, dass ich einige fehlende Werte habe, wenn ich versuche, die Linien zu zeichnen, und ich vermute, dass deshalb einige abgeschnitten werden, aber ich weiß nicht, wohin ich von hier aus gehen soll.
Dank Ich habe versucht, 'coord_cartesian' in Klammern anstelle seiner eigenen Funktion zu verwenden. Ich hatte immer noch Probleme mit der Erweiterung meiner Zeilen auf meine realen Daten (es funktionierte für die Beispieldaten, aber aus irgendwelchen Gründen nicht für mich). Was ich gemacht habe, war von 0-35 Shootings vorherzusagen, obwohl mein Maximum 30 ist. Ich werde nur den Graphen früh abschneiden, Art von Betrug, den ich kenne. Danke, das sieht viel schöner aus! Ich habe mich nicht darauf gefreut, eine Legende manuell hinzuzufügen. – lken