solveCrossprod求 X'X的逆, ( X' == t(X), 即X的行列变换矩阵 )

很多时候,我们需要计算形如X’X的逆(即X' %*% X)。这很容易实现,例如:

> x=matrix(rnorm(9),ncol=3,nrow=3)
> x
           [,1]        [,2]        [,3]
[1,] -0.1806586 -0.76340512 0.002652331
[2,] -1.8018584  0.04467943 1.416332187
[3,]  1.2785359 -1.31653513 0.180653002

> solve(crossprod(x))
          [,1]      [,2]     [,3]
[1,] 1.2181837 0.9664576 1.470940
[2,] 0.9664576 1.2010110 1.204599
[3,] 1.4709402 1.2045986 2.269921

R中的strucchange包中的函数solveCrossprod()也可完成:
> install.packages("strucchange")
> library("strucchange")
参数
> args(solveCrossprod)
function (X, method = c("qr", "chol", "solve")) 
NULL

> solveCrossprod(x,method=”qr”)
          [,1]      [,2]     [,3]
[1,] 1.2181837 0.9664576 1.470940
[2,] 0.9664576 1.2010110 1.204599
[3,] 1.4709402 1.2045986 2.269921

> solveCrossprod(x,method=”chol”)
          [,1]      [,2]     [,3]
[1,] 1.2181837 0.9664576 1.470940
[2,] 0.9664576 1.2010110 1.204599
[3,] 1.4709402 1.2045986 2.269921

> solveCrossprod(x,method=”solve”)
          [,1]      [,2]     [,3]
[1,] 1.2181837 0.9664576 1.470940
[2,] 0.9664576 1.2010110 1.204599
[3,] 1.4709402 1.2045986 2.269921

[参考]
1. > help("solveCrossprod")
solveCrossprod           package:strucchange           R Documentation

Inversion of X'X

Description:

     Computes the inverse of the cross-product of a matrix X.

Usage:

     solveCrossprod(X, method = c("qr", "chol", "solve"))
     
Arguments:

       X: a matrix, typically a regressor matrix.

  method: a string indicating whether the QR decomposition, the
          Cholesky decomposition or ‘solve’ should be used.

Details:

     Using the Cholesky decomposition of X'X (as computed by
     ‘crossprod(X)’) is computationally faster and preferred to
     ‘solve(crossprod(X))’. Using the QR decomposition of X is slower
     but should be more accurate.

Value:

     a matrix containing the inverse of ‘crossprod(X)’.

Examples:

     X <- cbind(1, rnorm(100))
     solveCrossprod(X)
     solve(crossprod(X))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值