2016-04-18 2 views
1

Я пытаюсь найти соотношение между ВВП между странами, использующими stata. Я использую данные, доступные из Penn World Tables 8.1 (http://www.rug.nl/research/ggdc/data/pwt/v81/pwt81.zip). Это массивная таблица данных с большим количеством макростатистики, но по существу меня интересуют переменные country, year и rgdpna (GDP).Как соотнести в странах в течение года?

Я пытаюсь создать новые переменные для каждой заинтересованной страны и пытаюсь использовать pwcorr для их корреляции. Однако этот метод генерирует много отсутствующих переменных и не дает корреляции. Мой код:

/*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 

Это дает следующий результат:

   |  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 

Кто-нибудь знает, как это исправить?

ответ

2

У вас есть структура данных в панели, поэтому разные страны находятся в разных наблюдениях. Поэтому вы не должны удивляться тому, что результаты отсутствуют, если вы не сравниваете страну с самим собой. Сначала вам нужно reshape, что-то вроде этого.

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

Ofcourse Спасибо! но можете ли вы, пожалуйста, посоветовать мне, что - держать, если 'c1 '| 'c2 'означает? У меня stata 13.0 он дает неверный синтаксис. – Ptru

+0

Это всего лишь способ держать высказывания короткими. Код «help local» должен быть законным в любой новой версии Stata, но не выполнять инструкции по строкам из окна редактора do-file. –

Смежные вопросы