R:陷入 "simple" 问题:计算 n*m 矩阵中的总平方和

R: Stuck on a "simple" problem: calculating total sum of squares in a n*m matrix

给定一个 n 行 m 列的数据矩阵,我想计算 R 中的总平方和。

为此,我尝试了一个循环遍历每一列的行并将结果保存在一个向量中。然后将它们添加到 "TSS" 向量中,其中每个值都是一列的 SS。这个向量的总和应该是TSS。

set.seed(2020)
m <- matrix(c(sample(1:100, 80)), nrow = 40, ncol = 2)

tss <- c()
for(j in 1:ncol(m)){
  tssVec <- c()
  for(i in 1:nrow(m)){
    b <- sum(((m[i,]) - mean(m[,j]))^2)
    tssVec <- c(tssVec, b)
  }
  tss <- c(tss, sum(tssVec))
}
sum(tss)

输出等于136705.6。这根本不可行。作为一个coder新手,很遗憾卡住了。

感谢任何帮助!

评估TSS的方法有很多种,当然它们给你的结果都是一样的。我会做类似的事情:

方法 1 暗示使用方差分析:

n <- as.data.frame(m)
mylm <- lm(n$V1 ~ n$V2)
SSTotal <-sum(anova(mylm)[,2])

方法二:

SSTotal <- var( m[,1] ) * (nrow(m)-1)