计算每个季度GDP的同比增长率

时间:2014-02-05 17:27:53

标签: stata

我想用Stata计算每个季度GDP的同比增长率。基本上,我想计算:(gdp_q1y1980-gdp_q1y1979)/ gdp_q1y1979。

2 个答案:

答案 0 :(得分:2)

// create some silly example data
clear
set obs 10
gen time = _n
format time %tq
gen gdp = _n^2*100

// do the computation
tsset time
gen growth = S4.gdp / L4.gdp

// admire the result
list

有关详细信息,请参阅here

答案 1 :(得分:1)

我更喜欢@Maarten Buis的解决方案,但也知道你可以使用下载

sort time
gen growth = (gdp / gdp[_n-4]) - 1

运行help subscripting了解详情(或http://www.stata.com/help.cgi?subscripting)。

请注意,例如,如果您的时间序列存在差距,则必须格外小心:

. clear all

. set more off

. 
. // create some silly example data
. set obs 15
obs was 0, now 15

. gen time = _n

. format time %tq

. gen gdp = _n^2*100

. 
. // create a gap deleting 1962q4
. drop in 11
(1 observation deleted)

. 
. // using -tsset-
. tsset time
        time variable:  time, 1960q2 to 1963q4, but with a gap
                delta:  1 quarter

. gen growth = S4.gdp / L4.gdp
(5 missing values generated)

. 
. // subscripting
. sort time

. gen growth2 = (gdp / gdp[_n-4]) - 1
(4 missing values generated)

. 
. list, separator(0)

     +--------------------------------------+
     |   time     gdp     growth    growth2 |
     |--------------------------------------|
  1. | 1960q2     100          .          . |
  2. | 1960q3     400          .          . |
  3. | 1960q4     900          .          . |
  4. | 1961q1    1600          .          . |
  5. | 1961q2    2500         24         24 |
  6. | 1961q3    3600          8          8 |
  7. | 1961q4    4900   4.444445   4.444445 |
  8. | 1962q1    6400          3          3 |
  9. | 1962q2    8100       2.24       2.24 |
 10. | 1962q3   10000   1.777778   1.777778 |
 11. | 1963q1   14400       1.25   1.938776 |
 12. | 1963q2   16900    1.08642   1.640625 |
 13. | 1963q3   19600        .96   1.419753 |
 14. | 1963q4   22500          .       1.25 |
     +--------------------------------------+

一旦差距开始(1963q1),下标解决方案的结果(变量growth2)就会搞砸。我认为,有理由更喜欢tsset