Handling Collinearity in Portfolio Return Attribution
Summary
The document examines a return attribution regression that includes an intercept, country dummy variables, industry dummy variables, and factor exposures. Country and industry indicators can be linearly dependent, making the design matrix rank deficient and preventing unique estimates for every coefficient without additional conventions or restrictions.
The responses outline several remedies. Ridge regression, also called Tikhonov regularization, stabilizes estimates by adding a penalty, at the cost of bias. Principal component methods or partial least squares can replace correlated inputs with transformed variables, though those may be harder to interpret. A constrained regression can instead impose a zero-sum condition on each dummy-variable group, while leaving the factor exposures unconstrained when their collinearity is not the source of the problem. More data and robust regression are also mentioned. These are alternatives rather than a single universally suitable fix: the appropriate choice depends on whether interpretability, coefficient uniqueness, or predictive stability matters most. The document gives conceptual guidance, not a comparative empirical evaluation.
Key ideas
- Overlapping country and industry dummies can make attribution coefficients non-unique.
- Ridge regression reduces estimate variance but introduces bias.
- Principal component or partial least squares methods transform correlated predictors, often reducing direct interpretability.
- Zero-sum constraints on dummy groups can identify coefficients while preserving the group structure.
- Robust regression is a separate consideration when the data contain influential observations.
Tags
Full text
# Return Attribution: Possible remedies for multicollinearity # Return Attribution: Possible remedies for multicollinearity Let's say I have the following regression setup, which I am using for portfolio return attribution: $R = 1*\beta(1) + A*\beta(2) + B*\beta(3) + C*\beta(4) + \epsilon $ where A is dummy matrix of country , B is a dummy matrix of Industries, C is a matrix of factor exposures, 1 is a vector of ones As you can see in this setup, there is multicollinearity between A and B. The rank of (AB) < rank of (A) + rank of (B). In Matlab code: ``` rank([dummyvar(ceil(abs(rand(20,1))*5)'),dummyvar(ceil(abs(rand(20,1))*4)')]) ``` How can I go about computing all these betas without dropping one of the Columns from A or B matrix, as is typically done to address this issue. I know there is a trick to solve this, but I can't remember how it's done. ## Answer by vonjd (score 2) https://quant.stackexchange.com/a/24550 To address the issue of multicollinearity you can basically do the following (source, the author wrote his PhD thesis about multicollinearity diagnostics): - Getting more data - Dropping one variable - Combining the variables (e.g. with partial least squares regression or principal component regression) and - Performing ridge regression, which gives biased results but reduces the variance on the estimates. I don't know whether 1. is feasible but it is always a good idea (one of the learnings of data science is that getting more and better data is preferable to more sophisticated algorithms). Concerning 2. you said that you don't want that. 3. doesn't seem practical either since the new variable won't be interpretable any more. So 4. seems to be the best candidate. Mathematically this is also known as Tikhonov regularization. In matlab a good starting point seems to be this one: http://www.mathworks.com/help/stats/ridge-regression.html The command is `ridge()`, see also here: http://www.mathworks.com/help/stats/ridge.html ## Answer by NegativeJo (score 1) https://quant.stackexchange.com/a/24564 You can use a constrained regression. This will address exactly your problem. It is afaik the industry standard way of addressing this problem. You will want to set up a constraint for each of the group of dummy variables you have such that the sum of the coefficients for that group is 0. In this case for A and B. You can leave C without constraint (you should actually !) If the co-linearity is coming from C (factors). Then it's another issue and advices in other answers are then very useful. You need to do this as long as you have more than 2 groups, or one group and the intersect. It's pretty standard as a risk modelling technique. See for example how MSCI deals with it in their US model msci.com/documents/10199/ed6e42a3-c1fa-4430-89ba-efd5a5b52558 (middle of page 1) On a side note, you should also consider using a robust regression technique. If you are using Matlab (it seems from your snippet) you can read about constrained and robust regression in this excellent tutorial: http://www.mathworks.com/matlabcentral/fileexchange/8553-optimization-tips-and-tricks And use the following function: http://www.mathworks.com/matlabcentral/fileexchange/13835-lse Although Matlab also has some regression functions but are more limited IMO. ## Answer by Artem Korol (score 0) https://quant.stackexchange.com/a/24554 You can use Principal Component analysis which will divide the variable into non-correlated factors and the use the factor summary scores as an input in the model instead of variable scores.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.