2016-04-18 12 views
1

Ich versuche, eine Korrelation zwischen BIP über Länder mit Stata zu finden. Ich verwende die Daten von Penn World Tables 8.1 (http://www.rug.nl/research/ggdc/data/pwt/v81/pwt81.zip). Es ist eine massive Datentabelle mit vielen Makrostatistiken, aber im Wesentlichen interessiere ich mich für die Variablen Land, Jahr und rgdpna (BIP).Wie korrelieren Sie innerhalb von Ländern im Laufe des Jahres?

Ich habe versucht, neue Variablen für jedes Land zu erstellen, das mich interessiert, und versuche, pwcorr zu verwenden, um diese zu korrelieren. Diese Methode generiert jedoch viele fehlende Variablen und gibt keine Korrelation. Mein Code ist:

/*We generate variables for countries*/ 

/*We use Sweden as reference point and find 5 near-by countries. 
The chosen countries are Sweden, Norway, Finland, Germany, Denmark*/ 
gen swe = rgdpna if country == "Sweden" & year >= 1997 
gen nor = rgdpna if country == "Norway" & year >= 1997 
gen fin = rgdpna if country == "Finland" & year >= 1997 
gen ger = rgdpna if country == "Germany" & year >= 1997 
gen den = rgdpna if country == "Denmark" & year >= 1997 

/*Then we choose 5 far-away countries. The chosen countries are 
Canada, China, Japan, Russia, US*/ 
gen can = rgdpna if country == "Canada" & year >= 1997 
gen usa = rgdpna if country == "United States" & year >= 1997 
gen rus = rgdpna if country == "Russian Federation" & year >= 1997 
gen chn = rgdpna if country == "China, People's Republic of" & year >= 1997 
gen jap = rgdpna if country == "Japan" & year >= 1997 

/*pwcorr the variables*/ 
pwcorr swe nor fin ger den can usa rus chn 

Das folgende Ergebnis liefert:

   |  swe  nor  fin  ger  den  can  usa 
-------------+--------------------------------------------------------------- 
     swe | 1.0000 
     nor |  . 1.0000 
     fin |  .  . 1.0000 
     ger |  .  .  . 1.0000 
     den |  .  .  .  . 1.0000 
     can |  .  .  .  .  . 1.0000 
     usa |  .  .  .  .  .  . 1.0000 
     rus |  .  .  .  .  .  .  . 
     chn |  .  .  .  .  .  .  . 

      |  rus  chn 
-------------+------------------ 
     rus | 1.0000 
     chn |  . 1.0000 

Weiß jemand, wie dieses Problem beheben?

Antwort

2

Sie haben eine Panel-Datenstruktur, so dass verschiedene Länder in verschiedenen Beobachtungen sind. Daher sollten Sie nicht überrascht sein, dass Ergebnisse fehlen, wenn Sie ein Land nicht mit sich selbst vergleichen. Sie müssen zuerst reshape, so etwas.

keep if year >= 1997 
local c1 inlist(country, "Sweden", "Norway", "Finland", "Germany", "Denmark") 
local c2 inlist(country, "Canada", "United States", "Russian Federation", "China, People's Republic of", "Japan") 
keep if `c1' | `c2' 
separate rgdpna, by(country) veryshortlabel 
drop rgdpna country 
reshape wide rgdpna, i(year) j(country) 
pwcorr rgdpna* 
+0

Natürlich Danke! aber kannst du mir bitte raten, was - behalte wenn 'c1 '| 'c2 'bedeutet? Ich habe Stata 13.0 gibt es ungültige Syntax. – Ptru

+0

Es ist nur eine Möglichkeit, die Aussagen kurz zu halten. 'help local' Code sollte in jeder aktuellen Stata-Version zulässig sein, aber keine Anweisungen Zeile für Zeile aus einem Do-File-Editor-Fenster ausführen. –