/* -------------------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------------------- */ This program file contains RATS programs for "Forecasting Inflation and Growth: Do Private Forecasts Match Those of Policymakers?" by William T. Gavin and Rachel J. Mandal in the May/June 2001 issue of the Federal Reserve Bank of St. Louis Review. It consists of 2 programs that output Taylor-type rules. Data used by the programs is found in the accompanying data file. /* -------------------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------------------- */ ******************************************************************************************* ******************************************************************************************* ***This program outputs and graphs Taylor Rules based on current vintage data as of ******* ***June 7, 2000 for an inflation target of 2% and, also, graphs the actual fed funds ****** ***rate.*********************************************************************************** ******************************************************************************************* cal 1981 4 4 all 2000:1 open data current.rat data(format=rats) / gdph gdppothq ffed jgdp close data *take logs of variables set logpot / = log(gdppothq) set loggdp / = log(gdph) * Inflation set inf / = log(jgdp{1} / jgdp{5}) * 100 * Output gap set gap_gdp / = (log(gdph{1}) - log(gdppothq{1})) * 100 *smpl 1982:1 2000:1 *Calculate Taylor Rule for different inflation targets(0-4) set pce_revised0 / = inf + 2 + (gap_gdp * 0.5) + ((inf - 0) * 0.5) set pce_revised1 / = inf + 2 + (gap_gdp * 0.5) + ((inf - 1) * 0.5) set pce_revised2 / = inf + 2 + (gap_gdp * 0.5) + ((inf - 2) * 0.5) set pce_revised3 / = inf + 2 + (gap_gdp * 0.5) + ((inf - 3) * 0.5) set pce_revised4 / = inf + 2 + (gap_gdp * 0.5) + ((inf - 4) * 0.5) spgraph(header='Federal Funds Rate and Inflation Targets',hfields=1,vfields=1) smpl 1983:1 2000:1 graph(header='Revised Federal Funds Equation -- GDP Deflator',max=12,min=1,vlabel='Percent') 2 *#pce_revised0 1983:1 2000:1 6 *#pce_revised1 1983:1 2000:1 6 #pce_revised2 1983:1 2000:1 6 *#pce_revised3 1983:1 2000:1 6 *#pce_revised4 1983:1 2000:1 6 #ffed 1983:1 2000:1 2 spgraph(done) smpl 1982:1 2000:1 print / pce_revised2 ffed /* -------------------------------------------------------------------------------------- */ ******************************************************************** ******************************************************************** *** This program calculates a series for the Real time GDP Gap *** *** and Fed Funds target for an inflation target of 2 *** *** based on Taylor Rule using: *** *** (1) Quarterly Real time data *** *** (2) Semi-annual Blue Chip forecasts and *** *** (3) Semi-annual Humphrey-Hawkins forecasts. *** *** Results outputted into Excel and RATS dataset files: *** *** rttarget.xls => Excel file of targets based on real time data ** *** ForecastFunds.tx => text file of targets based on BC and HH *** *** forecasts *** *** RealTimeGap.rat => RATS data file of GDP Gap *** *** RealTimeGap.xls => Excel file of GDP Gap *** ******************************************************************** ******************************************************************** CAL 1947 1 4 ALLOCATE 400 2000:4 OPEN DATA COMBINE.RAT DATA(FORM=RATS, ORG=OBS) EQV 1 TO 138 FNOM83 FREAL83 MNOM83 MREAL83 ANOM83 AREAL83 NVNOM83 NVREAL83 $ FNOM84 FREAL84 MNOM84 MREAL84 ANOM84 AREAL84 NVNOM84 NVREAL84 $ FNOM85 FREAL85 MNOM85 MREAL85 ANOM85 AREAL85 NVNOM85 NVREAL85 $ FNOM86 FREAL86 MNOM86 MREAL86 ANOM86 AREAL86 NVNOM86 NVREAL86 $ FNOM87 FREAL87 MNOM87 MREAL87 ANOM87 AREAL87 NVNOM87 NVREAL87 $ FNOM88 FREAL88 MNOM88 MREAL88 ANOM88 AREAL88 NVNOM88 NVREAL88 $ FNOM89 FREAL89 MNOM89 MREAL89 ANOM89 AREAL89 NVNOM89 NVREAL89 $ FNOM90 FREAL90 MNOM90 MREAL90 ANOM90 AREAL90 NVNOM90 NVREAL90 $ FNOM91 FREAL91 MNOM91 MREAL91 ANOM91 AREAL91 NVNOM91 NVREAL91 $ FNOM92 FREAL92 MNOM92 MREAL92 ANOM92 AREAL92 NVNOM92 NVREAL92 $ FNOM93 FREAL93 MNOM93 MREAL93 ANOM93 AREAL93 NVNOM93 NVREAL93 $ FNOM94 FREAL94 MNOM94 MREAL94 ANOM94 AREAL94 NVNOM94 NVREAL94 $ FNOM95 FREAL95 MNOM95 MREAL95 ANOM95 AREAL95 NVNOM95 NVREAL95 $ FNOM96 FREAL96 MNOM96 MREAL96 ANOM96 AREAL96 NVNOM96 NVREAL96 $ FNOM97 FREAL97 MNOM97 MREAL97 ANOM97 AREAL97 NVNOM97 NVREAL97 $ FNOM98 FREAL98 MNOM98 MREAL98 ANOM98 AREAL98 NVNOM98 NVREAL98 $ FNOM99 FREAL99 MNOM99 MREAL99 ANOM99 AREAL99 NVNOM99 NVREAL99 $ FNOM00 FREAL00 * Assign the above numbered series to a series from combine.rat ********** SET fnom83 = febnom83 SET freal83 = febreal83 set mnom83 = maynom83 set mreal83 = mayreal83 set anom83 = augnom83 set areal83 = augreal83 set nvnom83 = novnom83 set nvreal83 = novreal83 ************** SET fnom84 = febnom84 SET freal84 = febreal84 set mnom84 = maynom84 set mreal84 = mayreal84 set anom84 = augnom84 set areal84 = augreal84 set nvnom84 = novnom84 set nvreal84 = novreal84 ************** SET fnom85 = febnom85 SET freal85 = febreal85 set mnom85 = maynom85 set mreal85 = mayreal85 set anom85 = augnom85 set areal85 = augreal85 set nvnom85 = novnom85 set nvreal85 = novreal85 ************** SET fnom86 = febnom86 SET freal86 = febreal86 set mnom86 = maynom86 set mreal86 = mayreal86 set anom86 = augnom86 set areal86 = augreal86 set nvnom86 = novnom86 set nvreal86 = novreal86 ************** SET fnom87 = febnom87 SET freal87 = febreal87 set mnom87 = maynom87 set mreal87 = mayreal87 set anom87 = augnom87 set areal87 = augreal87 set nvnom87 = novnom87 set nvreal87 = novreal87 ************** SET fnom88 = febnom88 SET freal88 = febreal88 set mnom88 = maynom88 set mreal88 = mayreal88 set anom88 = augnom88 set areal88 = augreal88 set nvnom88 = novnom88 set nvreal88 = novreal88 ************** SET fnom89 = febnom89 SET freal89 = febreal89 set mnom89 = maynom89 set mreal89 = mayreal89 set anom89 = augnom89 set areal89 = augreal89 set nvnom89 = novnom89 set nvreal89 = novreal89 ************** SET fnom90 = febnom90 SET freal90 = febreal90 set mnom90 = maynom90 set mreal90 = mayreal90 set anom90 = augnom90 set areal90 = augreal90 set nvnom90 = novnom90 set nvreal90 = novreal90 ************** SET fnom91 = febnom91 SET freal91 = febreal91 set mnom91 = maynom91 set mreal91 = mayreal91 set anom91 = augnom91 set areal91 = augreal91 set nvnom91 = novnom91 set nvreal91 = novreal91 ************** SET fnom92 = febnom92 SET freal92 = febreal92 set mnom92 = maynom92 set mreal92 = mayreal92 set anom92 = augnom92 set areal92 = augreal92 set nvnom92 = novnom92 set nvreal92 = novreal92 ************** SET fnom93 = febnom93 SET freal93 = febreal93 set mnom93 = maynom93 set mreal93 = mayreal93 set anom93 = augnom93 set areal93 = augreal93 set nvnom93 = novnom93 set nvreal93 = novreal93 ************** SET fnom94 = febnom94 SET freal94 = febreal94 set mnom94 = maynom94 set mreal94 = mayreal94 set anom94 = augnom94 set areal94 = augreal94 set nvnom94 = novnom94 set nvreal94 = novreal94 ************** SET fnom95 = febnom95 SET freal95 = febreal95 set mnom95 = maynom95 set mreal95 = mayreal95 set anom95 = augnom95 set areal95 = augreal95 set nvnom95 = novnom95 set nvreal95 = novreal95 ************** SET fnom96 = febnom96 SET freal96 = febreal96 set mnom96 = maynom96 set mreal96 = mayreal96 set anom96 = augnom96 set areal96 = augreal96 set nvnom96 = novnom96 set nvreal96 = novreal96 ************** SET fnom97 = febnom97 SET freal97 = febreal97 set mnom97 = maynom97 set mreal97 = mayreal97 set anom97 = augnom97 set areal97 = augreal97 set nvnom97 = novnom97 set nvreal97 = novreal97 ************** SET fnom98 = febnom98 SET freal98 = febreal98 set mnom98 = maynom98 set mreal98 = mayreal98 set anom98 = augnom98 set areal98 = augreal98 set nvnom98 = novnom98 set nvreal98 = novreal98 ************** SET fnom99 = febnom99 SET freal99 = febreal99 set mnom99 = maynom99 set mreal99 = mayreal99 set anom99 = augnom99 set areal99 = augreal99 set nvnom99 = novnom99 set nvreal99 = novreal99 ************** SET fnom00 = febnom00 SET freal00 = febreal00 ********************************************* ********************************************* *** SERIES IN COMBINE.RAT NOW ASSOCIATED *** *** TO A NUMBER FOLLOWS THIS PATTERN: *** *** Odd numbers = nominal *** *** Even numbers = real *** *** 1 + multiple of 8 = Feb Nom *** *** 2 + multiple of 8 = Feb Real *** *** 3 + multiple of 8 = May Nom *** *** 4 + multiple of 8 = May Real *** *** 5 + multiple of 8 = Aug Nom *** *** 6 + multiple of 8 = Aug Real *** *** 7 + multiple of 8 = Nov Nom *** *** 8 + multiple of 8 = Nov Real *** ********************************************* ********************************************* ********************************************** *** assign deflator series to numbers *** ********************************************** EQV 139 to 207 feb83defl may83defl aug83defl nov83defl $ feb84defl may84defl aug84defl nov84defl $ feb85defl may85defl aug85defl nov85defl $ feb86defl may86defl aug86defl nov86defl $ feb87defl may87defl aug87defl nov87defl $ feb88defl may88defl aug88defl nov88defl $ feb89defl may89defl aug89defl nov89defl $ feb90defl may90defl aug90defl nov90defl $ feb91defl may91defl aug91defl nov91defl $ feb92defl may92defl aug92defl nov92defl $ feb93defl may93defl aug93defl nov93defl $ feb94defl may94defl aug94defl nov94defl $ feb95defl may95defl aug95defl nov95defl $ feb96defl may96defl aug96defl nov96defl $ feb97defl may97defl aug97defl nov97defl $ feb98defl may98defl aug98defl nov98defl $ feb99defl may99defl aug99defl nov99defl $ feb00defl may00defl *Calculate Deflators set feb83Defl = fnom83/freal83 set may83Defl = mnom83/mreal83 set aug83Defl = anom83/areal83 set nov83Defl = nvnom83/nvreal83 ********* set feb84Defl = fnom84/freal84 set may84Defl = mnom84/mreal84 set aug84Defl = anom84/areal84 set nov84Defl = nvnom84/nvreal84 ********* set feb85Defl = fnom85/freal85 set may85Defl = mnom85/mreal85 set aug85Defl = anom85/areal85 set nov85Defl = nvnom85/nvreal85 ********* set feb86Defl = fnom86/freal86 set may86Defl = mnom86/mreal86 set aug86Defl = anom86/areal86 set nov86Defl = nvnom86/nvreal86 ********* set feb87Defl = fnom87/freal87 set may87Defl = mnom87/mreal87 set aug87Defl = anom87/areal87 set nov87Defl = nvnom87/nvreal87 ********* set feb88Defl = fnom88/freal88 set may88Defl = mnom88/mreal88 set aug88Defl = anom88/areal88 set nov88Defl = nvnom88/nvreal88 ********* set feb89Defl = fnom89/freal89 set may89Defl = mnom89/mreal89 set aug89Defl = anom89/areal89 set nov89Defl = nvnom89/nvreal89 ********* set feb90Defl = fnom90/freal90 set may90Defl = mnom90/mreal90 set aug90Defl = anom90/areal90 set nov90Defl = nvnom90/nvreal90 ********* set feb91Defl = fnom91/freal91 set may91Defl = mnom91/mreal91 set aug91Defl = anom91/areal91 set nov91Defl = nvnom91/nvreal91 ********* set feb92Defl = fnom92/freal92 set may92Defl = mnom92/mreal92 set aug92Defl = anom92/areal92 set nov92Defl = nvnom92/nvreal92 ********* set feb93Defl = fnom93/freal93 set may93Defl = mnom93/mreal93 set aug93Defl = anom93/areal93 set nov93Defl = nvnom93/nvreal93 ********* set feb94Defl = fnom94/freal94 set may94Defl = mnom94/mreal94 set aug94Defl = anom94/areal94 set nov94Defl = nvnom94/nvreal94 ********* set feb95Defl = fnom95/freal95 set may95Defl = mnom95/mreal95 set aug95Defl = anom95/areal95 set nov95Defl = nvnom95/nvreal95 ********* set feb96Defl = fnom96/freal96 set may96Defl = mnom96/mreal96 set aug96Defl = anom96/areal96 set nov96Defl = nvnom96/nvreal96 ********* set feb97Defl = fnom97/freal97 set may97Defl = mnom97/mreal97 set aug97Defl = anom97/areal97 set nov97Defl = nvnom97/nvreal97 ********* set feb98Defl = fnom98/freal98 set may98Defl = mnom98/mreal98 set aug98Defl = anom98/areal98 set nov98Defl = nvnom98/nvreal98 ********* set feb99Defl = fnom99/freal99 set may99Defl = mnom99/mreal99 set aug99Defl = anom99/areal99 set nov99Defl = nvnom99/nvreal99 ********* set feb00Defl = fnom00/freal00 ********* ****************************************** *** Deflators have been calculated and *** *** have been assigned a series number *** *** between 139 and 207 *** ****************************************** *assign a number to GDP Gap series EQV 208 to 276 GapFeb83 GapMay83 GapAug83 GapNov83 $ GapFeb84 GapMay84 GapAug84 GapNov84 $ GapFeb85 GapMay85 GapAug85 GapNov85 $ GapFeb86 GapMay86 GapAug86 GapNov86 $ GapFeb87 GapMay87 GapAug87 GapNov87 $ GapFeb88 GapMay88 GapAug88 GapNov88 $ GapFeb89 GapMay89 GapAug89 GapNov89 $ GapFeb90 GapMay90 GapAug90 GapNov90 $ GapFeb91 GapMay91 GapAug91 GapNov91 $ GapFeb92 GapMay92 GapAug92 GapNov92 $ GapFeb93 GapMay93 GapAug93 GapNov93 $ GapFeb94 GapMay94 GapAug94 GapNov94 $ GapFeb95 GapMay95 GapAug95 GapNov95 $ GapFeb96 GapMay96 GapAug96 GapNov96 $ GapFeb97 GapMay97 GapAug97 GapNov97 $ GapFeb98 GapMay98 GapAug98 GapNov98 $ GapFeb99 GapMay99 GapAug99 GapNov99 $ GapFeb00 ***Set up Do loop to find GDP Gap * Series I is quarterly real GDP (2=start,138=end,2=increment) Do (I) = 2, 138, 2 SET LOGI = log([SERIES] (I)) set trend = T set trendsq = T**2 COMPUTE ENDDATE = 1982:3 + I/2 COMPUTE BEGDATE = 1957:3 + I/2 SMPL BEGDATE ENDDATE linreg(noprint, define=GapEst) LOGI / [SERIES](207+I/2) # constant trend trendsq *Forecast 4 periods ahead to find potential GDP for enddate+4 SMPL enddate+1 enddate+4 PRJ [series](276+I/2) enddate+1 enddate+4 SMPL 1947:1 2000:4 end do * set up matrix holding only Q4 potential GDP forecasts * from LinReg Loop above * series# 277-345 = Potential GDP Forecasts scratch(matrix=Potential) 69 1947:1 2000:4 pcntr Do (i) = 277, 345 set (pcntr+i-276) = [series] (i) End Do *Pull last potential GDP obs from each forecast series and put into a vector declare rectangular[real] PotVec(69,1) do i = 1,69 compute potvec(i,1) = potential(147+i,i) end do *set up vector for just Q4 potential GDP forecasts declare rectangular[real] Q4Pot(18,1) do i = 1,18 compute Q4Pot(i,1) = PotVec(4*i-3,1) end do write q4pot *Q4Pot is a vector that contains only Q4 potential GDP forecasts * Output GDP Gap results into RATS dataset DEDIT(new) RealTimeGap.rat STORE 208 to 276 SAVE QUIT * Output GDP Gap results into Excel dataset Open copy realtimeGap.xls copy(org=obs,format=xls) / 208 to 276 ******************************************* *** 208-276: Real Time GDP Gap *** *** 139-207: Real Time Deflator *** *** do x = 2,138,2: Real Time Real GDP *** ******************************************* SMPL 1947:1 2000:1 *** Set up matrix holding deflator series **** rows are dates 1947:1-2000:1 **** columns are the deflator series feb83-feb00 (#139-207) Scratch(Matrix=Deflator) 69 1947:1 2000:1 dcntr Do (i) = 139, 207 Set (dcntr+i-138) = [series] (i) End Do *** Set up matrix holding GDP gap series **** rows are dates 1947:1-2000:1 **** columns are the GDP gap series feb83-feb00 (#208-276) Scratch(Matrix=Gap) 69 1947:1 2000:1 gcntr Do (i) = 208, 276 set (gcntr+i-207) = [series] (i) End Do *put gap numbers into percent terms compute Gap = Gap * 100.0 * Pull last obs from each real time Gap series and put into a vector * row 144 of Gap is 1982:4 Declare Rectangular[real] GapVec(69,1) Do i = 1, 69 compute GapVec(i,1) = gap(143+i,i) End do ** Set up vector for just Q4 real time gap obs. Declare Rectangular[real] Q4Gap(18,1) Do i = 1, 18 compute Q4Gap(i,1) = GapVec(4*i-3,1) End do *** Set up inflation vector ** This vector will contain 69 rows ** Each row contains the inflation variable ** that will be used in the Taylor Rule Declare Rectangular[real] Inflation(69,1) Do i = 1, 69 compute inflation(i,1) = log(Deflator(143+i,i) / Deflator(143+i-5,i)) * 100.0 End Do * Insert missing real time data for 1995:Q4 from May 96 series * 53 = row# 1995:4 data is found * 54 = May96 column# compute GapVec(53,1) = gap(143+53,54) compute Inflation(53,1) = log(Deflator(143+53,54) / Deflator(143+53-5,54)) * 100.0 **************** TAYLOR RULE ********************* *** Set up vector to hold Fed Funds *** *** targets outputted by Taylor Rule *** *** each row contains outputted target *** *** for that quarter of Real time data *** ************************************************** Declare Rectangular[real] FundTar(69,1) Do i = 1, 69 compute FundTar(i,1) = inflation(i,1) + 2.0 + ((GapVec(i,1)) * 0.5) $ + (((inflation(i,1)) - 2.0) * 0.5) End Do *turn Taylor FedFunds target vector into series for graphing *see RATS manual 14-152 for details set RTtarget 1982:4 2000:1 = FundTar(T-(1982:4),1) *set up graph of taylor target and historical funds rate open data current.rat data(format=rats) / ffed close data spgraph(header='Federal Funds Rate and Inflation Targets for Real Time Data',hfields=1,vfields=1) smpl 1983:1 2000:1 graph(header='Revised Federal Funds Equation -- GDP Deflator',max=12,min=1,vlabel='Percent') 2 #RTtarget 1983:1 2000:1 6 #ffed 1983:1 2000:1 2 spgraph(done) * Turn Inflation vector into series for graphing purposes set Infgraf 1982:4 1999:4 = inflation(T-(1982:4),1) * graph inflation series spgraph(header='Real Time Inflation',hfields=1,vfields=1) smpl 1983:1 2000:1 graph(max=12,min=1,vlabel='Percent') 1 #InfGraf 1983:1 2000:1 6 spgraph(done) *turn GapVec into a series for graphing set GapGraf 1982:4 1999:4 = GapVec(T-(1982:4),1) * graph output gap spgraph(header='Real Time Output Gap',hfields=1,vfields=1) smpl 1983:1 2000:1 graph(max=8,min=-6,vlabel='Percent') 1 #GapGraf 1983:1 2000:1 6 spgraph(done) *plot inflation and output gap on same graph spgraph(header='Real Time Inflation and Output Gap',hfields=1,vfields=1) smpl 1983:1 2000:1 graph(max=12,min=-6,vlabel='Percent') 2 #GapGraf 1983:1 2000:1 6 #InfGraf 1983:1 2000:1 2 spgraph(done) ************************************************* ************************************************* * * * Taylor Rule using HH and BC forecasts * * * ************************************************* ************************************************* smpl 1947:1 2000:4 *Read in Blue Chip Forecast semi-annual Data open data forecast.rat data(form=rats, org=obs) *convert % growth to decimal form set bc_gdp = bc_gdp / 100 set bc_gdp = 1 + bc_gdp *turn bc_gdp series into matrix make bc_gdpmat 1983:1 2000:2 # bc_gdp *pick out only semi-annual obs from BC GDP forecasts declare rectangular[real] SemBC_GDP(35,1) do (i) = 1, 35 compute SemBC_GDP(i,1) = BC_GDPMat(2*i-1,1) End Do *set up a matrix holding realtime GDP Q4 data *first set up matrix holding realtime GDP data *Feb83-->Feb00 series = columns scratch(matrix=RTime_GDP) 69 1947:1 2000:4 rcntr do (i) = 2, 138, 2 SET (rcntr+i/2) = [series] (i) End do *Pull last real time GDP obs from each set declare rectangular[real] RGDPVEC(69,1) do i = 1, 69 compute rgdpvec(i,1) = Rtime_gdp(143+i,i) end do *pull just Q4 realtime data (82:4, 83:4,...,99:4) declare rectangular[real] Q4RGDP(18,1) do i = 1, 18 compute q4rgdp(i,1) = RGDPVEC(4*i-3,1) end do *insert missing value for 95:4 compute q4rgdp(14,1) = rtime_gdp(143+53,54) *take exponential of forecasted GDP values to get levels declare rectangular[real] EQ4POT(18,1) compute EQ4POT = %exp(q4pot) * Compute February BC Gaps declare rectangular[real] BC_GAP(35,1) Do i = 1, 18 compute BC_GAP(2*i-1,1) = 100.0 * $ log((Q4RGDP(i,1) * SEMBC_GDP(2*i-1,1)) / EQ4POT(i,1)) end do * Compute July BC Gaps Do i = 1, 17 compute BC_GAP(2*i,1) = 100.0 * $ log((Q4RGDP(i,1) * SEMBC_GDP(2*i,1)) / EQ4POT(i,1)) end do *turn BC deflator series into matrix and *pick out only semi-annual obs. from BC Deflator forecasts make bc_defmat 1983:1 2000:2 # bc_deflator declare rectangular[real] SemBC_Def(35,1) do (i) = 1, 35 compute SemBC_Def(i,1) = BC_DefMat(2*i-1,1) end do * Taylor Rule based on BC Forecasts declare rectangular[real] BC_TayMat(35,1) do (i) = 1, 35 Compute BC_TayMat(i,1) = 1.0 + (1.5 * SemBC_Def(i,1)) + (.5 * BC_Gap(i,1)) end do ********************** ** Now HH Forecasts ********************** smpl 1947:1 2000:4 *convert % growth to decimal form set HH_gdp = HH_gdp / 100 set HH_gdp = 1 + HH_gdp *turn bc_gdp series into matrix make HH_gdpmat 1983:1 2000:2 # HH_gdp *pick out only semi-annual obs from HH GDP forecasts declare rectangular[real] SemHH_GDP(35,1) do (i) = 1, 35 compute SemHH_GDP(i,1) = HH_GDPMat(2*i-1,1) End Do *turn HH deflator series into matrix and *pick out only semi-annual obs. from HH Deflator forecasts make HH_defmat 1983:1 2000:2 # HH_deflator declare rectangular[real] SemHH_Def(35,1) do (i) = 1, 35 compute SemHH_Def(i,1) = HH_DefMat(2*i-1,1) end do * Compute February HH Gaps declare rectangular[real] HH_GAP(35,1) Do i = 1, 18 compute HH_GAP(2*i-1,1) = 100.0 * $ log((Q4RGDP(i,1) * SEMHH_GDP(2*i-1,1)) / EQ4POT(i,1)) end do * Compute July HH Gaps Do i = 1, 17 compute HH_GAP(2*i,1) = 100.0 * $ log((Q4RGDP(i,1) * SEMHH_GDP(2*i,1)) / EQ4POT(i,1)) end do * Taylor Rule based on HH Forecasts declare rectangular[real] HH_TayMat(35,1) do (i) = 1, 35 Compute HH_TayMat(i,1) = 1.0 + (1.5 * SemHH_Def(i,1)) + (.5 * HH_Gap(i,1)) end do * Output Taylor FedFunds Target results into EXCEL and text files * Taylor targets for real time data are quarterly for 1982:4-1999:4 * Taylor targets for forecasts are semi-annual for 1983:1-2000:1 * RT target series into excel file smpl 1983:1 2000:1 Open copy RTtarget.xls copy(org=obs,format=xls) / rttarget Close copy * forecast targets in text file b/c output is semi-annual not quarterly. smpl 1983:1 2000:1 Open copy ForecastFunds.txt write(unit=copy) BC_TayMat HH_TayMat Close copy * Output potential GDP forecasts into Excel dataset Open copy temp.xls copy(org=obs,format=xls) / 277 to 345 close copy