Seite 1 von 2

y-Achse verschieben

Verfasst: Fr Okt 12, 2018 6:09 pm
von ga84pew
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

Re: y-Achse verschieben

Verfasst: Fr Okt 12, 2018 7:37 pm
von jogo
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

Re: y-Achse verschieben

Verfasst: Fr Okt 12, 2018 7:41 pm
von consuli
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

Re: y-Achse verschieben

Verfasst: Fr Okt 12, 2018 8:35 pm
von ga84pew
Danke für die schnellen Antworten! Hier ein Beispiel mit Plot:

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)
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

Verfasst: Sa Okt 13, 2018 11:20 am
von Athomas
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.
Du redest in Rätseln :shock: !

Re: y-Achse verschieben

Verfasst: Sa Okt 13, 2018 2:28 pm
von consuli
Athomas hat geschrieben: Sa Okt 13, 2018 11:20 am Du redest in Rätseln :shock: !
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

Re: y-Achse verschieben

Verfasst: Sa Okt 13, 2018 11:22 pm
von ga84pew
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

Verfasst: So Okt 14, 2018 10:56 am
von consuli
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

Re: y-Achse verschieben

Verfasst: So Okt 14, 2018 2:02 pm
von Athomas
Außerdem scheint der von Dir gezeichnete Graph nicht zu Formel lm(log(y)~x) zu passen.
So, wie ich es verstanden habe, ist das nur ein Beispiel auf Basis von 4 erfundenen Werten.
Was passt da nicht?

Re: y-Achse verschieben

Verfasst: So Okt 14, 2018 4:03 pm
von consuli
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?