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))

相关文章
|
5月前
|
存储 机器学习/深度学习 算法
【算法训练-数组 三】【数组矩阵】螺旋矩阵、旋转图像、搜索二维矩阵
【算法训练-数组 三】【数组矩阵】螺旋矩阵、旋转图像、搜索二维矩阵
37 0
|
25天前
|
索引
转置矩阵-暴力解法&一行代码
转置矩阵-暴力解法&一行代码
12 0
|
1月前
|
机器学习/深度学习 存储 人工智能
利用前缀和计算二维矩阵子矩阵的和
利用前缀和计算二维矩阵子矩阵的和
17 0
|
4月前
|
算法
算法题—顺时针打印矩阵
算法题—顺时针打印矩阵
24 0
|
10月前
|
机器学习/深度学习 C语言 C++
C语言计算N*N矩阵的转置、平均值、对角线元素之和、周边元素之和
C语言计算N*N矩阵的转置、平均值、对角线元素之和、周边元素之和
155 0
|
12月前
判断上三角矩阵
判断上三角矩阵 (15 分)
95 0
|
前端开发 图形学
二维空间下的向量旋转
向量运算是计算机图形学的数学基础,而向量的旋转是向量的一种常见操作,本文将详细讲解向量在二维空间下的旋转原理。
666 0
二维空间下的向量旋转
|
人工智能 开发者
矩阵的几种变换 | 学习笔记
快速学习矩阵的几种变换
525 0
矩阵的几种变换 | 学习笔记
|
算法
LeetCode 73矩阵置零&74搜素二维矩阵&75颜色分类
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
102 0
LeetCode 73矩阵置零&74搜素二维矩阵&75颜色分类
|
算法 程序员 C语言