Heston and Rouwenhorst (1994) devised an empirical estimation strategy to decompose stock returns into three components: a pure industry effect, a pure country effect, and a world-factor return. Essentially, they perform monthly cross-sectional weighted least squares regressions on individual stock returns to determine "pure" country and sector effects. To estimate "pure" effects, they add constraints to the regression so that the country and sector factors have a weighted mean of zero for each period. Note the intercept in this equation would be interpreted as the global world return.

The sector constraint would be interpreted as the product of each sector's market weight and its sector factor coefficient summed over each sector. Same for country.

As an example, I've built country and sector factors and set up the following regression for one time period but don't know how to add the constraints...

lm(Return ~ Country + Sector, data = data, weights = MktCapUsd)

Are there packages available to easily add in these types of constraints?

  • $\begingroup$ Please don't cross post. $\endgroup$ May 31, 2013 at 18:46
  • $\begingroup$ Sorry, first time user. Didn't know how to remove original question from stack exchange. Was recommended that this question would be better fit for this forum. $\endgroup$ Jun 1, 2013 at 11:29

1 Answer 1


Found your post while googling Heston regression. While I am not familiar with R, the problem seems to be a quadratic programming with linear equality constraints.

Minimize: $|y-\beta x|^2$

S.t. $\sum \beta_i = 0$

In python, cvxpy can do this. I am sure there are equivalent packages in R.

Also, this problem have analytic solutions, can be solved by Lagrangian Multiplier method, which can be found in any undergrad calculus textbook.


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.