R中计算形式的方差-协方差矩阵

Variance-Covariance matrix in computational form in R

我正在使用 R 中的一个小而简单的矩阵来显示使用 (cov) 函数与使用公式 (1/n-1) * (t(x) %*% as.matrix(x) - n %*% Ybar * (t(Ybar)[ 的方差-协方差矩阵的数学计算之间的比较=15=]

这是我正在使用的数据以供参考:

> dput(x)
structure(c(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 
2L, 3L, 4L, 5L, 6L), .Dim = c(6L, 3L))

当我 运行 x.cov <- cov(x) 它 returns 一个 3 x 3 矩阵,所有值 = 3.5

下面的代码是我使用计算公式获取方差-协方差矩阵的代码,但它返回一个错误,指出“在 t(x) %% as.matrix (x) - 6 %% x.meanvec %*% t(x.meanvec) :不一致的数组

one <- rep(1, 6)
x.meanvec <- (1/6) * t(one) %*% as.matrix(x)
matrix.t <- (1/5) * (t(x) %*% as.matrix(x) - 6 %*% x.meanvec %*% t(x.meanvec))

如何修改公式以避免出现此错误?

我不明白你的公式,也不相信它是正确的。

我会这样做:

(1/5) * (t(x - one %*% x.meanvec) %*% (x - one %*% x.meanvec))

或更有效:

1/5 * crossprod(x - one %*% x.meanvec)