3
您是否知道如何将矩阵转换为R中所谓的双中心矩阵?这样变换矩阵的总和(col)和总和(行)全部为零向量。谢谢。R中的双中心
您是否知道如何将矩阵转换为R中所谓的双中心矩阵?这样变换矩阵的总和(col)和总和(行)全部为零向量。谢谢。R中的双中心
双定心的矩阵M与下面的算法来完成:
1)生成相同的尺寸比包含在行和列方向手段原始矩阵的两个矩阵。让我们称这两个矩阵R和C:
| mean(M[1,1:3]) mean(M[1,1:3]) mean(M[1,1:3]) |
R = | mean(M[2,1:3]) mean(M[2,1:3]) mean(M[2,1:3]) |
| mean(M[3,1:3]) mean(M[3,1:3]) mean(M[3,1:3]) |
和
| mean(M[1:3,1]) mean(M[1:3,2]) mean(M[1:3,3]) |
C = | mean(M[1:3,1]) mean(M[1:3,2]) mean(M[1:3,3]) |
| mean(M[1:3,1]) mean(M[1:3,2]) mean(M[1:3,3]) |
2)他们对减去M和添加总均值:M - C - R + grand_mean(M)
。
这里是执行该代码:
# example data
M = matrix(runif(9),nrow=3,ncol=3)
# compute the row-wise and column-wise mean matrices
R = M*0 + rowMeans(M) # or `do.call(cbind, rep(list(rowMeans(tst)),3))`
C = t(M*0 + colMeans(M)) # or `do.call(rbind, rep(list(colMeans(tst)),3))`
# substract them and add the grand mean
M_double_centered = M - R - C + mean(M[])
您可以检查,这给通过计算rowMeans(M_double_centered)
和colMeans(M_double_centered)
正确的答案。
感谢Jealie的解释。 – Azizah
你有没有在别的地方做过这个事情的例子?任何链接的教程或东西? – Rodrigo
我想将矩阵A转换成双中心矩阵 | 1 4 7 | A = | 2 5 8 | | 3 6 9 | – Azizah
我期待更清楚的解释。 – Rodrigo