关闭。这个问题需要details or clarity .它目前不接受答案。
想改善这个问题吗?通过 editing this post 添加详细信息并澄清问题.
4年前关闭。
Improve this question
你知道如何在 R 中将矩阵转换为所谓的双中心矩阵吗?这样变换矩阵的 sum(col) 和 sum(row) 都是零向量。谢谢。
最佳答案
使用以下算法对矩阵 M 进行双中心化:
| 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]) |
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)
.
https://stackoverflow.com/questions/43639063/