相关疑难解决方法(0)

从 QR 分解中获取帽子矩阵以进行加权最小二乘回归

我正在尝试扩展lwr()包的功能McSptial,它适合将加权回归作为非参数估计。在函数的核心中lwr(),它使用以下方法反转矩阵solve(),它使用QR 分解而不是 QR 分解来我想更改它,但无法弄清楚如何从 QR 分解中获取帽子矩阵(或其他导数)。

有数据:

set.seed(0); xmat <- matrix(rnorm(500), nrow=50)    ## model matrix
y <- rowSums(rep(2:11,each=50)*xmat)    ## arbitrary values to let `lm.wfit` work
w <- runif(50, 1, 2)    ## weights
Run Code Online (Sandbox Code Playgroud)

lwr()功能如下:

xmat2 <- w * xmat
xx <- solve(crossprod(xmat, xmat2))
xmat1 <- tcrossprod(xx, xmat2)
vmat <- tcrossprod(xmat1)
Run Code Online (Sandbox Code Playgroud)

我需要的值,例如:

sum((xmat[1,] %*% xmat1)^2)
sqrt(diag(vmat))
Run Code Online (Sandbox Code Playgroud)

目前我使用reg <- lm.wfit(x=xmat, y=y, w=w)但无法设法恢复在我看来是帽子矩阵(xmat1)的东西。

regression r linear-regression lm qr-decomposition

5
推荐指数
1
解决办法
3070
查看次数

如何有效地计算诊断(X%*%求解(A)%*%t(X))而不采用矩阵逆?

我需要以下对角线:

diag(X %*% solve(A) %*% t(X))
Run Code Online (Sandbox Code Playgroud)

其中A是满秩矩阵,X是矩形矩阵.这两个AX稀疏.

我知道发现矩阵的逆是坏的,除非你真的需要它.但是,我无法看到如何重写公式,以便用两个参数solve(A)替换solve,这样线性系统就可以在没有显式反转的情况下得到解决.那可能吗?

algorithm r matrix matrix-inverse

5
推荐指数
1
解决办法
664
查看次数