I am trying to apply BMA to estimate the beta of a certain stock by combining different models. One, simple model to estimate beta is this

$$\beta_{i,T} = \frac{{\rm cov}(r_{i,t},r_{M,t})}{{\rm var}(r_{M,t})}$$


  • $r_{i,t}$: return of the stock $i$ at day $t$
  • $r_{i,M}$: return of an market index $M$ at day $t$

I obtained data for the last 13 years for both variables:

Stock return vs Market return

Now, to estimate the beta factor for the next year $T$(251 days), I am using the above formula and use the past 251 days for the market return $r_M,t$ and the stock return $r_i,t$. This is to obtain a forecast for the beta which will be observed in 251 days. If I calculate them in a rolling windows approach (1 day step forward) I get this:

Forecast vs Realized (+ error)

It is not very surprising that the forecast looks just as a 251-day forward-shift because the Model is a very naive model which assumend that the 1-year forward beta will be as the actual observed.

Now I want to compute the Posterior Model Probabilites (PMP):

$$p(M_j|y_{1:T}) = \frac{\big(\int{p(y_{1:T}|\theta,M_j)p(\theta|M_j)d\theta}\big)p(M_j)}{\sum_{l=1}^2\big(\int{p(y_{1:T}|\theta,M_l)p(\theta|M_l)d\theta} \big) p(M_l)}$$

Assuming equal model priors it more or less reduces to computing:


And here I am confused about how to do it. My data $y_{1:T}$ seem to be the realized data? What exactly are my $\theta$? $r_{i,t}$ and $r_{i,M}$? If I want to use Bayesian Information Criterion (BIC) here, how to compute the maximimum likelihood?

  • $\begingroup$ One possibility could be to sample $N$ vectors from the prior $p(\theta|M_j)$ and run simple monte-carlo integration like $\int{p(y_{1:T}|\theta,M_j)p(\theta|M_j)d\theta} \sim \frac{1}{N}\sum_{n=1}^N p(y_{1:T}|\theta,M)$. First question, how to sample from $p(\theta|M_j)$ in this example? An secondly, how to compute $p(y_{1:T}|\theta,M)$ for the sampled $\theta$ ? $\endgroup$ – user3165675 Nov 6 '16 at 19:07
  • $\begingroup$ Well. To sample from $p(\theta|M_j)$ I can use this de.mathworks.com/matlabcentral/fileexchange/41689-pdfsampler and sample by the custom probality function of ${\rm cov}(r_{i,t},r_{M,t})$ and ${\rm var}(r_{M,t})$, my $\theta$'s. But how to compute $p(y_{1:T}|\theta,M)$ for each sampled $\theta$ ? $\endgroup$ – user3165675 Nov 6 '16 at 20:56

I actually think that the approach to integrate over $\theta$ might be wrong here, because at least this model assuming a fixed $\theta$. Therefore, from my perspective it seems that the integration problem doesnt play a role here... But then, still, how to compute $p(y_{1:T}|M_j)$ ?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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