BookmarkSubscribeRSS Feed
malakaext
Calcite | Level 5

Hi,

Can someone please help me with the following coding?

I need to create a data set of 1000 values for the following model:

X(t) = (1/((1-x)**0.4))e               ,where e is a standard normal random variable and L is the lag operator. I don't know how to deal with the lag operator. finally I need to plot X vs. t.

But I  need use the 1st 100 terms of the INFINITE  BINOMIAL expansion of the term (1/((1-x)**0.4)).

Thanks .

1 REPLY 1
ghastly_kitten
Fluorite | Level 6

Dear malakaext,

Since I can't observe the lag operator in your expression, I'll try to explain you the usage of lag function in general.

x = lagN(varname); - this will produce the value of 'varname' on a step t - N.

So y =  x(t-1) will be

y = lag1(x);

y = x(t-3) will be

y = lag3(x);

etc.

Notice: consider reading help about lag function and using it in conditional statements.

The example:

X(t) = (1/((1-X(t-1))**0.4))* e;

data Xmodel;

     var t X e;

     do t = 1 to 1000;

          e = rand('NORMAL', 0, 1);

           X =( 1/( (1 - coalesce(lag1(X),0))**0.4 ) ) * e ;

          output;

     end;

run;

sas-innovate-white.png

Missed SAS Innovate in Orlando?

Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.

 

Register now

Discussion stats
  • 1 reply
  • 1064 views
  • 0 likes
  • 2 in conversation