Page **1** of **2**

### How to run a time series model on panel data?

Posted: **Mon Jan 29, 2018 10:24 am**

by **Mihailo Savic**

Hello,

I have financial data of 40+ companies for 20+ years in an excel sheet. What I want to do is run a few time series regressions and tests (1. log(y)= c + b1*(log(y(-1))); 2. log(y)= c + b1*(log(y(-1))) + b2*x; Dickey Fuller for log(y(-1))).

How do I most easily do this for all 40+ companies without manually running these regressions (and tests) over and over again for each of the companies? Can I use the "for" command? (Each company has a GVKEY (a number) associated with it (not from 1-n (e.g. GVKEY(Comp#1)=11409 GVKEY(Comp#2)= 15668, etc)).

I know that my data looks like a panel but I am only interest in time-series models (but for all of the individuals (companies)).

I am using EViews 9.5 standard version.

I apologize if anything doesn't make sense... first time posting.

Mihailo Savic.

### Re: How to run a time series model on panel data?

Posted: **Mon Jan 29, 2018 10:43 am**

by **EViews Gareth**

Yes, you can use a for loop to do this. Take a read through some of the programming guides and you should be set.

viewtopic.php?f=5&t=1638http://www.eviews.com/Learning/programming.html

### Re: How to run a time series model on panel data?

Posted: **Mon Jan 29, 2018 11:07 am**

by **Mihailo Savic**

Thank you Gareth,

Would you mind being more specific as to how I would do this. How do I tell the program to check through the GVKEYs? Also will it still run the regression for all y and y(-1) each time (which I don't want it to do) or just for the ones that are associated with one GVKEY?

Mihailo.

### Re: How to run a time series model on panel data?

Posted: **Wed Jan 31, 2018 10:03 am**

by **Mihailo Savic**

I believe I figured out how to calculate what I need, but I am still having trouble exporting all of the results to an excel sheet. I want the excel sheet to contain The GVKEY Company name coefficients for all of my variables (and intercept), the t values, adjusted R^2, SE, and the t stat from the ADF.

Here is the code:

matrix ((@rows(gvkey))/33,2) ys_adf

scalar rows=@rows(gvkey)

scalar i=1

scalar j=1

while i<rows

scalar gvk=gvkey(i)

smpl if gvkey=gvk

series y{gvk}=log(adjusted_oibdp)

series x{gvk}=log(capital_expenditures)

equation eq{gvk}.ls y{gvk} c y{gvk}(-1)

equation eq{gvk}x.ls y{gvk} c y{gvk}(-1) x{gvk}

equation eq{gvk}tr.ls y{gvk} c y{gvk}(-1) x{gvk} @trend

freeze(adftable) y{gvk}.uroot(adf)

ys_adf(j,1)= gvk

ys_adf(j,2)= @val(adftable(7,4))

d adftable

while i<rows and gvk=gvkey(i)

i=i+1

wend

j=j+1

wend

How do I export all these results to an Excel sheet?

Mihailo.

### Re: How to run a time series model on panel data?

Posted: **Wed Jan 31, 2018 10:17 am**

by **EViews Gareth**

Probably the best way would be to store them into an EViews table or matrix, then save that table or matrix as a .csv file, then open in Excel.

### Re: How to run a time series model on panel data?

Posted: **Wed Jan 31, 2018 10:24 am**

by **Mihailo Savic**

Thank you!

I "freeze"d the adftable and put it into a matrix and then exported it like you said. It worked.

But how do I freeze the equations of my ls equations? What is the command to freeze them to build the matrices?

### Re: How to run a time series model on panel data?

Posted: **Wed Jan 31, 2018 10:54 am**

by **EViews Gareth**

For the equations you can pull off the stats you want directly without freezing.

Code: Select all

`table mytable`

mytable(gvk,1) = eq{gvk}.@r2

All the other data members for equations can be found in the Equation section of the Object Reference:

http://www.eviews.com/help/helpintro.ht ... uation_aic

### Re: How to run a time series model on panel data?

Posted: **Wed Jan 31, 2018 11:04 am**

by **Mihailo Savic**

Thank you again!

One more question, for some reason I cannot see any of the residuals on the equations that I get. Number of obs per company should be 31 (as the results properly show) but the residuals show nothing and it says that the number of obs for residuals is 983 (which is as if it is not looking only at just one company like I told it to).

Mihailo.

### Re: How to run a time series model on panel data?

Posted: **Wed Jan 31, 2018 11:06 am**

by **EViews Gareth**

What exactly are you looking at/doing?

### Re: How to run a time series model on panel data?

Posted: **Wed Jan 31, 2018 11:09 am**

by **Mihailo Savic**

For the code that I wrote (calculate ls y c y(-1) x... per company) I get my equations for each of the companies. I open the results (object) and everything is there, but when I look at the "Resids" tab in the object it doesn't show me anything.

### Re: How to run a time series model on panel data?

Posted: **Wed Jan 31, 2018 11:29 am**

by **EViews Gareth**

So what does it show you?

### Re: How to run a time series model on panel data?

Posted: **Thu Feb 01, 2018 7:30 am**

by **Mihailo Savic**

I open my ~30 company data. I run the program. I open one of the calculated equations and I get this:

Dependent Variable: Y15580

Method: Least Squares

Date: 02/01/18 Time: 09:13

Sample: 1 957 IF GVKEY=GVK

Included observations: **32**

Variable Coefficient Std. Error t-Statistic Prob.

C 0.926976 0.496468 1.867140 0.0717

Y15580(-1) 0.891622 0.063182 14.11191 0.0000

R-squared 0.869079 Mean dependent var 7.891060

Adjusted R-squared 0.864715 S.D. dependent var 0.835122

S.E. of regression 0.307167 Akaike info criterion 0.537612

Sum squared resid 2.830550 Schwarz criterion 0.629221

Log likelihood -6.601793 Hannan-Quinn criter. 0.567978

F-statistic 199.1460 Durbin-Watson stat 2.555694

Prob(F-statistic) 0.000000

Everything is fine. But if for that equation I click on the Resids tab, I get an image of an empty graph with no line for residual, actual or fitted, just empty... as if there are no results. Additionally, if I go to View->Actual, Fitted, Residual -> Actual, Fitted, Residual Table, it is also empty except that it says that the number of Obs is 956. That is wrong. It should be the same number as in the statistics: 32! 956 is the maximum number of Obs. Its as if he is giving me the output for just one company but then if I want to look at the residual stats then he just ran the whole thing without looking at the code and just did the ls for all of the companies at once (which also shouldn't even make sense how he could do that, and even if he did do that then it should show the residuals for all of the companies, as it always does if I just run the ls on all of them without the code).

Mihailo.

### Re: How to run a time series model on panel data?

Posted: **Thu Feb 01, 2018 9:01 am**

by **EViews Gareth**

We'll need to see the workfile/equation. Could you provide it?

### Re: How to run a time series model on panel data?

Posted: **Thu Feb 01, 2018 9:10 am**

by **Mihailo Savic**

Hello,

I have attached the work file. If you open any eq you will see that the stats are there but the residuals aren't.

Also, I am currently trying to save those equations in a matrix but other then the rbar2 nothing else is saving:

matrix ((@rows(gvkey))/38,9) eq1_m

matrix ((@rows(gvkey))/38,2) ys_adf

scalar rows=@rows(gvkey)

scalar i=1

scalar j=1

while i<rows

scalar gvk=gvkey(i)

smpl if gvkey=gvk

series y{gvk}=log(adjusted_oibdp)

series x{gvk}=log(capital_expenditures)

series s{gvk}=sale

series u{gvk}=cur

equation eq{gvk}.ls y{gvk} c y{gvk}(-1)

eq1_m(j,1) = gvk

eq1_m(j,2) = eq{gvk}.@rbar2

eq1_m(j,3) = eq(gvk}.@coefs(1)

eq1_m(j,4) = eq(gvk}.@tstats(1)

eq1_m(j,5) = eq(gvk}.@coefs(2)

eq1_m(j,6) = eq(gvk}.@tstats(2)

eq1_m(j,7) = eq(gvk}.@coefs(3)

eq1_m(j,8) = eq(gvk}.@tstats(3)

eq1_m(j,9) = eq(gvk}.@se

equation eq{gvk}x.ls y{gvk} c y{gvk}(-1) x{gvk}

equation eq{gvk}tr.ls y{gvk} c y{gvk}(-1) x{gvk} @trend

equation eq{gvk}cur.ls y{gvk} c s{gvk} u{gvk}

eq{gvk}cur.makeresid rescur

freeze(adftable) y{gvk}.uroot(adf)

ys_adf(j,1)= gvk

ys_adf(j,2)= @val(adftable(7,4))

d adftable

while i<rows and gvk=gvkey(i)

i=i+1

wend

j=j+1

wend

Mihailo.

### Re: How to run a time series model on panel data?

Posted: **Thu Feb 01, 2018 9:23 am**

by **EViews Gareth**

Couple of bugs in the program.

First, rather than using:

use

then reference !gvk rather than gvk.

Second lines like:

have a "(" rather than "{"