私は次のようなパッケージでスパースqr
分解を行いました"Matrix"
R
a <- Matrix(runif(20), nrow = 5, sparse = T)
a[3:5,] <- 0 #now **a** is a 5X4 matrix
b <- qr.R(qr(a), complete = T) #but now **b** is a 7X4 matrix!
誰もが理由を知っていますか?a
密集していると、バグ(?)が表示されないことに注意してください。
あなたは警告を見なかったと思います。そうでなければ、あなたはそれについて言及したでしょう?
警告メッセージ: In qr.R(qr(a), complete = T) : qr.R(< sparse >) は、順列のために qr.R(< dense >) と異なる場合があります
これらの順列が何を意味するのかを尋ねているなら、それは別の話です...
help("sparseQR-class")
ページには、問題に関する詳細情報が含まれている場合があります。
ただし、行列 Q は一意に定義されていないため、qr.qy と qr.qty の結果は、対応する密な行列計算の結果と必ずしも一致しません。
多分それは同じqr.R
ですか?
最後に、同じヘルプ ページのさらに下に:
qr.R --- signature(qr = "sparseQR"): QR 分解の上三角行列 R を計算します。これは現在、古典的な qr.R() の結果との順列の不一致の可能性があるため警告を発することに注意してください。これらの警告は、options() を "Matrix.quiet.qr.R" または (より一般的な) "Matrix .quiet" を TRUE にします。