Consider the vector X whose elements are

X = [3,6,4,1,0, -1, 2,7]

and let us write a matrix built from X with lags added. One could build the lag matrix suche that the

last element of X is an element of the vector with zero lag or in another way, include the first element

of X in the vector with zero lag.

The first style would look like as follows:

Y: lag= 0: X[2],...,X[7]

X1: lag= 1: X[1]..., X[6]

X2: lag= 2: X[0],.., X[5]

The vector with lag of 1 would be $X_{-1}$ or as $X_{i-1}$. The the second style would look like

Y: lag= 0: X[0],.., X[5]

X1: lag= 1: X[1]..., X[6]

X2: lag= 2: X[2],...,X[7]

and the vector with lag of 1 would be denote $X_{1}$ or as $X_{i+1}$.

The following function would generate a lag matrix from the vectors $X_{minlag}$ to $X_{maxlag}$.

def makelagmatrix(X, minlag=0, maxlag= 2, style=[0,1][0]): L=[] n = len(X) if style==0: for i in range(0,n-maxlag): row = [X[i+j] for j in range(minlag, maxlag+1)] L.append(row) else: for i in range(maxlag,n): row = [X[i-j] for j in range(minlag, maxlag+1)] L.append(row) return L minlag = 1 maxlag = 2 X= [3,6,4,1, 0, -1,2,7] print X Y = X[:-maxlag+1] matlib.mataugprint(makelagmatrix(X, minlag, maxlag), Y) Y = X[maxlag:] matlib.mataugprint(makelagmatrix(X, minlag, maxlag,1), Y)

When the above program runs it outputs:

[3, 6, 4, 1, 0, -1, 2, 7]

6.0000 4.0000 | 3.0000

4.0000 1.0000 | 6.0000

1.0000 0.0000 | 4.0000

0.0000 -1.0000 | 1.0000

-1.0000 2.0000 | 0.0000

2.0000 7.0000 | -1.0000

6.0000 3.0000 | 4.0000

4.0000 6.0000 | 1.0000

1.0000 4.0000 | 0.0000

0.0000 1.0000 | -1.0000

-1.0000 0.0000 | 2.0000

2.0000 -1.0000 | 7.0000

[3, 6, 4, 1, 0, -1, 2, 7]

6.0000 4.0000 | 3.0000

4.0000 1.0000 | 6.0000

1.0000 0.0000 | 4.0000

0.0000 -1.0000 | 1.0000

-1.0000 2.0000 | 0.0000

2.0000 7.0000 | -1.0000

6.0000 3.0000 | 4.0000

4.0000 6.0000 | 1.0000

1.0000 4.0000 | 0.0000

0.0000 1.0000 | -1.0000

-1.0000 0.0000 | 2.0000

2.0000 -1.0000 | 7.0000

## No comments:

## Post a Comment