2012-04-20 23 views
2

genまたはegenコマンドを使用して、Stataの異なる年の観測値間の変化率を生成するにはどうすればよいですか?例えば、私は1990年から2010年の間に、支出とは異なる価値観を持つ観測をしており、1990-1991年、1991-1992年などの変化率で新しい観測値を生成しようとしている。Stataの年間観測値の間に変化率を生成しますか?

答えて

3

//

clear 
set obs 100 
gen year = _n + 1959 
gen expenditure = _n^(1/3) + runiform() 
line expenditure year, yti("Synthetic data example") 

// From Statalist://また

bys year: g expendituregrowth=100*(expenditure[_n]-expenditure[_n-1])/expenditure[_n-1] 

gen expenditure_gr = (expenditure/expenditure[_n-1] - 1)*100 // growth rate for expenditure 
gen expenditure_bl = 100*expenditure/expenditure[1] // baseline growth rate for expenditure; base 100 = 1960 

line expenditure_gr year, yti("Growth rate") 
line expenditure_bl year, yti("Growth rate (base 100 = 1960)") 
ここで成長の他の指標との例です0

// expenditure_grの計算は私があなたが探していると思います。

//あなたのデータが整形されている場合は、時系列でのStataを使用して簡単に成長率を得る:

tsset year, delta(1) 
cap drop expenditure_gr 
gen expenditure_gr = D.expenditure/100*L.expenditure 
+2

最後の行が唯一の違いを作成しますが。 'exp_gr'の前の定義に相当する成長率を作成するには' gen exp_gr = D.exp/L.exp * 100'にする必要があります。 'exp *(stuff1 + stuff2)'で乗算記号を忘れると、このバグを探して1時間を費やすことになります(あなたの数値が非常に大きいと誰かが一度気付くと) 。 – StasK

+0

両方の修正が正しいです。改正された。 –

+0

優秀、ありがとうございます。あなたの答えを受け入れるのにとても時間がかかることは残念ですが、とても役に立ちます。 –

関連する問題