Temporal disaggregation procedures .....
Posted: Wed Sep 09, 2009 12:23 am
Below you can find Temporal disaggregation procedure using Denton, Cholette, Fernandez, BFL, Chow-Lin methods as a subroutine in EViews. Copy and paste the code into your program window to execute. Below I posted also instruction hot to use it. Please feel free to modify and/or improve it.
This procedure was written for Eviews before multi frequency Workfiles were introduced, so all input series are in one frequency. Procedure is working in target frequency, i.e. when you disaggregate series from yearly to quarterly values input series are quarterly. Annual series is technically uniformly disaggregated. Low frequency series is again aggregated (by sum) to original frequency inside the procedure.
Inputs are series (not vectors), before using procedure, you have to define result series (high frequency) and equally distributed low frequency one. In current version I do it using link series. But it can be also done outside Eviews by dividing low frequency number by frequency.
'---------------------------------------------------------------------------------------------------------------
' inclusion of interpolation procedures libraries
'---------------------------------------------------------------------------------------------------------------
include C:\.......\agg_help.prg
include C:\........\ program with disaggregation procedure
'---------------------------------------------------------------------------------------------------------------
' SETTING OF THE TECHNICAL FREQUENCY CONVERSION METHOD FOR ANNUAL SERIES
'---------------------------------------------------------------------------------------------------------------
pageselect A
Oryginal_annuall_series setconvert d
'---------------------------------------------------------------------------------------------------------------
' EXAMPLE OF INTERPOLATION PROCEURE
' --------------------------------------------------------------------------------------------------------------
pageselect Q
link temp_y
temp_y.linkto A::Oryginal_annuall_series
series Oryginal_annuall_series_equally_distributed = temp_y
series Result_series
call disaggregation_subroutine (Oryginal_annuall_series_equally_distributed, Result_series, Indicator, parameters) >>> indicator if needed
delete temp_y Oryginal_annuall_series_equally_distributed
' --------------------------------------------------------------------------------------------------------------
Slawek Dudek
This procedure was written for Eviews before multi frequency Workfiles were introduced, so all input series are in one frequency. Procedure is working in target frequency, i.e. when you disaggregate series from yearly to quarterly values input series are quarterly. Annual series is technically uniformly disaggregated. Low frequency series is again aggregated (by sum) to original frequency inside the procedure.
Inputs are series (not vectors), before using procedure, you have to define result series (high frequency) and equally distributed low frequency one. In current version I do it using link series. But it can be also done outside Eviews by dividing low frequency number by frequency.
'---------------------------------------------------------------------------------------------------------------
' inclusion of interpolation procedures libraries
'---------------------------------------------------------------------------------------------------------------
include C:\.......\agg_help.prg
include C:\........\ program with disaggregation procedure
'---------------------------------------------------------------------------------------------------------------
' SETTING OF THE TECHNICAL FREQUENCY CONVERSION METHOD FOR ANNUAL SERIES
'---------------------------------------------------------------------------------------------------------------
pageselect A
Oryginal_annuall_series setconvert d
'---------------------------------------------------------------------------------------------------------------
' EXAMPLE OF INTERPOLATION PROCEURE
' --------------------------------------------------------------------------------------------------------------
pageselect Q
link temp_y
temp_y.linkto A::Oryginal_annuall_series
series Oryginal_annuall_series_equally_distributed = temp_y
series Result_series
call disaggregation_subroutine (Oryginal_annuall_series_equally_distributed, Result_series, Indicator, parameters) >>> indicator if needed
delete temp_y Oryginal_annuall_series_equally_distributed
' --------------------------------------------------------------------------------------------------------------
Slawek Dudek