Page 4 of 4

Re: Automatic ARMA selection

Posted: Thu Nov 09, 2017 9:21 am
by Felipe
Thanks for your answer.

I want the same program, the automatic ARMA selection, but the program posted in this forum consider a regression with constant.
Here:

Code: Select all

equation {%eqname}.ls dlog({%dep}) {%regs} {%lagstring} {%mastring}
Where:

Code: Select all

{%regs}
is the constant.
So I want a regression without this parameter

Code: Select all

{%regs}
I thought if I stablished a conditional I could resolve this problem, because I need to avoid a regression without parameters.
The first conditional considers the case without ARMA terms. So the regression is with constant:

Code: Select all

if %arstring="ar(0)" and %mastring="ma(0)" then equation {%eqname}.ls(arma=cls, optmethod=legacy) {%dep} {%regs} endif
The second conditional considers the case with ARMA terms without constant:

Code: Select all

if %arstring="ar(1)" or %arstring="ar(2)" or %arstring="ar(3)" or %arstring="ar(4)" or %mastring="ma(1)" or %mastring="ma(2)" or %mastring="ma(3)" or %mastring="ma(4)" then equation {%eqname}.ls(arma=cls, optmethod=legacy) {%dep} {%arstring}{%mastring} endif
But this conditionals doesn't work.

Re: Automatic ARMA selection

Posted: Thu Nov 09, 2017 9:22 am
by EViews Gareth

Code: Select all

'Create some data. Delete these first few lines if you want to run on your existing workfile. create u 1000 series y=nrnd 'Program that calculates the "best" ARMA specification for an equation. Edit the variables below to match your particular data/setup. %eqname = "EQ01" 'name of equation object that will be used. %maxAR = "2" 'maximum number of AR terms %maxMA = "3" 'maximum number of MA terms %dep = "Y" 'dependent variable %regs = " " 'independent variables %criterion = "@AIC" 'which criterion to use enter "@AIC" for Akaike, "@schwarz" for Schwarz, and @HQ for Hannan-Quinn !maxAR = @val(%maxAR) !maxMA = @val(%maxMA) close {%eqname} 'create table for storing critical values. %matname = "crits" if @isobject(%matname) then %matname = "__crits" if @isobject(%matname) then delete {%matname} endif endif table(!maxar+2,!maxma+2) {%matname} {%matname}(1,1) = "AR / MA" {%matname}.setlines(1) +b {%matname}.setlines(a) +r 'set sample smpl @first+!maxAR @last !mincrit = 1e12 'set the minimum to an artificially large value to begin 'estimate the models %arstring = "" for !i=0 to !maxar 'build up string for AR terms. if !i>0 then %arstring = %arstring + " ar(" + @str(!i) + ")" endif %mastring = "" for !j=0 to !maxma 'build up string for MA terms if !j>0 then %mastring = %mastring + " ma(" + @str(!j) + ")" endif 'estimate equation %allregs = %regs + %arstring + %mastring if @len(%allregs)>1 then equation {%eqname}.ls {%dep} {%regs} {%arstring} {%mastring} 'capture criterion if @upper(%criterion) = "@AIC" then !crit = {%eqname}.@aic endif if @upper(%criterion) = "@SCHWARZ" then !crit = {%eqname}.@schwarz endif if @upper(%criterion) = "@HQ" then !crit = {%eqname}.@hq endif 'compare criterion if !crit < !mincrit then !mincrit = !crit !bestAR = !i !bestMA = !j %bestARstr = %arstring 'store the best ar string %bestMAstr = %mastring 'store the best ma string {%matname}.settextcolor(@all) black 'table formatting. !ii=!i+2 !jj=!j+2 {%matname}.settextcolor(!ii,!jj) red endif {%matname}(!i+2,!j+2) = !crit {%matname}(!i+2,1) = !i {%matname}(1,!j+2) = !j endif next next equation {%eqname}.ls {%dep} {%regs} {%bestARstr} {%bestMAstr} show {%eqname} show {%matname}

Residuals from an AR(1) for a number of macroeconomic variables & countries

Posted: Wed Feb 14, 2018 4:24 pm
by sazad
Hi,
I have not programmed much in E-views, so not an export. I am trying to obtain absolute values of residuals from an AR(1) model for time series data of more than one macroeconomic variable and country in one go. Attached a test file for just one variable. How can I create a loop to store the abs value for each of the macro variables for each country? Any prompt help is much appreciated.
Many thanks,
Sohel