Unrotated factor loadings
This image is interactive and can be spun with a mouse
You must enable Javascript to view this page properly.
Unrotated factors

Factor loadings after rotation
You must enable Javascript to view this page properly.
Factors after rotation

Factor loadings after rotation, reduced set
This image is interactive and can be spun with a mouse
You must enable Javascript to view this page properly.
Rotation matrix
| factor1 |
factor2 |
factor3 |
| 0.954 |
0.095 |
-0.285 |
| -0.077 |
0.994 |
0.073 |
| 0.290 |
-0.048 |
0.956 |
Rotation matrix self-inverse property verification : R’R = I
| factor1 |
factor2 |
factor3 |
| 1 |
0 |
0 |
| 0 |
1 |
0 |
| 0 |
0 |
1 |
Properties under rotation
Properties preserved
- eigenvectors (‘factor portfolio weights’) are orthogonal
- factor covariance is the identity
Properties NOT preserved
- variance of factor 1 is maximised
- for i in 2:k factor i+1 has maximal variance subject to factors 1:i
Why rotate?
- the default rotation is arbitrary and rotate of their own accord as the window rolls - this is undesirable
- factors 2,3 are already very close to pure cyclical - a small rotation makes them cyclical
- ‘pure cyclical’ has a special meaning which is ‘zero average risk premium’ which has meaning in finance
Why not rotate?
- I am not sure why rotation seems to alarm people?
What factors are these?
- 15-year monthly rolling 12-month uncentred covariance
- uncentred variance is unity on a one-year time-horizon
- Pat Burns package BurStFin::factor.model.stat