Regressionsschleife - Koeffizienten speichern

Fragen zu Stata Syntax und Do-Files.

Regressionsschleife - Koeffizienten speichern

Beitragvon Jan Strehler » Di 15. Okt 2013, 10:56

Moin Moin,

Ich habe einen Paneldatensatz, in dem zwei Variablen (totale Arbeitskraft=x, BIP=y) über mehrere Jahre und für mehrere Länder beobachtet sind.
Ich konnte den Datensatz leider nicht mit hochladen, weil die Datei abgewiesen wurde. Kann mir ehrlich gesagt nicht erklären, weshalb das geschah. Ich habe das Ganze jetzt mal bei Drive hochgeladen : https://drive.google.com/folderview?id= ... sp=sharing
Aber eventuell ist das Ganze auch so relativ verständlich.
Nun möchte ich gerne eine Regression y auf x durchführen. Dies soll jedoch für jedes Jahr einzeln passieren, quasi als würde ich den Befehl "reg y x if year==2000" benutzen.
Am Ende möchte ich sehen, wie sich der Koeffizient über die Jahre entwickelt hat.
Meine Frage ist daher, ob es möglich ist eine Schleife zu programmieren, die mir das händische Eintippen pro Jahr ersparen könnte und es möglich ist, die einzelnen Koeffizienten als neue Variable genau in dem Jahr zu speichern? Also das, wenn wir zur Einfachheit annehmen, dass der Koeffizient im Jahr 2000 den Wert 2 hat, bei jedem Land im Jahre 2000 eine 2 geschrieben wird.

Ich hoffe das Ganze war nicht allzu Wirr und ist halbwegs verständlich.
Das ist mein erster Beitrag, also sagt mir ruhig, falls am Format etwas falsch ist und vielen Dank für die Hilfe.
Jan Strehler
 
Beiträge: 2
Registriert: Mo 14. Okt 2013, 09:34
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Regressionsschleife - Koeffizienten speichern

Beitragvon daniel » Di 15. Okt 2013, 14:34

Das lässt sich relativ leicht umsetzen, aber schau Dir vorher mal das -statsby- Prefix an. Ich denke, das ist etwas eleganter.

Hier dennoch ein Entwurf für die Schliefe

Code: Alles auswählen
g double b_coef = .
qui levelsof year ,l(lvls)
foreach y of loc lvls {
        qui {
            reg x y if (year = `y')
            replace b_coef = _b[x] if (year == `y')
        }
}
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Regressionsschleife - Koeffizienten speichern

Beitragvon Jan Strehler » Di 15. Okt 2013, 17:52

Hi Daniel,
Vielen Dank für deine schnelle Hilfe.
Ist es richtig, dass du in der Schleife "reg x y" geschrieben hast, oder ist der Code so richtig?
Code: Alles auswählen
g double b_coef = .
qui levelsof year ,l(lvls)
foreach y of loc lvls {
        qui {
            reg y x if (year == `y')
            replace b_coef = _b[x] if (year == `y')
        }
}

Es scheint nämlich, dass dieser Code genau das macht, was ich mir vorstelle.
Also nochmals vielen Dank!
Jan Strehler
 
Beiträge: 2
Registriert: Mo 14. Okt 2013, 09:34
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Regressionsschleife - Koeffizienten speichern

Beitragvon daniel » Mi 16. Okt 2013, 10:38

Jap, ist ein Tippfehler.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron