# Panel Data Regression

111 views (last 30 days)
Alessandra on 27 Jul 2011
Commented: Hamed Davari on 26 Feb 2019
I have to run a regression with a panel data. I have a sample of 94 elements and a time horizon of 5 years,a dependent variable (94x5) and 6 independent variables (94x5). How can I run an ols regression?

Shashank Prasanna on 24 Jun 2014
Various panel regression models are covered in the above webinar. While fixed effects can be estimated using ols (fitlm function) random effects can be estimated using mle using the fitlme function
Hamed Davari on 26 Feb 2019
This does not directly help, my friend. When someone asks something specific, she wants to get the specific answer, not a whole bunch of dispersed stuff in a video.

the cyclist on 27 Jul 2011
You can use the following approach:
• Purchase MATLAB
• Purchase Econometrics Toolbox
• Use ordinary least squares functionality from Econometrics Toolbox. [I think the function may be called ols(), but I'm not sure.]
Of course, there are other approaches, but this one is pretty good.
Pedram Davoudi on 25 Aug 2013
it's totally wrong

Alessandra on 27 Jul 2011
I already have matlab and the econometrix toolbox but with ols regression I can not run a regression with a panel data, can I? with the ols regression I can run the regression year by year not considering all the years all together
the cyclist on 28 Jul 2011
Sorry, since you mentioned ols(), I assumed that would work. I don't have the econ toolbox, so I can't explore easily. Try typing "lookfor panel -all" to search the help files (which will also search the toolbox functions).

Muhammad Anees on 12 Jun 2012
Hello: Late but a new member of Mathworks:
The following codes will work for you.
%%Classical estimation of the fixed effects panel data model
function[coeff,COVb]=panFE(Y,X,T)
% Y and X stacked by cross-section; T is the time dimension
% Estimator for panel data with fixed effects (balanced panel)
% coeff contains the estimator of the slope (slope) and the fixed effects (fe)
% COVb contains the estimated covariance matrix of the slope estimator
[NT,m] = size(Y);
[S,K]=size(X);
N=NT/T;
%within estimator
%build the matrix D
D=zeros(NT,N);
c=1;
for i=1:N,
D(c:T*i,i)=ones(T,1);
c=T*i+1;
end;
M=eye(NT)-D*inv(D'*D)*D';
b=inv(X'*M*X)*X'*M*Y;
a=inv(D'*D)*D'*(Y-X*b);
coeff.slope=b;
coeff.fe=a;
%compute the covariance matrix for the estimated coefficients
Xm=M*X;
Ym=M*Y;
res=Ym-Xm*b;
varres=(1/(NT-N-K))*res'*res;
COVb=varres*inv(X'*M*X);
##### 2 CommentsShowHide 1 older comment
Tinashe Bvirindi on 23 May 2014
a panel is a collection of observations across entities and across time. it has both cross sectional and time series dimensions. the reason why the backslash operator is used is that it improves the efficiency of the code and reduces the degree of error where you require a repetitive estimation of the inverse... I hope this helps