在 Stata 中生成年度观测值之间的百分比变化?

Ric*_*ano 5 stata

如何使用genegen命令生成 Stata 中不同年份观测值之间的百分比变化?例如,我有 1990 年到 2010 年的观测值,每个观测值都有不同的支出值,并且我正在尝试生成一个新的观测值,其中包含 1990-1991 年、1991-1992 年等的百分比变化。

Fr.*_*Fr. 3

// 这是另一个衡量增长的示例:

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

//来自集权主义者

bys year: g expendituregrowth=100*(expenditure[_n]-expenditure[_n-1])/expenditure[_n-1]
Run Code Online (Sandbox Code Playgroud)

// 还:

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)")
Run Code Online (Sandbox Code Playgroud)

expenditure_gr//我认为您正在寻找的计算。

// 如果你的数据结构良好,使用 Stata 与时间序列并轻松获得增长率:

tsset year, delta(1)
cap drop expenditure_gr
gen expenditure_gr = D.expenditure / 100*L.expenditure
Run Code Online (Sandbox Code Playgroud)

  • 最后一行只会产生差异;要创建相当于之前定义的“exp_gr”的增长率,它应该是“gen exp_gr = D.exp/L.exp*100”。另外,“exp”对于变量来说是一个绝对糟糕的名称:如果你忘记了“exp*(stuff1+stuff2)”中的乘号,你将花费一个小时寻找这个错误(一旦有人注意到你的数字非常大) 。 (2认同)