You had two variables in your response matrix y
. So it has rank=2 and can be expressed by any two explanatory variables. You had five explanatory variables, or three extra. You would need 5-dim space to draw thethem all perpendicular to each other, but you only have 2 dims. Anyway, the arrows are in two bunches, and these bunches are perpendicular to each other. Moreover, if you pick any two X-variables, they will look uncorrelated to each other (at 90 degrees). Try several times
plot(rda(y, X[, sample(5,2)]), scaling=2)
However, if you pick three variables, one of them cannot be perpendicular to two others, as there is no third dimension to go. So it must be in the same bunch with one of those two. Again, try several times
plot(rda(y, X[, sample(5,3)]), scaling=2)
The same applies to all 5 of your X
.
You need more dimensions. That is, more columns in y
. Naturally, you still see only 2-dim projections of those arrows in 5-dims, but probably more or less evenly spread with angles as close to 90 degrees as you can have for five arrows in 2 dim. Looking at 5-dims is hard, but there they are like you assume: perpendicular to each other.