BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
sasalex2024
Quartz | Level 8

Dear SAS Community,

 

I apologize for the lengthy message.

 

As you know, the VARMAX procedure in SAS allows for the computation of the accumulated impulse response in the transfer function and provides standard errors for the long-run response elements.

 

I am wondering if similar functionality exists in PROC ARIMA (or in HPF procedures). While I understand that VARMAX can be used to model a univariate series, my understanding is that the mathematical formulation of the transfer function in a VARMAX model differs from that in an ARIMA model. Specifically, in an ARIMA model, the transfer function has a specific rational form, where the numerator and denominator polynomials define the distributed lag structure of the input series.

 

Consider the following scenario: I have a transfer function model in PROC ARIMA where the input variable St​ is a standard step function, taking the value 0 before a certain time point and 1 thereafter.

 

The code is:

 

proc arima data=A;

identify var=Y crosscorr=St;

estimate p=(1)(12) q=1 input=( / (1) st ) method=ml outmodel=Results;

run;

The estimated transfer function weights are given by ω0 (SAS estimates it as ‘NUM1’)​ and δ1 (SAS estimates it as ‘DEN1,1’), where the accumulated response evolves as follows:

 

ω0 (initial period response),

ω0*(1+δ1) (next period response),

ω0*(1+δ1+δ1^2) (following period response), etc.

 

While I can manually compute the accumulated response since PROC ARIMA estimates ω0 and δ1, I am looking for a more efficient ("automatic?") way to obtain these values directly in SAS. 

 

Additionally, PROC ARIMA provides standard errors (and thus, confidence intervals) only for the estimated parameters ω0 and δ1, but in reality, each accumulated response term has its own confidence interval. I am unsure how to obtain these confidence bands in SAS for all these separate added responses. Is there a formula for it?

 

Any insights on this would be greatly appreciated. Thank you again.

1 ACCEPTED SOLUTION

Accepted Solutions
SASCom1
SAS Employee

Hi @sasalex2024 ,

PROC ARIMA does not provide the functionality to compute impulse response functions. If you would like to obtain impulse response functions directly from the procedure, then PROC VARMAX is the procedure to go. Although PROC VARMAX does not support the complexed numerator, denominator polynomials in backshift specification of transfer functions as supported in PROC ARIMA, it does allow you to specify desired AR, MA orders and desired lags of exogenous variables for ARIMAX model, and you can obtain the impulse response functions and its standard errors directly from the procedure. Using PROC VARMAX is the preferred approach.

 

If you want to use PROC ARIMA instead, then you will need to do everything by hand outside of PROC ARIMA, manually derive the functional expressions for the desired impulse response functions, then manually derive the formula for the standard errors of the impulse response function(using delta method for example), then compute the impulse responses and their standard errors yourself according to the derived formulas. If you take this manual approach, you may want to first verify the correct expressions for the desired impulse response functions, since there could be mistakes made in derivation of impulse response functions, and every step that follows depends on the derived impulse response function. 

 

I hope this helps.

View solution in original post

1 REPLY 1
SASCom1
SAS Employee

Hi @sasalex2024 ,

PROC ARIMA does not provide the functionality to compute impulse response functions. If you would like to obtain impulse response functions directly from the procedure, then PROC VARMAX is the procedure to go. Although PROC VARMAX does not support the complexed numerator, denominator polynomials in backshift specification of transfer functions as supported in PROC ARIMA, it does allow you to specify desired AR, MA orders and desired lags of exogenous variables for ARIMAX model, and you can obtain the impulse response functions and its standard errors directly from the procedure. Using PROC VARMAX is the preferred approach.

 

If you want to use PROC ARIMA instead, then you will need to do everything by hand outside of PROC ARIMA, manually derive the functional expressions for the desired impulse response functions, then manually derive the formula for the standard errors of the impulse response function(using delta method for example), then compute the impulse responses and their standard errors yourself according to the derived formulas. If you take this manual approach, you may want to first verify the correct expressions for the desired impulse response functions, since there could be mistakes made in derivation of impulse response functions, and every step that follows depends on the derived impulse response function. 

 

I hope this helps.

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

Discussion stats
  • 1 reply
  • 1965 views
  • 1 like
  • 2 in conversation