environment noecho calendar 1947 1 4 allocate 2013:3 open data usgdp.xls data(format=xls, org=columns) table source hpfilter.src set lgdp = log(GDP_INDEX) set lc = log(PCE_INDEX) set li = log(INV_INDEX) graph(subheader="Log of US Real GDP", max=10) 1 # lgdp / 2 ****************************************************************** **** LOG-LINEAR TRENDS ****************************************************************** set time / = t linreg lgdp 1947:1 2013:3 ycycle # constant time set ltrend = lgdp -ycycle graph(subheader="Log of US Real GDP") 2 # ltrend # lgdp graph 1 # ycycle / 2 ****************************************************************** **** HP-FILTERED TRENDS ****************************************************************** @hpfilter(lambda=1600) lgdp 1947:1 2013:3 yfilter @hpfilter(lambda=1600) lc 1947:1 2013:3 cfilter @hpfilter(lambda=1600) li 1947:1 2013:3 ifilter set ycycle_hp = lgdp - yfilter set ccycle_hp = lc - cfilter set icycle_hp = li - ifilter set nber = 0 set nber 1960:2 1961:1 = 1 set nber 1969:4 1970:4 = 1 set nber 1973:4 1975:1 = 1 set nber 1980:1 1980:3 = 1 set nber 1981:3 1982:4 = 1 set nber 1990:3 1991:1 = 1 set nber 2001:1 2001:4 = 1 set nber 2007:4 2009:2 = 1 labels ycycle_hp ycycle # 'HP' 'Linear' graph(key=below, shading=nber) 2 # ycycle_hp # ycycle labels ccycle_hp icycle_hp # 'Consumption' 'Investment' graph(subheader="HP-Filtered Investment and Consumption", key=below, shading=nber) 2 # ccycle_hp # icycle_hp ****************************************************************** **** AR(1) AND AR(2) MODELS ****************************************************************** *** ESTIMATING MODELS FOR CONSUMPTION AND OUTPUT linreg ccycle_hp 1950:1 2013:3 # ccycle_hp{1} comp rho1_ar1_c = %beta(1) linreg ccycle_hp 1950:1 2013:3 # ccycle_hp{1 to 2} comp rho1_ar2_c = %beta(1) comp rho2_ar2_c = %beta(2) linreg ycycle_hp 1950:1 2013:3 # ycycle_hp{1} comp rho1_ar1_y = %beta(1) linreg ycycle_hp 1950:1 2013:3 # ycycle_hp{1 to 2} comp rho1_ar2_y = %beta(1) comp rho2_ar2_y = %beta(2) ********************************************* *** IMPULSE RESPONSE FUNCTIONS ********************************************* ** THEORETICAL EXAMPLES comp rho11 = 0.6 comp rho12 = 0.3 comp rho21 = 1.5 comp rho22 = -0.6 set irf1 1 1 = 1 set irf2 1 1 = 1 set irf1 2 2 = rho11 set irf2 2 2 = rho21 set irf1 3 20 = rho11*irf1{1} + rho12*irf1{2} set irf2 3 20 = rho21*irf2{1} + rho22*irf2{2} labels irf1 irf2 # 'r1=0.6,r2=0.3' 'r1=1.5,r2=-0.6' graph(key=below, nodates) 2 # irf1 # irf2 ** CONSUMPTION AND INVESTMENT EXAMPLES set irf_ar1_c 1 1 = 1 set irf_ar1_y 1 1 = 1 set irf_ar1_c 2 2 = rho1_ar1_c set irf_ar1_y 2 2 = rho1_ar1_y set irf_ar1_c 3 20 = rho1_ar1_c*irf_ar1_c{1} set irf_ar1_y 3 20 = rho1_ar1_y*irf_ar1_y{1} set irf_ar2_c 1 1 = 1 set irf_ar2_y 1 1 = 1 set irf_ar2_c 2 2 = rho1_ar2_c set irf_ar2_y 2 2 = rho1_ar2_y set irf_ar2_c 3 20 = rho1_ar2_c*irf_ar2_c{1} + rho2_ar2_c*irf_ar2_c{2} set irf_ar2_y 3 20 = rho1_ar2_y*irf_ar2_y{1} + rho2_ar2_y*irf_ar2_y{2} print 1 20 irf_ar2_c irf_ar2_y labels irf_ar1_c irf_ar2_c # 'AR(1)' 'AR(2)' labels irf_ar1_y irf_ar2_y # 'AR(1)' 'AR(2)' graph(nodates, key=below) 2 # irf_ar1_c 1 20 # irf_ar2_c 1 20 graph(nodates, key=below) 2 # irf_ar1_y 1 20 # irf_ar2_y 1 20 *** GREAT MODERATION CALCULATIONS set grow = lgdp - lgdp{1} set inf = 400*log(ppce/ppce{1}) set grow4 = 100*log(gdp_index/gdp_index{4}) set inf4 = 100*log(ppce/ppce{4}) set std_dev_inf = 0 set std_dev_grow = 0 do i=1960:1,2013:3 stats(noprint) grow i-19 i comp std_dev_grow(i) = (%variance)**0.5 stats(noprint) inf i-19 i comp std_dev_inf(i) = (%variance)**0.5 end do i labels grow4 inf4 # 'GDP Growth' 'Inflation' graph(key=below, subheader="Year-over-Year US GDP Growth and Inflation") 2 # grow4 # inf4 labels std_dev_grow std_dev_inf # 'GDP Growth' 'Inflation' graph(key=below, subheader="Rolling Five-Year Standard Deviations") 2 # std_dev_grow 1970:1 2013:3 # std_dev_inf 1970:1 2013:3