panel ols with unbalanced data

6 次查看(过去 30 天)
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?

采纳的回答

Hang Qian
Hang Qian 2016-9-21
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 个评论
Hang Qian
Hang Qian 2016-9-28
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 2016-9-29
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?

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by