How should I deal with missing data when trying to test the CAPM? Specifically, there are some stocks that are newly listed and/or delisted at any time. I don't want to exclude assets for which I don't have complete data because this would create a kind of survivor bias. I know that CRSP provides delisting returns that should, but how do I manage the missing data in practice? For example, in the unconstrained model, the procedure looks like this:

enter image description here

(More details about the procedure are given below.) Now, if I wanted to take a bunch of random stocks at some point in time and look at them over some time period, what should I do with the values ($Z_it$) for these stocks that aren't listed at time $t$. Should I use the de-listing returns where appropriate and then fill in zeros everywhere else? But this would do weird things to the beta of the stock. Should I try to constrain the beta (the factor loadings) of the stocks to be zero in all the places where the stock is unlisted? This would require me to change the model (requiring a model that somehow allows for time varying factor loadings). How do people usually handle this problem? Is there an easy way (even if it is slightly more incorrect)?

Some Detail about the Estimation Procedure

For concreteness, suppose I wanted to test the CAPM using the time series regression framework outlined in chapter 6 of Campbell, Lo, and MacKinley (The Econometrics of Financial Markets). Some of the assumptions are listed in this image: enter image description here

  • $\begingroup$ The problem is that the factors (right hand side Zkt) are sometimes not observed? Or is it that the returns (left hand side elements of Zt) can be observed? $\endgroup$
    – BKay
    Dec 11, 2014 at 14:54
  • $\begingroup$ The problem is $Z_t$. Some stocks get newly listed, some delisted, etc. If I only include stocks for which I have data for the full time period (for which they exist for the full period), then I introduce survivor bias. $\endgroup$
    – jmbejara
    Dec 11, 2014 at 16:28

2 Answers 2


Easiest fix: if you're worried about it you should value weight your results. This is suggest by, for instance, Kothari, Shanken and Sloan (1995). Firms that are delisted tend to have extremely small market cap, so value weighting gives them very little impact on summary statistics. Delisted returns should also be used, although I'm not sure how much impact they'll have. I've seen the delisted return stuck into the month after a stock ceases to be traded.

In finding $\beta$'s, I tend to see the regression used only on those dates for which the stock return is observed. The correction really comes in value weighting summary statistics afterwards. Whether all this is "correct" or just the practice I've seen is not something I'm sure about.

Edit: here's a different perspective.

  • $\begingroup$ Thanks for the excellent links. I'm looking forward to reading them more in depth. Just a question about the comment about using the delisted returns. Are you talking about doing this in the context of a Fama-Macbeth type regression approach? I'm not sure how that fits into the maximum-likelihood time-series approach describe above. I mean, it's not like it a big deal, I'm just curious if that's what you mean. $\endgroup$
    – jmbejara
    Dec 13, 2014 at 8:01
  • $\begingroup$ Not particularly. I think the same value-weighting procedure could be used for whatever procedure you want. For MLE it'll just slightly change the calculation of your likelihood. These look like GMM though? In any case value-weighting could still be done. $\endgroup$
    – jayk
    Dec 13, 2014 at 15:06

My suggestion to you, and this is a very general technique when you are unsure what method to use, is to let cross-validation tell you what method works best.

I imagine you have a couple of options:

  • Not include any row with missing observations
  • Assign some arbitrary weight (in your case those with compound with the assumed $\Omega$ matrix, and if you are using some non-linear regression to estimate $\hat{\Omega}$ then good luck)
  • Use mean-substitution or some other placeholder strategy

But the fundamental problem is that you don't know what factors made some data unavailable, that is you don't know $\text{Probability}(\text{Missing})$ and you suspect that isn't white noise.

The best way then is to let data drive your results. Run all these methods on 80% of the data, check the prediction error on the remaining 20% and shuffle these groups around, take the mean prediction error and select the method that provided the lowest prediction error.

  • $\begingroup$ I'm not sure cross-validation would help here. As I see it the issue is not getting the best fit by any empirical definition of best (what cross-validation is good for). Instead the issue for me is what one should fit to capture an economic concept (factor prices), which cross-validation will not help with. $\endgroup$
    – jayk
    Dec 10, 2014 at 5:07
  • $\begingroup$ Cross-validation isn't there to get the best fit, it is there to choose between models/functional families. Here the regression model is fixed but the model to fix missing data isn't, and I think cross-validation is a very valid way of deciding among them. $\endgroup$
    – CarrKnight
    Dec 10, 2014 at 15:08
  • $\begingroup$ But the criterion by which you judge models is their fit. Cross-validation is about predictive regressions. If you were trying to only predict stock prices, you would be right about this. But you're testing an economic model, not doing prediction. I would be willing to bet that a good testing fit would come from (say) basically excluding stocks with bankruptcies. But this wouldn't necessarily correspond to a good test of the economic model, as bankruptcies may be something we have to take into account when buying stocks. You need a criterion cross-validation does not present to judge that. $\endgroup$
    – jayk
    Dec 10, 2014 at 15:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.