ERRORHELP

For questions regarding programming in the EViews programming language.

Moderators: EViews Gareth, EViews Jason, EViews Moderator, EViews Matt

adarshad
Posts: 51
Joined: Wed Sep 05, 2018 10:32 am

Re: ERRORHELP

Postby adarshad » Thu Dec 06, 2018 1:39 pm

Code: Select all

ELSE IF( [ eq{!i}.@pval(2) <!pval_C AND eq{!i}.@aic < !aic  OR eq{!i}.@pval(3)<!pval_D ] AND [eq{!i}.@aic < !aic] )THEN ', SELECT EQUATION IF  XA OR XB HAS  PV LESS THAN 0.1
 !aic = eq{!i}.@aic
!bestlag_a =(!lag_a)  ', then store this lag as !bestlag.
!bestlag_b =(!lag_b) ', then store this lag as !bestlag.


here i want to select either of the pv values less than 0.1 but having minimum AIC

IS CODE RIGHT ?

adarshad
Posts: 51
Joined: Wed Sep 05, 2018 10:32 am

Re: ERRORHELP

Postby adarshad » Thu Dec 06, 2018 2:03 pm

SECONDLY MY preference is to select values less than 0.1.it should do that and if there are any values than it choose less aic.because here i fear that it tries to make all three conditions true.i;e. if equation has less pvs but aic is greater than aic of a lag which has no pv less than required, it will return no value as no condition is true

EViews Matt
EViews Developer
Posts: 315
Joined: Thu Apr 25, 2013 7:48 pm

Re: ERRORHELP

Postby EViews Matt » Thu Dec 06, 2018 3:31 pm

There's an error because you've used [] brackets instead of () parentheses to indicate subexpressions.

The combined logic of those three if clauses effectively ignores the p-values. As long as the AIC of the equation is better than any previously seen, one of the three clause conditions will be true. What you also need is a way to record how many p-values (0, 1, or 2) must be less than 0.1 before you consider the AIC. For example, once you've found an equation with one of the p-values less than 0.1, then any future equation with no p-values less than 0.1 cannot be the best, regardless of whether its AIC is better or not (if I understand your requirements correctly). Similarly, once you've found an equation with two p-values less than 0.1, any future equations with one or no p-values less than 0.1 cannot be the best.

adarshad
Posts: 51
Joined: Wed Sep 05, 2018 10:32 am

Re: ERRORHELP

Postby adarshad » Thu Dec 06, 2018 5:40 pm

You got correct in last paragraph.my aim is to find pv less than 0.1 regardless of aic.
I still donot know how to execute it as it includes min aic in it.

Even if I just get two options.either it should select two pvalues less than 0.1 .if no then use aic min for all others .in case there are many pairs for two pv values less than 0.1, it should choose the pair with min ac of multiple solutions of pvs.

I think i donot account for multiple pv pairs less than 0.1 for my question, where i derived that it should look for min aic for lags combinations with pvs.

But instead it there also adds min aic as basic requirement which i donot want.


So solution is first choose min pv less than 0.1 .this is solution i want.if there are many, choose that pv which has min aic

If there are no min two pvs, it should choose min aic.

adarshad
Posts: 51
Joined: Wed Sep 05, 2018 10:32 am

Re: ERRORHELP

Postby adarshad » Thu Dec 06, 2018 5:57 pm

I HOPE YOU can help me in this case because i tried but i am not coming with a code.i want tow pvs less than 0.1 OR ANYTHING;I AM NOT ABLE TO FIT THE MIN AIC IN A RIGHT WAY IN CODE; I WANT IT TO USE ONLY IF THERE IS CONFLICT IN SOLUTION OR THERE IS NO SOLUTION;

please help me in that

adarshad
Posts: 51
Joined: Wed Sep 05, 2018 10:32 am

Re: ERRORHELP

Postby adarshad » Thu Dec 06, 2018 7:38 pm

Code: Select all

matrix(5,28) pv


matrix(28,30) RESULTS

vector(28) aic


!maxlags = 4
!bestlag_a = 0

!bestlag_b = 0
!bestlag_c = 0


 for !i=1 to 2
 !aic_1 = 99999999

 !aic_2 = 99999999

 !aic_3 = 99999999
!pval_C = 0.1
!pval_D = 0.1
for !lag_a = 0 to !maxlags
   for !lag_b = 0 to !maxlags
   for !lag_c = 0 to !maxlags


 
       
equation eq{!i}.ls Y{!i} c X{!i}A(0 to -!lag_a) X{!i}B(0 to -!lag_b) Y{!i}(-1) X{!i}C(0 to -!lag_c)

 IF ( eq{!i}.@pval(2) < !pval_C and eq{!i}.@pval(3) < !pval_D ) or (eq{!i}.@pval(2) < !pval_C and eq{!i}.@pval(3) < !pval_D  and eq{!i}.@aic < !aic_1 )THEN

 




     !aic = eq{!i}.@aic
   !bestlag_a = (!lag_a)
   !bestlag_b = (!lag_b)
   !bestlag_c = (!lag_c)

ELSE IF  eq{!i}.@aic < !aic_2 THEN

     !aic = eq{!i}.@aic
   !bestlag_a = (!lag_a)
   !bestlag_b = (!lag_b)
   !bestlag_c = (!lag_c)


ENDIF

ENDIF


EQUATION eq{!i}.ls   Y{!i} c X{!i}A(-!bestlag_a  ) X{!i}B(-!bestlag_b  ) Y{!i}(-1) X{!i}C(-!bestlag_C)
colplace(pv, eq!i.@pval, !i)
aic(!i) = eq!i.@aic

matrix PVALUE = @transpose(pv)   
results.setwidth 25
matplace(results,PVALUE,1,1)
colplace(RESULTS,AIC,21)


SHOW RESULTS
NEXT

next
   next
NEXT


just choose tco options but i dont know how to make skip calculations if pvs are found

i hope to see some help;;i tried all foul things i can imagine but could not;;if else while etc everything but cannot make any solution;;;;

EViews Matt
EViews Developer
Posts: 315
Joined: Thu Apr 25, 2013 7:48 pm

Re: ERRORHELP

Postby EViews Matt » Fri Dec 07, 2018 10:21 am

You could explicitly record which of those three cases (0, 1, or 2 p-values < 0.1) you're in, and the logic to transition between them, but lets try a little numerical trick. Replace all of the if logic with,

Code: Select all

!fake_aic = eq{!i}.@aic - 1000 * ((eq{!i}.@pval(2) < !pval_C) + (eq{!i}.@pval(3) < !pval_D))
if !fake_aic < !aic then
   !aic = !fake_aic
   !bestlag_a = !lag_a
   !bestlag_b = !lag_b
   !bestlag_c = !lag_c
endif

The idea above is to create a score for the estimation, which I've called "fake_aic". The score is based on the AIC, but the score gets better as more p-values are less than the 0.1 threshold. If neither p-value is less then 0.1, then the score will just be the AIC. If only one p-value is less than 0.1, then the score will be the AIC - 1000, which will be better than all the possible scores for an estimation with no p-values less than 0.1. Similarly, if both p-values are less then 0.1, then the score will be AIC - 2000, which is better than all the possible scores for an estimation with one or no p-values less than 0.1. Defining the score this way allows you to preference more p-values less than 0.1 and use AIC as the tie-breaker.

adarshad
Posts: 51
Joined: Wed Sep 05, 2018 10:32 am

Re: ERRORHELP

Postby adarshad » Sun Dec 09, 2018 6:46 am

Code: Select all

Dependent Variable: Y1      
Method: Least Squares      
Date: 12/09/18   Time: 14:37   
Sample (adjusted): 1/13/2013 12/31/2017   
Included observations: 260 after adjustments
            
            
Variable   Coefficient   Std. Error   t-Statistic   Prob. 
            
            
C   -0.001191   0.000306   -3.895746   0.0001
X1A(-1)   5.54E-05   1.55E-05   3.563423   0.0004
X1B(-1)   0.005620   0.003237   1.736433   0.0837
Y1(-1)   -0.117793   0.056815   -2.073278   0.0392
X1C(-1)   3.02E-12   1.28E-12   2.349282   0.0196
            
            
R-squared   0.248544       Mean dependent var   0.001195
Adjusted R-squared   0.236757       S.D. dependent var   0.002091
S.E. of regression   0.001827       Akaike info criterion   -9.753117
Sum squared resid   0.000851       Schwarz criterion   -9.684642
Log likelihood   1272.905       Hannan-Quinn criter.   -9.725589
F-statistic   21.08534       Durbin-Watson stat   1.793625
Prob(F-statistic)   0.000000         
            
            


For the max_lag=2 , the program misses out this combination and shows pvalues as only one less than 0.1 , as it should have selected this combination . if you can sort this out
test_program.prg
(1.27 KiB) Downloaded 7 times

dataprojct.wf1
(1.29 MiB) Downloaded 3 times
and its a small problem to be sorted out for this great achievement

EViews Matt
EViews Developer
Posts: 315
Joined: Thu Apr 25, 2013 7:48 pm

Re: ERRORHELP

Postby EViews Matt » Sun Dec 09, 2018 7:21 am

That combination of lags isn't one that your program evaluates, so of course the program cannot identify it as the best. Take a close look at your primary estimation line, the line beginning with "equation eq{!i}.ls".

adarshad
Posts: 51
Joined: Wed Sep 05, 2018 10:32 am

Re: ERRORHELP

Postby adarshad » Sun Dec 09, 2018 11:40 am

EViews Matt wrote:That combination of lags isn't one that your program evaluates, so of course the program cannot identify it as the best. Take a close look at your primary estimation line, the line beginning with "equation eq{!i}.ls".

i am trying but i couldn't understand what are you pointing at.can you make the correction?. as for my primary equation, it uses these combination of lags as y{i} in dependent value is fixed to -1 while else values range from 0 TO -2 ? AND THESE ARE ALL -1; i couldn't understand why its not possible? can you explain whats wrong in my primary line as it should estimate all lags from zero to -lag AND IF ITS WRONG , i guess even all previous estimations were wrong too.my idea was using zero(negative zero is just zero too) to negative two lags ; PLEASE elaborate and leet me whats wrong; your logic was absolute class; a true progammer


Code: Select all

 equation eq{!i}.ls Y{!i} c X{!i}A(-!lag_a) X{!i}B(-!lag_b) Y{!i}(-1) X{!i}C(-!lag_C)


SHOULD I write primary estimation as above?

EViews Matt
EViews Developer
Posts: 315
Joined: Thu Apr 25, 2013 7:48 pm

Re: ERRORHELP

Postby EViews Matt » Mon Dec 10, 2018 10:20 am

My point is that the estimates you're evaluating to find the best combination of lags (the "equation eq{!i}.ls" line) and the estimate you're using to record the results for the best combination (the "show eq{!i}.ls" line) do not match. In the former you use the "to" lag range operator, but in the latter you do not, so the results will not be the same. For example, if the best combination of lags was !bestlag_a = 1, !bestlag_b = 1, !bestlag_c = 2, that would have been determined by the estimation:

Code: Select all

equation eq{!i}.ls Y{!i} c X{!i}A(0 to -1) X{!i}B(0 to -1) Y{!i}(-1) X{!i}C(0 to -2)

Which is equivalent to:

Code: Select all

equation eq{!i}.ls Y{!i} c X{!i}A(0) X{!i}A(-1) X{!i}B(0) X{!i}B(-1) Y{!i}(-1) X{!i}C(0) X{!i}C(-1) X{!i}C(-2)

Buy you'd record the results for:

Code: Select all

equation eq{!i}.ls Y{!i} c X{!i}A(-1) X{!i}B(-1) Y{!i}(-1) X{!i}C(-2)

That last estimation is different than the preceding two. Choose whether you want to the lag ranges (0 to ...) or not, and be consistent in the way you perform your estimations.

adarshad
Posts: 51
Joined: Wed Sep 05, 2018 10:32 am

Re: ERRORHELP

Postby adarshad » Mon Dec 10, 2018 10:31 am

I want to find consistent pvalues for different lags, so that i can identify which is best lag combination for which all companies have significant pvalue. which methodology you suggest will fulfill it. The one I quoted up or like 0 to -lagA and for bestlag 0 to -bestlag.
i want exact lag to capture at which lag values are most signifcant
I HAVE ADDED ANOHER TEST PROGRAM;IF YOU C
test_program_01.prg
(1.34 KiB) Downloaded 2 times
AN VIEW IT

adarshad
Posts: 51
Joined: Wed Sep 05, 2018 10:32 am

Re: ERRORHELP

Postby adarshad » Mon Dec 10, 2018 10:36 am

yeah i need the last one. i need exact values rather than ranges.
thanks for your great help and your time.
you truly deserve some great recognition and cadeau as you took me out for all the disappointment


Return to “Programming”

Who is online

Users browsing this forum: No registered users and 7 guests