Seite 2 von 3

Re: Trenderkennung

Verfasst: Mo Sep 25, 2017 8:52 pm
von bigben
Das Paket "MASS" bietet eine Funktion rlm(), die ähnlich funktioniert wie lm(). Aber natürlich hast Du in R die Qual der Wahl: https://cran.r-project.org/web/views/Robust.html

LG,
Bernhard

Re: Trenderkennung

Verfasst: Mo Sep 25, 2017 11:08 pm
von EDi
Ok bezüglich Normalverteilung wollte ich nur auf den Kommentar von EDi reagieren ;)
Und ich hab nur auf den Kommentar von Consuli reagiert ;)

Re: Trenderkennung

Verfasst: Do Sep 28, 2017 4:42 pm
von wkowalski
Hey!

Habe jetzt meine Daten mal mit der robusten linearen Regression (rlm() aus dem Package MASS) behandelt und folgende Ergebnisse erzielt:

hkl1_linrob.png
hkl1_linrob.png (6.43 KiB) 1573 mal betrachtet
hklm50_linrob.png
hklm50_linrob.png (6.79 KiB) 1573 mal betrachtet
Wie man sieht ändert die robuste Regression die gefittete Gerade nur minimal. Gibt es eine Möglichkeit ein Konfidenzintervall o.ä. festzulegen? Dann könnte man sich ja beim fitten auf die Werte konzentrieren die zu 95 % im Intervall liegen?

Vielleicht habe ich aber bei der Anwendung aber auch etwas falsch gemacht?!

Anbei auch noch mein Code:

Code: Alles auswählen

hkl_m <- read.csv("morb_kh_kreislauf_m.csv",header = TRUE,sep=";",dec=",")

years <- hkl_m$Jahr

rate1y <- hkl_m$X1.Jahr

lin1 <- lm(rate1y ~ years)
rob1 <- rlm(rate1y ~ years)

plot(years,rate1y,xlim=c(1988,2015),ylim=c(0,0.002), xlab="Jahre",ylab="Erkrankungsraten")
title("Herz-Kreislauf Erkrankung: Männer 1 Jahr")
abline(lin1, lty="dashed")
abline(rob1, col="red")
legend(2009,0.0004, legend = c("lin Model","robust Model"), lty=c(2,1), col=c("black","red"))


rate50y <- hkl_m$X50.Jahr

lin50 <- lm(rate50y ~ years)
rob50 <- rlm(rate50y ~ years)

plot(years,rate50y,xlim=c(1988,2015),ylim=c(0.03,0.05), xlab="Jahre",ylab="Erkrankungsraten")
title("Herz-Kreislauf Erkrankung: Männer 50 Jahre")
abline(lin50, lty="dashed")
abline(rob50, col="red")
legend(2009,0.049, legend = c("lin Model","robust Model"), lty=c(2,1), col=c("black","red"))

LG

Re: Trenderkennung

Verfasst: Do Sep 28, 2017 8:35 pm
von EDi
Dann könnte man sich ja beim fitten auf die Werte konzentrieren die zu 95 % im Intervall liegen?
Hmm, ich glaube du verwechselst hier konfidenzinterval mit Predictioninterval?

Auch glaube Ich, dass ein linearer Trend hier kein gutes Model liefert...

Re: Trenderkennung

Verfasst: Do Sep 28, 2017 9:28 pm
von wkowalski
Was würdest du empfehlen? Ist ein bisschen blöd, dass ich soviele Datensätze habe. Prinzipiell wäre es ja wünschenswert, je nach Trend jenes Modell zu verwenden, dass sich durch die geringste Abweichung auszeichnet. Hab aber leider überhaupt keine Ahnung wie ich das angehen soll. :?

Re: Trenderkennung

Verfasst: Do Sep 28, 2017 11:13 pm
von bigben
Dass die Geraden sich je nur geringfügig unterscheiden, finde ich erstmal gut. Aber wenn Du das automatisch auf ganz viele Datensätze anwendest, ist es doch beruhigend, für einflussreiche Ausreißer vorgesorgt zu haben. Nicht?

Re: Trenderkennung

Verfasst: Do Sep 28, 2017 11:17 pm
von bigben
wkowalski hat geschrieben: Do Sep 28, 2017 9:28 pm Was würdest du empfehlen? Ist ein bisschen blöd, dass ich soviele Datensätze habe. Prinzipiell wäre es ja wünschenswert, je nach Trend jenes Modell zu verwenden, dass sich durch die geringste Abweichung auszeichnet. Hab aber leider überhaupt keine Ahnung wie ich das angehen soll. :?
Wenn Du keine Angst vor Overfitting hast: wir behandeln in einem anderen Thread doch gerade schrittweise Regression. Mach halt eine lineare Regression mit quadratischem, kubischen, logarithmischem usw. Term und lass step () die jeweils optimal passende heraussuchen.

LG,
Bernhard

Re: Trenderkennung

Verfasst: Mo Okt 02, 2017 4:32 pm
von wkowalski
bigben hat geschrieben: Do Sep 28, 2017 11:13 pm Aber wenn Du das automatisch auf ganz viele Datensätze anwendest, ist es doch beruhigend, für einflussreiche Ausreißer vorgesorgt zu haben. Nicht?
Ja, das finde ich auch! :)
bigben hat geschrieben: Do Sep 28, 2017 11:17 pm
Wenn Du keine Angst vor Overfitting hast: wir behandeln in einem anderen Thread doch gerade schrittweise Regression. Mach halt eine lineare Regression mit quadratischem, kubischen, logarithmischem usw. Term und lass step () die jeweils optimal passende heraussuchen.
O.k das muss ich mir noch genauer ansehen. Overfitting sollte wenn möglich vermieden werden, sonst hat mein Modell ja überhaupt keine Aussagekraft mehr.

Re: Trenderkennung

Verfasst: Mi Okt 04, 2017 9:15 pm
von consuli
Bei den geplotteten 50-jährigen Männern ist der Trend fallend, während er bei einjährigen Männern (mannlichen Säuglingen?) ansteigt. Deshalb würde ich Dir zu einem Mixed-Effect Model raten.

Abweichungen von der Normalverteilung sind keine Kontraindikationen für einen kleinste Quadrate Schätzer (Gauss-Markov Theorem), nur erhebliche Varianzinhomogenität wäre eine echte Kontraindikation. Deshalb sind x-y Plots immer sehr wichtig. Da Du eine Trendanalyse machst, müsstest Du eigentlich dreidimensional xy-plotten (Krankheitsrate über Prediktor und Zeit).

Aussreicher hingegen können schon gravierend sein. Jedoch sind nur die Ausreisser wirklich einflussreich, die neben ihrem Ausreißen (gemessen in Zielvariable - hier Krankheitsrate) gleichzeitig im Extrembereich eines Prediktors liegen (nahe Minimum oder Maximum).

Consuli

Re: Trenderkennung

Verfasst: Di Okt 10, 2017 2:09 pm
von wkowalski
consuli hat geschrieben: Mi Okt 04, 2017 9:15 pm Da Du eine Trendanalyse machst, müsstest Du eigentlich dreidimensional xy-plotten (Krankheitsrate über Prediktor und Zeit).
Nun gut, ich hab aber leider nur die Anzahl der Fälle die in bestimmten Jahren aufgetreten sind und keinen weiteren Parameter der mir als Prediktor dienen könnte... irgendeine Idee was ich da noch mit reinnehmen könnte?

LG