y-Achse verschieben
Moderator: EDi
y-Achse verschieben
Hallo zusammmen,
ich möchte in meinem Model über eine lineare Regression mit logaristischer Transformation den y-Wert nicht gegen Null gehen lassen, sondern gegen einen anderen y-Wert oder z.B. 5% vom mean. Auch soll die x-Achse dann nicht bei 0 die y-Achse schneiden, sondern bei dem entsprechenden y-Wert. Kann mit jemand bei der Findung des Befehls oder der Funktion für diese Aufgabe helfen?
Besten Dank
Jakob
ich möchte in meinem Model über eine lineare Regression mit logaristischer Transformation den y-Wert nicht gegen Null gehen lassen, sondern gegen einen anderen y-Wert oder z.B. 5% vom mean. Auch soll die x-Achse dann nicht bei 0 die y-Achse schneiden, sondern bei dem entsprechenden y-Wert. Kann mit jemand bei der Findung des Befehls oder der Funktion für diese Aufgabe helfen?
Besten Dank
Jakob
Re: y-Achse verschieben
Hallo Jakob,
willkommen im Forum!
Kannst Du uns bitte ein reproduzierbares Beispiel geben? im Sinne von viewtopic.php?f=20&t=11
Was hast Du bisher unternommen? Was passt an den bisherigen Ergebnissen nicht?
Dass man ein lineares Modell mit lm() schätzt und die Funktion log() den natürlichen Logarithmus berechnet, sollte Dir bekannt sein, oder?
Gruß, Jörg
willkommen im Forum!
Kannst Du uns bitte ein reproduzierbares Beispiel geben? im Sinne von viewtopic.php?f=20&t=11
Was hast Du bisher unternommen? Was passt an den bisherigen Ergebnissen nicht?
Dass man ein lineares Modell mit lm() schätzt und die Funktion log() den natürlichen Logarithmus berechnet, sollte Dir bekannt sein, oder?
Gruß, Jörg
Re: y-Achse verschieben
Poste mal einen Plot Deiner Werte und dann sag uns, wo Deine (logarithmische/ exponentielle) Ausgleichsgerade liegen soll.
Der Ursprung des Koordinatensystems ist immer bei (0; 0).
Consuli
Der Ursprung des Koordinatensystems ist immer bei (0; 0).
Consuli
Irmgard.
Re: y-Achse verschieben
Danke für die schnellen Antworten! Hier ein Beispiel mit Plot:
Ich würde jetzt y-Werte, die zum Beispiel kleiner als 100 sind oder bestenfalls anteilig von den y-Werten ignorieren (z.B. 5% vom mean oder des größten Wertes) ignorieren. Sozusagen die y-Achse nach oben verschieben.
Code: Alles auswählen
x <- c(100,250,450,700)
y <- c(5500,5300,3500,2000)
model <- lm(log(y)~x)
summary(model)
par(mfrow=c(2,2))
plot(model)
par(mfrow=c(1,1))
plot(y~x)
plot(x,y,type="n",ylab = "y", xlab = "x",ylim = c(0,6000),xlim = c(0,3000))
points(x,y)
smoothx<-seq(0,3000,0.1)
smoothy<-predict(model, list(x=smoothx))
smoothy_back<-exp(smoothy)
lines(smoothx, smoothy_back,lty = 2)
Zuletzt geändert von jogo am So Okt 14, 2018 11:57 am, insgesamt 1-mal geändert.
Grund: wieder mal die Formattierung von Code
Grund: wieder mal die Formattierung von Code
Re: y-Achse verschieben
Du redest in Rätseln !Ich würde jetzt y-Werte, die zum Beispiel kleiner als 100 sind oder bestenfalls anteilig von den y-Werten ignorieren (z.B. 5% vom mean oder des größten Wertes) ignorieren. Sozusagen die y-Achse nach oben verschieben.
Re: y-Achse verschieben
Allerdings.
Insbesondere weil das m.E. richtige Vorgehen darin besteht, dem Regressionsmodell von vornherein eine Variabilität betreffend y-Achsenabschnitt mit zu geben, und nicht nachträglich ein bereits gefittetes Modell durch Zensieren (Rausstreichen) einiger Beobachtungen auf das gewünschte zu bringen.
Consuli
Irmgard.
Re: y-Achse verschieben
Hm, anders ausgedruckt: wenn ich zu dem Model die Vorhersage (predict) mache und für irgendein x y= 50 rauskommen würde, ich aber will, dass dieser Wert als 0 angezeigt wird, da er kleiner als 100 ist. Heißt alle Ergenisse kleiner 100 gleich 0 sind. Gibt es dafür keinen Befehl?
Re: y-Achse verschieben
Nochmal. Statistische Modelle arbeiten so nicht, dass man etwas manipuliert, um ein gewünschtes Ergebnis zu erhalten.
Und in Deinem Fall funktioniert die Manipulation auch gar nicht, weil Du die richtigen Manipulationsparameter erst dann kennst, wenn das Modell gerechnet hat.
Du musst also zusätzliche Parameter y-Achsenabschnitt und x-Achsenabschnitt in die Formel
lm(log(y)~x)
packen, und das ganze dann vermutlich mit einem nicht-linearen Model fitten.
Außerdem scheint der von Dir gezeichnete Graph nicht zu Formel lm(log(y)~x) zu passen.
Consuli
Und in Deinem Fall funktioniert die Manipulation auch gar nicht, weil Du die richtigen Manipulationsparameter erst dann kennst, wenn das Modell gerechnet hat.
Du musst also zusätzliche Parameter y-Achsenabschnitt und x-Achsenabschnitt in die Formel
lm(log(y)~x)
packen, und das ganze dann vermutlich mit einem nicht-linearen Model fitten.
Außerdem scheint der von Dir gezeichnete Graph nicht zu Formel lm(log(y)~x) zu passen.
Consuli
Irmgard.
Re: y-Achse verschieben
So, wie ich es verstanden habe, ist das nur ein Beispiel auf Basis von 4 erfundenen Werten.Außerdem scheint der von Dir gezeichnete Graph nicht zu Formel lm(log(y)~x) zu passen.
Was passt da nicht?
Re: y-Achse verschieben
Sollte die Kurve von
ln(y) = x
[ aka ln(y) ~ x ]
nicht equivalent mit
y= exp(x)
sein?
Also die einschlägige ansteigende Exponentialfunktion sein?
ln(y) = x
[ aka ln(y) ~ x ]
nicht equivalent mit
y= exp(x)
sein?
Also die einschlägige ansteigende Exponentialfunktion sein?
Irmgard.