Thursday, January 23, 2014

Using SAS Forecasting Server for CCAR Macroeconomic Forecasting


Comprehensive Capital Analysis and Review, or CCAR, is one of Federal Reserve’s capital planning initiatives for big banks. The Federal Reserve has published broad contours of the baseline scenario, the adverse scenario, and the severely adverse scenario. Forecasting macroeconomic variables under these different scenarios serve as starting points for loan loss prediction, financial portfolio modeling and comprehensive reporting under CCAR. The Fed Reserve also provided updated historical time series accompanying the scenarios (see www.federalreserve.gov/bankinforeg/stress-tests-capital-planning.htm).

This post shows how to  use SAS Forecasting Server (FS) to build 28 time series forecasting from the link above. It took me a little over 2 hours to get the 28 models set up and run with FS including data prep. The SAS code program "fedmodeifed2.sas" in the appendix of this post converts original charter data types into numeric data type, and creates quarterly time ID necessary to model with FS.
 
  • After creating new project, point to the data set that has all 28 time series

 
  • Decide to run 'pure' time series forecast or to include explanatory variables

 

  •  Great flexibility to decide which subset of the series to be used for forecast. This is a huge productivity boost since the modeler does not need to toggle back and forth between the design window and data steps, or carry many different conditioning flags in the data set



  • Point and click to access 47 model selection criteria. Slide validation data window to suite your needs


  • A set of quality models are built in 2 minutes. You can copy the built models, make changes to vary into different criteria, validation, measurement combinations for quick comparison. The model building process produces diagnostics, residual plots, whitening capability and transformations, among others. You can design event variables to adjust forecast by business cycles and external shocks/treatment. FS also supports custom overrides (although in many veins manual overrides are not recommended)





 

SAS Forecast Server essentially is GUI counterpart of the renown SAS ETS software. It is built and optimized towards the latest trend in forecast theory and practice towards forecast data mining. The productivity boost and model documentation are the top reasons I fall in love with FS. I spent about 2 hours and 20 minutes to build up all 28 series. They are baseline and you certainly can and should spend more time polishing them. Below is a summary of the 28 models. My favorite method is UCM

 

 

Enjoy!!

 Appendix: SAS code to clean up original data for FS modeling, fedmodeifed2.sas"

 
     "
     libname ccar "c:\sasdata";
    %let indsn =ccar.ccartest2; /*use Import facility to read in FED spreadsheet directly*/
    %let outdsn =sashelp.fedmodified2;
    data &outdsn.;
         set &indsn. ;
        length Q2 $2  y2 $4 ;
        Q2 =substr(compress(OBS), 2,1);
        Y2 =substr(compress(OBS), 3,4);
        YYQ =yyQ(y2,Q2);
        format yyq yyq6.;
        if _n_<=151;

        rename _0_year_Treasury_yield=Ten_year_Tre_yield
                     __month_Treasury_rate =Three_mon_Tre_rate
                     __year_Treasury_yield=Five_year_tre_yield;

                   /*the three raw names above cause problems with FS without renaming*/

                    DJTSMI=Dow_Jones_Total_Stock_Market_Ind*1;
                    Developing_Asia_Inflation2 =Developing_Asia_Inflation*1;
            Developing_Asia_Real_GDP_Growth2=Developing_Asia_Real_GDP_Growth*1;
            Euro_Area_Bilateral_Dollar_Exch2=Euro_Area_Bilateral_Dollar_Excha*1;
            Euro_Area_Inflation2=Euro_Area_Inflation*1;
            Developing_Asia_Bilateral_Dolla2=Developing_Asia_Bilateral_Dollar*1;
            Market_Volatility_Index__VIX2=Market_Volatility_Index__VIX_*1;

            /*the original data are very clean and regularized. There is no need to write fancy    code to do the type conversion. Just get it done*/

       drop Developing_Asia_Inflation
       Developing_Asia_Real_GDP_Growth
       Euro_Area_Bilateral_Dollar_Excha
       Euro_Area_Inflation
       Market_Volatility_Index__VIX_
      Dow_Jones_Total_Stock_Market_Ind
      Developing_Asia_Bilateral_Dollar
      Q2 y2;
run ;

"