defl_forecast_1q.data, 'deflator inflation - 6mo forecast': defl_forecast_2q.data, 'deflator inflation - 1yr forecast': defl_forecast_1y.data }) # ## Actual data # In[5]: interest3mo = fp.series('TB3MS').as_frequency('Q') interest6mo = fp.series('TB6MS').as_frequency('Q') interest1yr = fp.series('GS1').as_frequency('Q') interest3mo, interest6mo, interest1yr = fp.window_equalize( [interest3mo, interest6mo, interest1yr]) interest_frame = pd.DataFrame({ 'nominal interest - 3mo': interest3mo.data, 'nominal interest - 6mo': interest6mo.data, 'nominal interest - 1yr': interest1yr.data }) # In[6]: defl_3mo = fp.series('GDPDEF') defl_6mo = fp.series('GDPDEF') defl_1yr = fp.series('GDPDEF') defl_3mo = defl_3mo.pc(method='forward', annualized=True)
# In[2]: # Dowload data from FRED u = series('LNS14000028') p = series('CPIAUCSL') # Construct the inflation series p.pc(annualized=True) p.ma2side(length=6) p.data = p.ma2data p.datenumbers = p.ma2datenumbers p.dates = p.ma2dates window_equalize([p,u]) p.bpfilter(low=24,high=84,K=84) u.bpfilter(low=24,high=84,K=84) # Set data for animation x = u.bpcycle y = p.bpcycle d=u.bpdates n=len(x) # In[3]: # Plot setup font = {'weight' : 'bold', 'size' : 15}
# The purpose behind providing incomplete columns is to give students a starting point for completing the columns using Excel or a comparable tool. # # ## Download and manage data # In[2]: # Download monetary base and GDP deflator data m_base = fp.series('BOGMBASE') gdp_deflator = fp.series('A191RD3A086NBEA') # Convert monetary base data to annual frequency m_base = m_base.as_frequency('A') # Equalize data ranges for monetary base and GDP deflator data m_base, gdp_deflator = fp.window_equalize([m_base, gdp_deflator]) # GDP deflator base year base_year = gdp_deflator.units.split(' ')[-1].split('=')[0] # In[3]: # Construct real monetary base real_m_base = m_base.data/gdp_deflator.data*100/1000/1000 # Construct inflation data inflation = (gdp_deflator.data/gdp_deflator.data.shift(1))-1
governmentA = series('GCEA') exportsA = series('EXPGSA') importsA = series('IMPGSA') netExportsA = series('A019RC1A027NBEA') deflatorA = series('A191RD3A086NBEA') depreciationA = series('Y0000C1A027NBEA') gdpA = series('GDPA') tfpA = series('GDPA') capitalA = series('GDPA') laborA = series('B4701C0A222NBEA' ) # BEA index: fred('HOANBS') / .quartertoannual(method='AVG') # annualSeries = [investmentA,consumptionA,governmentA,exportsA,importsA,netExportsA,deflatorA,depreciationA,gdpA,tfpA,capitalA,laborA] investmentA, consumptionA, governmentA, netExportsA, exportsA, importsA, deflatorA, depreciationA, gdpA, tfpA, capitalA, laborA = window_equalize( [ investmentA, consumptionA, governmentA, netExportsA, exportsA, importsA, deflatorA, depreciationA, gdpA, tfpA, capitalA, laborA ]) # 2.2 Compute real annual data series investmentA.data = 100 * investmentA.data / deflatorA.data consumptionA.data = 100 * consumptionA.data / deflatorA.data governmentA.data = 100 * governmentA.data / deflatorA.data exportsA.data = 100 * exportsA.data / deflatorA.data importsA.data = 100 * importsA.data / deflatorA.data netExportsA.data = 100 * netExportsA.data / deflatorA.data gdpA.data = 100 * gdpA.data / deflatorA.data TA = len(investmentA.data) # 2.3 Convert labor from millions of hours to billions laborA.data = laborA.data / 1000
dates=dates, frequency_short='Q') gdp_deflator_forecast_A = fp.to_fred_series( data=inflation_forecasts['INFPGDP1YR'].values, dates=dates, frequency_short='A') gdp_deflator_forecast_A = gdp_deflator_forecast_A.as_frequency(freq='A', method='mean') # In[ ]: # In[5]: # 3.5 Create data frames with forecast inflation, actual inflation, and the 1-year bond rate gdp_deflator_Q, gdp_deflator_forecast_Q, interest_Q = fp.window_equalize( [gdp_deflator_Q, gdp_deflator_forecast_Q, interest_Q]) gdp_deflator_A, gdp_deflator_forecast_A, interest_A = fp.window_equalize( [gdp_deflator_A, gdp_deflator_forecast_A, interest_A]) inflation_forecast_Q_df = pd.DataFrame({ '1-year inflation forecast': gdp_deflator_forecast_Q.data, '1-year actual inflation': gdp_deflator_Q.data, '1-year nominal interest rate': interest_Q.data }) inflation_forecast_A_df = pd.DataFrame({ '1-year inflation forecast': gdp_deflator_forecast_A.data, '1-year actual inflation': gdp_deflator_A.data,
# In[2]: # Dowload data u = series('LNS14000028') p = series('CPIAUCSL') # Construct the inflation series p.pc(annualized=True) p.ma2side(length=6) p.data = p.ma2data p.datenumbers = p.ma2datenumbers p.dates = p.ma2dates # Make sure that the data inflation and unemployment series cver the same time interval window_equalize([p, u]) # Filter the data p.bpfilter(low=24, high=84, K=84) p.hpfilter(lamb=129600) u.bpfilter(low=24, high=84, K=84) u.hpfilter(lamb=129600) # ## Plots # In[3]: # BP-filtered data fig = plt.figure() ax = fig.add_subplot(2, 1, 1) ax.plot_date(p.datenumbers, p.data, 'b-', lw=2)
dateNumbers = [dateutil.parser.parse(s) for s in dates] # 3.4 Create the FRED objects gdpDeflatorForecastQ.data = inflationForecasts['INFPGDP1YR'].values gdpDeflatorForecastQ.dates = dates gdpDeflatorForecastQ.datenumbers = dateNumbers gdpDeflatorForecastA.data = inflationForecasts['INFPGDP1YR'].values.tolist() gdpDeflatorForecastA.dates = dates gdpDeflatorForecastA.datenumbers = dateNumbers gdpDeflatorForecastA.quartertoannual(method='average') # In[5]: # 3.5 Create data frames with forecast inflation, actual inflation, and the 1-year bond rate window_equalize([gdpDeflatorQ, gdpDeflatorForecastQ, interestQ]) window_equalize([gdpDeflatorA, gdpDeflatorForecastA, interestA]) inflationForecastQDf = pd.DataFrame( { '1-year inflation forecast': gdpDeflatorForecastQ.data, '1-year actual inflation': gdpDeflatorQ.data, '1-year nominal interest rate': interestQ.data }, index=interestQ.dates) inflationForecastADf = pd.DataFrame( { '1-year inflation forecast': gdpDeflatorForecastA.data, '1-year actual inflation': gdpDeflatorA.data, '1-year nominal interest rate': interestA.data }, index=interestA.dates)
deflator_frame = deflator_frame.set_index( pd.DatetimeIndex(defl_forecast_1q.datenumbers)) # ## Actual data # In[8]: interest3mo = series('TB3MS') interest6mo = series('TB6MS') interest1yr = series('GS1') interest3mo.monthtoquarter() interest6mo.monthtoquarter() interest1yr.monthtoquarter() window_equalize([interest3mo, interest6mo, interest1yr]) interest_frame = pd.DataFrame({ 'nominal interest - 3mo': interest3mo.data, 'nominal interest - 6mo': interest6mo.data, 'nominal interest - 1yr': interest1yr.data }) interest_frame = interest_frame.set_index( pd.DatetimeIndex(interest3mo.datenumbers)) # In[9]: defl_3mo = series('GDPDEF') defl_6mo = series('GDPDEF') defl_1yr = series('GDPDEF')