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 (6.43 KiB) 1573 mal betrachtet
- 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