【发布时间】:2022-01-04 17:07:20
【问题描述】:
我制作了一个协变量矩阵。它运作良好。 问题:如图所示,如何使协变量 0 和该变量 1 的方差之间的方差?
set.seed(1)
M1<-matrix(rnorm(25,5,1),ncol=5)
M1
cor(M1)
SD_M1<-rnorm(5)
M1_Covariance<-(SD_M1%*%t(SD_M1))*cor(M1)
M1_Covariance
【问题讨论】:
我制作了一个协变量矩阵。它运作良好。 问题:如图所示,如何使协变量 0 和该变量 1 的方差之间的方差?
set.seed(1)
M1<-matrix(rnorm(25,5,1),ncol=5)
M1
cor(M1)
SD_M1<-rnorm(5)
M1_Covariance<-(SD_M1%*%t(SD_M1))*cor(M1)
M1_Covariance
【问题讨论】:
这是一个函数f,以协方差矩阵S 和整数索引向量k 作为参数。它将k索引的变量的方差设置为1,将涉及这些变量的协方差设置为0。
function(S, k) {
S[k, ] <- S[, k] <- 0
S[cbind(k, k)] <- 1
S
}
f(M1_Covariance, c(1:2, 5L))
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0.000000 0.0000000 0
[2,] 0 1 0.000000 0.0000000 0
[3,] 0 0 2.163113 -0.4791670 0
[4,] 0 0 -0.479167 0.2286275 0
[5,] 0 0 0.000000 0.0000000 1
S 实际上可以是任何方阵,因为该运算不依赖于 S 是对称的还是正定的。
【讨论】: