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?