panel ols with unbalanced data

7 views (last 30 days)
Alberto
Alberto on 7 Sep 2016
Commented: Alberto on 29 Sep 2016
I'm able to run an ols panel regression with balanced data, that is for every cross section j I have the same number of observations t in the time dimension. My problem is that now cross section j=1 has a different number of observation in the time dimension than cross section j=2. How can I write a general code using mvregress in order resolve this problem?

Accepted Answer

Hang Qian
Hang Qian on 21 Sep 2016
Hi Alberto,
For an unbalanced panel data set, one may consider padding NaNs in the response variables for those cross-sections with fewer observations in the time dimension. For example, at j=1 there are 2 observations, at j=2 there is only one observation. By artificially creating a second equation with fake regressors but NaN in the response variable at j=2, an unbalance panel becomes a balanced one. MVREGRESS uses Expectation-Maximization (EM) to maximize the log likelihood function. The EM algorithm is friendly to missing values. I think RVREGRESS will work as usual in the presence of NaNs.
Regards,
Hang Qian
  3 Comments
Hang Qian
Hang Qian on 28 Sep 2016
Yes, you are right. MVREGRESS does not have any indicator variable for indexing the unbalanced panel data, so the workaround is to make the data artificially balanced. EM algorithm can use the conditional mean to make an educated guess (i.e., impute) on the missing values.
Alberto
Alberto on 29 Sep 2016
Following your advice I've balanced my data in the time series dimension with "NaN" for the dependent variable Y (the Xs have no missing data). But what I get is a message error inside the function MVREGRESS that the covariance matrix "is not positive-definite". Do you think it is due to the fact that the ratio NaN to real data is 75% to 25% in the Y matrix?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!