Nowcasting with partial information into a quarter
Posted: Fri Sep 08, 2023 2:30 am
Hello everybody. I would appreciate your help. I'm currently doing a nowcast, and I'm following this post: https://blog.eviews.com/2020/12/nowcast ... -gets.html
And this is what I have scheduled (it's all in terms of growth rates):
'keep a list of equation names for easier referencing later
%eqlist = "u_midas get_midas bridge"
'create empty forecast series for each equation
group forcs y
for %j {%eqlist}
series y{%j}
forcs.add y{%j}
next
'estimate/nowcast loop
for !i=0 to 20
smpl @first 2017q4+!i
MIDAS1:
equation u_midas.midas(fixedlag=08, midwgt=umidas) y c y(-1) @ monthly\x1(-1) monthly\x2(-1) monthly\x8(-1) weekly\x11(-1) weekly\x12(-1)
MIDAS2:
equation gets_midas.midas(fixedlag=12, midwgt=autogets) y c y(-1) @isperiod("2008Q3") @isperiod("2020Q2") @isperiod("2021Q2") @ monthly\x1(-1) monthly\x2 (-1) monthly\x8(-1) weekly\x11(-1) weekly\x12(-1)
Bridge - Transfer Function:
equation bridge.ls y c ar(1) ma(1) sma(4) @isperiod("2008Q3") @isperiod("2020Q2") @isperiod("2021Q2") x1 x1(-1) x2 x3
'nowcast
smpl 2018q1+!i 2018q1+!i
for %j {%eqlist}
{%j}.forecast temp
y{%j} = temp
d temp
next
next
smpl @all
This is a formal nowcasting evaluation exercise. It is to estimate each model one step ahead, that is, with the information available one month before the publication. The first estimates assumes that we are in February 2018, and we have a sample from 2000Q1 to 2017Q4, and then we forecast for 2018Q1. Then we move forward one quarter, we will assume that we are in May 2018, and we forecast now 2018Q2, and so on until 2023Q1, which means we have twenty rolling nowcasts.
However, I would like to be able to do the same exercise but when I have one month of observations, two months of observations, and three months of observations (as in this case) for a quarter. This is with the objective of being able to evaluate if the RMSE decreases as I add more information.
I have no idea how to program this, even more so because I have monthly and weekly information for the independent variables. I would appreciate any help you can offer me.
Thank you very much in advance!
And this is what I have scheduled (it's all in terms of growth rates):
'keep a list of equation names for easier referencing later
%eqlist = "u_midas get_midas bridge"
'create empty forecast series for each equation
group forcs y
for %j {%eqlist}
series y{%j}
forcs.add y{%j}
next
'estimate/nowcast loop
for !i=0 to 20
smpl @first 2017q4+!i
MIDAS1:
equation u_midas.midas(fixedlag=08, midwgt=umidas) y c y(-1) @ monthly\x1(-1) monthly\x2(-1) monthly\x8(-1) weekly\x11(-1) weekly\x12(-1)
MIDAS2:
equation gets_midas.midas(fixedlag=12, midwgt=autogets) y c y(-1) @isperiod("2008Q3") @isperiod("2020Q2") @isperiod("2021Q2") @ monthly\x1(-1) monthly\x2 (-1) monthly\x8(-1) weekly\x11(-1) weekly\x12(-1)
Bridge - Transfer Function:
equation bridge.ls y c ar(1) ma(1) sma(4) @isperiod("2008Q3") @isperiod("2020Q2") @isperiod("2021Q2") x1 x1(-1) x2 x3
'nowcast
smpl 2018q1+!i 2018q1+!i
for %j {%eqlist}
{%j}.forecast temp
y{%j} = temp
d temp
next
next
smpl @all
This is a formal nowcasting evaluation exercise. It is to estimate each model one step ahead, that is, with the information available one month before the publication. The first estimates assumes that we are in February 2018, and we have a sample from 2000Q1 to 2017Q4, and then we forecast for 2018Q1. Then we move forward one quarter, we will assume that we are in May 2018, and we forecast now 2018Q2, and so on until 2023Q1, which means we have twenty rolling nowcasts.
However, I would like to be able to do the same exercise but when I have one month of observations, two months of observations, and three months of observations (as in this case) for a quarter. This is with the objective of being able to evaluate if the RMSE decreases as I add more information.
I have no idea how to program this, even more so because I have monthly and weekly information for the independent variables. I would appreciate any help you can offer me.
Thank you very much in advance!