Segmentierte Regression |
28.11.2011, 19:04 | vogelstrauss | Auf diesen Beitrag antworten » | |||||||
Segmentierte Regression ich habe leider einige Probleme mit der Interpretation der Ergebnisse meiner Regressionsanalyse, ich hoffe mir kann jemand helfen. Ich analysisere Zeitreihendaten von zwei verschiedenen Gruppen (control und test) und zwei Interventionen innerhalb der Zeitreihe. Meine abhaengige Variable heisst "Prices" und zu jedem Zeitpunkt T habe ich zwei Werte (control und test). Mein Modell sieht so aus: Die zwei interventionen a und b sind zum Zeitpunkt T=13 und T=21. Die variablen Da und Db sind "dummy"-variablen fuer die Interventionen, Da=1 wenn T>=13, Db=1 wenn T>=21, ansonsten Da,Db=0. Die Variable G ist ebenfalls eine dummy variable, sie ist 0 fuer die Kontroll- und 1 fuer die Testgruppe. Die Variablen Pa und Pb beschreiben die Zeit, die nach Intervention a bzw. b vergangen ist. Dann habe ich mit R eine lineare Regression durchgefuehrt, mit forlgendem Output:
Wenn ich diese Koeffizienten benutze, kann ich meine Daten ganz gut beschreiben (siehe Plot im Dateianhang). Mein Problem ist: Die errechneten Koeffizienten sind alle nicht signifikant (bis auf den y-intercept fuer test und control)!! Die Koeffizienten fuer Da und Db zum Beispiel muessten mir den Anstieg in Price gleich nach Interventionen a und b geben. Die Koeffizienten fuer Pa und Pb sollten mir die Aenderung im Trend der Kurve nach Interventionen a und b geben... Ich kann mir nur nicht vorstellen, dass das alles nicht signifikant ist! Wenn Fast alle Variablen nicht signifikant sind, dann muesste ich sie ja aus dem Modell entfernen koennen und trotzdem meine Daten beschreiben koennen. Wenn ich mir die Vorhersage des Modells anschaue (siehe Anhang, blau=control, rot=test), dann sieht mir die Aenderung nach den Interventionen schon signifikant aus! Koennte jemand mir helfen zu verstehen, wie eigentlich die P-Werte fuer die Signifikanz errechnet werden? Habe ich etwas vergessen oder ist vielleicht mein Modell falsch? Entschuldigung fuer den langen Beitrag, aber ich hoffe mein Problem ist verstaendlich und ich hoffe mir kann jemand helfen! Vielen Dank im Voraus, vogelstrauss |
|||||||||
28.11.2011, 19:33 | Black | Auf diesen Beitrag antworten » | |||||||
Die p Werte für die Signifikanz ergeben sich jeweils durch einen Test auf Der Output macht mir den Anschein dass du viel zu viele abhängige Variablen drin hast. Du kannst versuchen per gemischter Rückwärtsinduktion ein reduziertes Modell zu bestimmen, R hat dafür glaub ich sogar eine vorgefertigte Funktion. |
|||||||||
29.11.2011, 14:29 | vogelstrauss | Auf diesen Beitrag antworten » | |||||||
Hallo, danke fuer die schnelle Antwort! Es scheinen in der Tat sehr viele Variablen in dem Modell, die nicht benoetigt werden um meine Daten zu beschreiben... Ich habe leider noch keine R-Funktion fuer die Rueckwaertsinduktion gefunden, aber ich konnte mein Modell 'von Hand' reduzieren, indem ich einfach jeweils die Variablen mit den hoechsten P-Werten aus dem Modell entfernt habe. Jetzt sieht das Modell und der Ouput so aus:
Der R-squared Wert ist aehnlich bei diesem Modell, jedoch sind die Variablen signifikanter. Vielen Dank, vogelstrauss |
|||||||||
29.11.2011, 15:52 | Black | Auf diesen Beitrag antworten » | |||||||
Einfach die Variablen mit dem höchsten p-Wert rauszuwerfen ist im Allgemeinen keine gute Idee. Besser ist man verwendet den AIC um die Modelle zu vergleichen, genau das macht man bei der Rückwärtsinduktion. In R gibt es dafür die Funktion step(), (step direkt auf das lm Objekt mit allen Variablen anwenden) diese wirft so lange Variablen raus bis sich der AIC nicht mehr verbessert. |
|||||||||
29.11.2011, 19:54 | vogelstrauss | Auf diesen Beitrag antworten » | |||||||
Mit der 'step' methode bekomme ich in der Tat ein anderes Modell: T + G + GT + GPa mit einem AIC von 839.39 und R-quadrat von 0.9313. Zum Vergleich, mein von Hand reduziertes Modell hat einen AIC von 839.67 und R-quadrat: 0.93. Das Probelm ist, dass mit diesem Modell die Aenderungen im Slope nach den Interventionen (z.B. beschrieben durch GPa) nicht signifikant sind:
War das andere Modell (T + G + GPa + GPb) wirklich so falsch? Dieses Modell zeigt, was ich eigentlich urspruenglich sehen wollte, naemlich dass GPa signifikant ist. Heisst das nun, dass die Aenderungen in meinen Daten mit den gegebenen Interventionen wirklich nicht signifikant sind? Bin ich damit am Ende und muss mir eingestehen, dass die Daten schlecht sind? Oder kann ich noch andere Sachen probieren z. B. Outlier korrigieren oder fuer eventuelle Korrelationen der Error- Terme korrigieren? Vielen Dank, vogelstrauss |
|||||||||
30.11.2011, 17:07 | Black | Auf diesen Beitrag antworten » | |||||||
Also optimal sind sicher beide Modelle nicht. Könntest du vllt mal den exakten R Befehl mit dem du die Regression erstellt hast posten? Es gibt auch noch einige andere Methoden mit denen man reduzierte Modelle bestimmen kann, sagt dir resettest etwas? Wie ich gerade erfahren musste macht R bei step() nicht automatisch gemischte Rückwärtsinduktion, schau mal ob er dir mit step(deinlm,direction="both") was anderes ausspuckt. Edit: Ich glaube nicht dass Ausreißer das Problem verursachen, dazu müsste das Bestimmtheitsmaß deutlich schlechter sein. |
|||||||||
Anzeige | |||||||||
|
|||||||||
30.11.2011, 17:36 | vogelstrauss | Auf diesen Beitrag antworten » | |||||||
Wenn ich step(deinlm,direction="both") verwende, bekomme ich das gleiche Ergebnis wie nur mit step(meinlm). Wenn ich das richtig vertehe, testet resettest auf H0: Modell ist linear. Mir ist leider noch nicht klar, was das argument 'type' zu bedeuten hat und welche Potenzen ich fuer das Argument 'power' nehmen sollte... Hier sind meine R-commands fuer die Regression:
Die Daten habe ich angehaengt. glm() gibt uebrigens das selbe Ergebnis. Vielen Dank fuer Deine Hilfe!! |
|||||||||
30.11.2011, 22:45 | Black | Auf diesen Beitrag antworten » | |||||||
So hab mir jetzt das Ganz mal genauer angeschaut. Das Hauptproblem ist dass GDa, GDb, GPa, GPb allesamt extrem korreliert sind. Ein zweites Problem ist dass du im Verhältnis zu der dir vorliegenden Datenmenge viel zu viele Variablen gewählt hast. Zu der inhaltlichen Interpretation der Variablen kann ich natürlich nichts sagen, aber du hast dir bei der Wahl der Variablen bestimmt etwas gedacht. Es ist möglich dass viele der gewählten Variablen in Wahrheit tatsächlich einen signifikanten Einfluss haben, aber um das stichhaltig zu belegen reicht hier die Datenmenge nicht. Tatsächlich wird hier nämlich die Anpassung im Wesentlichen von 2 Variablen beinflusst, nämlich von G und GPa:
Man könnte GPa in obiger Regression auch durch GPb,GDa oder GDb ersetzen - die Anpassung wäre immernoch gut. Das obige Modell ist das einzige das ich persönlich als zufriedenstellend bezeichnen würde, ob es inhaltlich sinnvoll ist musst du entscheiden. Falls das nicht der Fall sein sollte, würde ich an deiner Stelle nochmal die Variablen (insbesondere die Dummies) überdenken: Wirf nur mal einen Blick auf die Spalten Da, Pa, GDa, GPa, GDb, GPb deiner Modellmatrix, dann siehst du dass du dir einen fast perfekten (und mehrfachen) Spaltendefekt konstruiert hast. |
|||||||||
06.12.2011, 18:58 | vogelstrauss | Auf diesen Beitrag antworten » | |||||||
Hallo, ich hatte ein paar Tage keine Zeit mich mit der Regression zu befassen, hab jetzt aber noch ein paar Fragen...
Das sehe ich genauso, daher versuche ich immer noch, das Modell zu reduzieren. Sehr wichtige Variablen in meinem Modell sind GPa und GDa, welche den Slope und die Aenderungen des Preises nach der ersten Intervention beschreiben. Diese Beiden Variablen sollten eigentlich signifikant sein. Deshalb irritiert es mich, dass man GPa und GDa im reduzierten Modell austauschen kann... Ich habe noch ein wenig weitergeschaut, warum mein Modell nicht so ganz gut ist und habe gemerkt, dass ich keine Saisonbereinigung auf meinen Daten gemacht habe. Die Daten sind halbjaehrlich gesampled, deshalb koennten vielleicht versteckte Muster in den Daten sein. Deshalb habe ich mir die Reste vom fit angeschaut und die Autokorrelationsfunktion der Reste berechnet:
Der Plot ist im Anhang. Beim Plot der Reste (links) kann ich kein besonderes Saison-Muster erkennen. Trotzdem sind manche Autokorrelations-Werte recht hoch... Ich habe hier http://www.duke.edu/~rnau/testing.htm gelesen, dass die Autokorellations-Werte ungefaehr bei sein sollten (0+-0.25 bei meinen Daten). Wie man im Plot jedoch sieht sind einige Werte bei ungefaehr -0.5. Koennte das ein Grund sein, warum mein Modell nicht gut ist? Auf der selben site wurde gesagt, dass man mit einer weiteren Dummy-Variable fuer die Saison korrigieren kann. (Ich habe in den Daten eine weitere Spalte 'Summer' angehaengt, die 1 ist wenn im Sommer gesampled werden und die Variable 'Summer' im Modell beruecksichtigt... ) Dadurch das mein Modell schon recht viele Variablen hat, hat das jedoch nichts gebracht. Koennte es troztdem mit einer moeglichen Saisonabhaengigkeit in meinen Daten zusammenhaengen, dass ich kein gutes Modell hab? Vielen Dank fuer die viele Hilfe, Gruss, vogelstrauss |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |