不懂矩阵代数(Matrix algebra)到底能不能做统计? 附R代码!

学术   科学   2024-06-28 12:56   浙江  
许多高阶的统计模型往往都需要理解和掌握矩阵代数,这篇文章介绍几个用于运算矩阵的R代码,也许对有些感兴趣的读者会有帮助。 

首先,用于后续的运算和演示,创建一个简单的矩阵,命名为A,代码如下: 

A <- matrix(c(5, 10), ncol = 1)
A

上面的matrix()函数创建了一个2*1的矩阵A,如上图所示。

下一步,创建一个对角矩阵(Diagonal matrix),代码如下:

B <- diag(c(5, 10))
B

B为一个对角矩阵,即数值分布在对角线上,且其他的格子为0。

下一步,创建一个单位矩阵(Identity matrix),代码如下:

I <- diag(c(1, 1, 1))
I

I为一个单位矩阵,对角线上的值为1,其它格子为0。

可以将A矩阵进行转置,代码如下:

t(A)

通过对比原始的A以及转置后的A,可以了解到t()函数将A的行和列进行了对调。

那如何进行矩阵的相加呢?代码如下:

A + A + A

同理,也可以进行相减: 

A - A

如何将A与一个标量 (或一个数值)进行相乘?代码如下:

A * 10

那如何计算两个矩阵之间的乘积?代码如下:

B %*% A

从上面的代码可知,矩阵之间的乘积使用的运算符为:%*%,而不是* 。

下一步,计算矩阵B的行列式(注意,矩阵需要有相等的行列数),代码如下:

det(B)

最后,如何计算矩阵的逆(注意,矩阵需要有相等的行列数?代码如下:

solve(B)

好啦,今天的内容就到这里。如果有帮助,记得分享给需要的人

公众号的线上课程
1. 《R语言和统计新手课程》
2. 《回归:从入门到进阶》
3. 《线性混合模型和纵向数据分析》
【通过公众号菜单栏--线上课程】

统计咨询
《服务介绍和经典合作案例》

公众号核心成员的成果发表
《SCI医学1区影响因子9分论文》

公众号核心成员担任SCI杂志Associate Editor!
《JAD杂志Associate editor》
《Frontiers in Neuroscience, Frontiers in Neurology and Frontiers in Psychiatry杂志的神经退行性病变板块》

加入我们
成为我们的课程推广大使,赢取高额回报!
【通过公众号菜单栏--联系我们--招推广员】

▌本文由R语言和统计首发
▌课程相关咨询可添加R师妹微信: kefu_rstats
▌编辑:June
▌邮箱:contact@rstats.cn
▌网站:www.rstats.cn
我们致力于让R语言和统计变得简单!


R语言和统计
我们定期更新与R有关的内容,比如R编程基础,作图,实用R包的解读,统计学基础知识,前沿的统计方法,机器学习等等。
 最新文章