當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


R QR.Auxiliaries 從 QR 對象重建 Q、R 或 X 矩陣

R語言 QR.Auxiliaries 位於 base 包(package)。

說明

返回構造對象的原始矩陣或分解的分量。

用法

qr.X(qr, complete = FALSE, ncol =)
qr.Q(qr, complete = FALSE, Dvec =)
qr.R(qr, complete = FALSE)

參數

qr

表示 QR 分解的對象。這通常來自之前對 qrlsfit 的調用。

complete

長度為 1 的邏輯表達式。指示是否要對 矩陣進行任意正交完成,或者是否通過綁定上方形三角形下方的 zero-value 行來完成 矩陣。

ncol

1:nrow(qr$qr) 範圍內的整數。重建的 中的列數。當 completeFALSE 時,默認值是構造 qr 對象的原始 的前 min(ncol(X), nrow(X)) 列。當completeTRUE 時,默認為方陣,其中前ncol(X) 列中包含原始 ,其餘列中包含任意正交完成(複雜情況下的酉完成)。

Dvec

對角線值的向量(不是矩陣)。返回的 的每一列將乘以相應的對角線值。默認為所有1

qr.X 返回 ,即構造 qr 對象的原始矩陣,前提是 ncol(X) <= nrow(X) 。如果 completeTRUE 或參數 ncol 大於 ncol(X) ,則返返回自 X 的任意正交(單一)完成的附加列。

qr.Q 返回 Q 的部分或全部,即由 qr 表示的 order-nrow(X) 正交(酉)變換。如果 completeTRUE ,則 Q 具有 nrow(X) 列。如果 completeFALSE ,則 Q 具有 ncol(X) 列。當指定 Dvec 時,Q 的每一列都會乘以 Dvec 中的相應值。

請注意, qr.Q(qr, *)qr.qy(qr, y) 的特例(帶有 “diagonal” y ),而 qr.X(qr, *) 本質上是 qr.qy(qr, R) (除了旋轉和 dimnames 設置)。

qr.R 返回 R。這可以進行旋轉,例如,如果 a <- qr(x)x[, a$pivot] = QR。 R 的行數是 nrow(X)ncol(X) (並且可能取決於 completeTRUE 還是 FALSE )。

例子

p <- ncol(x <- LifeCycleSavings[, -1]) # not the 'sr'
qrstr <- qr(x)   # dim(x) == c(n,p)
qrstr $ rank # = 4 = p
Q <- qr.Q(qrstr) # dim(Q) == dim(x)
R <- qr.R(qrstr) # dim(R) == ncol(x)
X <- qr.X(qrstr) # X == x
range(X - as.matrix(x))  # ~ < 6e-12
## X == Q %*% R if there has been no pivoting, as here:
all.equal(unname(X),
          unname(Q %*% R))

# example of pivoting
x <- cbind(int = 1,
           b1 = rep(1:0, each = 3), b2 = rep(0:1, each = 3),
           c1 = rep(c(1,0,0), 2), c2 = rep(c(0,1,0), 2), c3 = rep(c(0,0,1),2))
x # is singular, columns "b2" and "c3" are "extra"
a <- qr(x)
zapsmall(qr.R(a)) # columns are int b1 c1 c2 b2 c3
a$pivot
pivI <- sort.list(a$pivot) # the inverse permutation
all.equal (x,            qr.Q(a) %*% qr.R(a)) # no, no
stopifnot(
 all.equal(x[, a$pivot], qr.Q(a) %*% qr.R(a)),          # TRUE
 all.equal(x           , qr.Q(a) %*% qr.R(a)[, pivI]))  # TRUE too!

也可以看看

qrqr.qy

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Reconstruct the Q, R, or X Matrices from a QR Object。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。