【发布时间】:2019-02-16 09:16:03
【问题描述】:
我想用随机矩阵重新创建以下计算:
我从以下开始,结果如下:
kmin1 <- cbind(1:10,1:10,6:15,1:10,1:10,6:15,1:10,1:10,6:15)
C <- cbind(1, kmin1) # Column of 1s
diag(C) <- 1
Ccrosprod <-crossprod(C) # C'C
Ctranspose <- t(C) # C'
CCtransposeinv <- solve(Ccrosprod) # (C'C)^-1
W <- Ctranspose %*% CCtransposeinv # W=(C'C)^-1*C'
然而,我的假设是 C 应该能够成为 m x n 矩阵,因为没有充分的理由假设因子等于观察值。
编辑:根据 Hong Ooi 的评论,我将 kmin1 <- matrix(rexp(200, rate=.1), ncol=20) 更改为 kmin1 <- matrix(rexp(200, rate=.1), nrow=20)
我检查了wikipedia 并了解到m x n 可能有左或右反转。为了将其付诸实践,我尝试了以下方法:
kmin1 <- matrix(rexp(200, rate=.1), nrow=20)
C <- cbind(1, kmin1) # Column of 1s
Ccrosprod <-crossprod(C) # C'C
Ctranspose <- t(C) # C'
CCtransposeinv <- solve(Ccrosprod) # (C'C)^-1
W <- Ctranspose %*% CCtransposeinv # W=(C'C)^-1*C'
编辑:根据下面的问题,一切正常。
如果我确定这与语法没有任何关系,我会将其发布在 stackexchange 上,但由于我对矩阵没有经验,所以我不确定。
【问题讨论】:
-
要求n > m是普通最小二乘回归的基本假设之一/
-
感谢您的评论。我不认为这是矩阵代数的问题。我已经编辑了我的问题。错误现在已向下移动一个命令:
Error in Ctranspose %*% CCtransposeinv : non-conformable arguments。有什么想法吗? -
应该是
W <- CCtransposeinv %*% Ctranspose。 -
谢谢,我意识到,应该对此发表评论!
标签: r matrix inverse cross-product