Autokorrelationen beseitigen SPSS 17.0 Regressionsanalyse

Fragen und Diskussionen rund um die Arbeit mit SPSS. Für allgemeine Statistik-Themen, die nicht mit SPSS zusammenhängen, bitte das Statistik-Forum nutzen.
Antworten
Darth_Maulwurf
Beiträge: 6
Registriert: 17.08.2011, 17:02

Autokorrelationen beseitigen SPSS 17.0 Regressionsanalyse

Beitrag von Darth_Maulwurf »

Hallo Leute,

ich mache grade im Rahmen meiner Masterarbeit eine multivariate Regressionsanalyse mit SPSS 17.0.

Mein Datensatz hat 1 abängige und 5 unabhängige Variablen. Das Analyseergebnis zeigt mir aber, dass mein Durbin-Watson Wert so klein ist, dass eine positive Autokorrelation vorliegt, also die Ergebnisse eigentlich nichts wert sind.

Meine Frage: Wie bekomme ich die Autokorrelation weg? Hab in der Literatur nichts gefunden.

Danke schonmal...
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

Wie bekomme ich die Autokorrelation weg?
Differenzenbildung zum lag 1 zum Beispiel (Schlittgen)

Gruß
drfg2008
Darth_Maulwurf
Beiträge: 6
Registriert: 17.08.2011, 17:02

Beitrag von Darth_Maulwurf »

Hm, ja so gut kenn ich mich da jetzt auch nicht aus muss ich sagen. Wie müsst ich denn da meine Variablen ummodellieren.

Meinst du Transformieren - Zeitreihen erstellen - Lag oder wie?

Ich hatte gedacht, dass funktioniert irgendwie mit Autokorrelationen aber ich weis auch nicht wo man das einstellt.
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

mit Zeitreihe erstellen-> Differenz

CREATE
/a_1=DIFF(a 1).


Beispiel

Code: Alles auswählen

input program.
loop a =1 to 100 by 1.
end case.
end loop. 
end file.
end input program.
exe.

CREATE
  /a_1=DIFF(a 1).

Schlittgen schreibt, dass ggf. mehrmalige Differenzenbildung notwendig sein könnte.

Gruß
drfg2008
Darth_Maulwurf
Beiträge: 6
Registriert: 17.08.2011, 17:02

Beitrag von Darth_Maulwurf »

Danke, das hat mich schon mal weitergebracht!

Allerdings muss ich sagen, dass ich wirklich ein Neuling in dem Programm bin. Ich weiß zum Beispiel nicht, wie ich den Code habdhaben muss bzw. wo ich den eingeben muss.

Wenn ich meine abhängige Variable transformierere (Zeitreihen erstellen - DIfferenz) und dann nochmal durchrechne passt der Durban-Watson-Wert, R² und alle anderen Werte werden allerdings total mies. Aber wenn ich dann noch einmal die Differenz bilde, habe ich auf einmal so einen großen Durban-Watson Wert, dass ich eine negative Autokorrelation habe.

Mir liegen hier Jahresdaten auf Wochenbasis vor, d.h. ca. alle 55 Stichproben fängt dann das neue Jahr an und die Daten wiederholen sich. Muss ich das irgendwie berücksichtigen mit dem Loop? Bzw. kannst du mir bitte vielleicht etwas genauer erlären, wie ich mit dem Code umgehe?

Muss ich weiterhin nicht nur die abhängige, sondern auch die unabhängigen Variablen, die auf Jahresdaten basieren transformieren?

Herzlichen Dank und Grüße
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

Ich weiß zum Beispiel nicht, wie ich den Code habdhaben muss bzw. wo ich den eingeben muss.
Das geht auch mit der Maus (wie oben beschrieben). Oder Syntax:
http://www.youtube.com/watch?v=31nd73sphTA
Wenn ich meine abhängige Variable transformierere (Zeitreihen erstellen - DIfferenz) und dann nochmal durchrechne passt der Durban-Watson-Wert, R² und alle anderen Werte werden allerdings total mies.
Verändern sich die Werte in Richtung deiner Erwartungen, nachdem die Differenzen um einen lag zurückgesetzt wurden?

Mir liegen hier Jahresdaten auf Wochenbasis vor, d.h. ca. alle 55 Stichproben fängt dann das neue Jahr an und die Daten wiederholen sich. Muss ich das irgendwie berücksichtigen mit dem Loop? Bzw. kannst du mir bitte vielleicht etwas genauer erlären, wie ich mit dem Code umgehe?
Das sind zyklische Zeitreihen (Stichwort: ARIMA). Zu kompliziert um es hier darstellen zu können.
Muss ich weiterhin nicht nur die abhängige, sondern auch die unabhängigen Variablen, die auf Jahresdaten basieren transformieren?
Hängt vom Verfahren ab. Gruppen zum Beispiel wird man kaum transformieren können. Bei Korrelationen hingegen eventuell schon.

Gruß
drfg2008
Darth_Maulwurf
Beiträge: 6
Registriert: 17.08.2011, 17:02

Beitrag von Darth_Maulwurf »

puh, also ich muss sagen mir raucht ganz schön der kopf von dem ganzen neuen zeug...

allerdings komm ich nicht so wirklich weiter. habe mich jetzt an deinem code orientiert und den ein bißchen umgemodelt, dass er jetzt so aussieht.

Code: Alles auswählen

input program.
loop umsatz =1 to 52 by 1
loop durchschnpreispack = 1 to 52 by 1
end case.
end loop.
end file.
end input program.

create
 /umsatz_1=DIFF(umsatz_1)
 /durchschnpreispack_1=DIFF(durchschnpreispack_1).
_____________
allerdings krieg ich lauter fehlermeldungen wenn ich ihn ausführen will.

Code: Alles auswählen

>Fehler Nr.  4844 in Spalte 1.  Text: loop 
>The LOOP command contains an indexing clause.  After that clause, the only 
>valid clause would be an IF clause, but something else was found. 
>Dieser Befehl wird nicht ausgeführt. 
 
>Fehler Nr.  4844 in Spalte 6.  Text: durchscnpreispack 
>The LOOP command contains an indexing clause.  After that clause, the only 
>valid clause would be an IF clause, but something else was found. 
 
>Fehler Nr.  4844 in Spalte 28.  Text: to 
>The LOOP command contains an indexing clause.  After that clause, the only 
>valid clause would be an IF clause, but something else was found. 
 
>Fehler Nr.  4844 in Spalte 34.  Text: by 
>The LOOP command contains an indexing clause.  After that clause, the only 
>valid clause would be an IF clause, but something else was found. 
end loop. 
 
>Fehler Nr.  4045.  Befehlsname: end loop 
>The END LOOP command does not follow an unclosed LOOP command.  Maybe the LOOP 
>command was not recognized because of an error.  Use the level-of-control 
>shown to the left of the SPSS commands to determine the range of LOOPs and DO 
>IFs. 
>Dieser Befehl wird nicht ausgeführt. 
end file. 
end input program. 
create 
 
>Fehler Nr.  4844 in Spalte 1.  Text: loop 
>The LOOP command contains an indexing clause.  After that clause, the only 
>valid clause would be an IF clause, but something else was found. 
>Dieser Befehl wird nicht ausgeführt. 
 
>Fehler Nr.  4844 in Spalte 6.  Text: durchscnpreispack 
>The LOOP command contains an indexing clause.  After that clause, the only 
>valid clause would be an IF clause, but something else was found. 

>Fehler Nr.  4045.  Befehlsname: end loop 
>The END LOOP command does not follow an unclosed LOOP command.  Maybe the LOOP 
>command was not recognized because of an error.  Use the level-of-control 
>shown to the left of the SPSS commands to determine the range of LOOPs and DO 
>IFs. 
>Dieser Befehl wird nicht ausgeführt. 
end file. 
end input program. 
input program. 
loop umsatz =1 to 52 by 1 
loop durchschnpreispack = 1 to 52 by 1 
end case.


ich weiß auch nicht wie ich die wegkriege, habs ewig probiert.

die 52 heißt, dass er sich alle 52 stichproben wiederholt, ist das richtig? ich hab 5 hintereinanderliegende jahre mit jeweils 52 wochen.

was passiert wenn ich einfach nur die zeitreihen mittels differnez transformiere und den code gar nicht eingebe? hab dabei übrigens gemerkt, dass ,wenn ich das gemacht habe, der durbin watson-wert wieder schlechter wird (also nicht wie vorher fälschlich geschrieben besser), d.h. es kommt nun zu negativer autokorrelation.
je öfter ich dann Transformieren-zeitreihen-differenz mache, desto mehr verschlechtert sich der durban-watson wert. ich weiß echt nicht weiter...

viele grüße, vielleicht wird das ja noch was...[/code]
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

die Differenzenbildung geht auch über die Menüführung:

Transformieren -> Zeitreihe erstellen-> Differenz

der dazugehörige Befehl (Syntax) optional, falls nicht per Menü:

CREATE
/VAR000_1=DIFF(VAR00001 1).

exe.

wobei VAR00001 der Name der ursprünglichen Variablen ist.

Alles andere diente nur zur Generierung von Beispieldaten.

Gruß
drfg2008
Darth_Maulwurf
Beiträge: 6
Registriert: 17.08.2011, 17:02

Beitrag von Darth_Maulwurf »

Danke, ja so hab ich das schon ausprobiert, aber dann bekomme ich jedesmal negative autokorrelationen, sprich DW-Wert > 2,6...

Ist Transformieren -> Zeitreihe erstellen -> Lag denn eine Möglichkeit? Da werden die Ergebnisse zwar besser, aber ich weiß nicht ob das zulässig ist...

Ansonsten frag ich mich, warum das mit der Differenzenbildung nichts bringt, hm...
Anzeige:Statistik und SPSS: Die besten Bücher
Als Buch oder E-Book - Jetzt bestellen
spss datenanalyse
SPSS - Moderne Datenanalyse - Jetzt bestellen!
statistik datenanalyse
Statistik - Der Weg zur Datenanalyse - Jetzt bestellen!
Antworten