- 縦長の行列 A (n x p (n > p)) は、QR分解により
と分解できる
- ただし、Qは n x p 行列、R は p x p 行列で
- Qのp本の列ベクトルは、正規直行基底の一部(ノルムが1で相互に直交)
- Rのp本の座標は、そのペアワイズ距離がAのp本のペアワイズ距離と同じになっている、そんな上三角行列
- 結局QR分解では、Aのn次元空間のp個の点を、回すようにして、p次元空間座標に変換してくれる
- MDSのようなもの
- ここで、正規直交基底の一部である性質を持つQだが、そのような行列の集合を、Stiefel manifoldをなす行列集合と呼ぶ
- このStiefel manifoldはなかなか面白い性質を持っていて研究されている
n <- 5
p <- 3
A <- matrix(rnorm(n*p),ncol=p)
A
qrout <- qr(A)
Q <- qr.Q(qrout)
R <- qr.R(qrout)
Q
R
Q %*% R - A
t(R) %*% R
t(A) %*% A
Stiefel行列
t(Q) %*% Q
> n <- 5
> p <- 3
> A <- matrix(rnorm(n*p),ncol=p)
> A
[,1] [,2] [,3]
[1,] 0.8026314 0.1184986 1.6326421
[2,] 0.8468190 1.0688597 -1.0550278
[3,] -1.5408416 -2.3697417 0.3404154
[4,] 0.2941588 1.6919584 -0.7664325
[5,] -1.1044426 0.1767955 -1.5195393
>
> qrout <- qr(A)
> Q <- qr.Q(qrout)
> R <- qr.R(qrout)
> Q
[,1] [,2] [,3]
[1,] -0.3574554 0.3059402 0.550380998
[2,] -0.3771345 -0.1080937 -0.750340955
[3,] 0.6862205 0.3906493 -0.052634334
[4,] -0.1310049 -0.6404554 0.362311470
[5,] 0.4918683 -0.5761304 -0.005406922
> R
[,1] [,2] [,3]
[1,] -2.245403 -2.206322 -0.599116
[2,] 0.000000 -2.190503 2.112835
[3,] 0.000000 0.000000 1.402817
>
> Q %*% R - A
[,1] [,2] [,3]
[1,] -1.110223e-16 2.081668e-16 8.881784e-16
[2,] 0.000000e+00 2.220446e-16 -6.661338e-16
[3,] 0.000000e+00 4.440892e-16 5.551115e-17
[4,] 5.551115e-17 0.000000e+00 -4.440892e-16
[5,] 0.000000e+00 0.000000e+00 -8.881784e-16
>
>
> t(R) %*% R
[,1] [,2] [,3]
[1,] 5.041835 4.954082 1.345257
[2,] 4.954082 9.666158 -3.306327
[3,] 1.345257 -3.306327 6.790905
> t(A) %*% A
[,1] [,2] [,3]
[1,] 5.041835 4.954082 1.345257
[2,] 4.954082 9.666158 -3.306327
[3,] 1.345257 -3.306327 6.790905
>
>
>
>
> :Stiefel行列
> t(Q) %*% Q
[,1] [,2] [,3]
[1,] 1.000000e+00 -7.630337e-17 -9.825478e-19
[2,] -7.630337e-17 1.000000e+00 1.958094e-16
[3,] -7.921442e-18 1.958094e-16 1.000000e+00