R:陷在一个“简单”问题上:计算n * m矩阵中的平方总和

时间:2019-03-27 13:27:09

标签: r matrix statistics distance

给定一个具有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。这根本不可行。作为一个新手程序员,很遗憾我被困住了。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

有很多评估TSS的方法,它们当然会给您相同的结果。我会做类似的事情:

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

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

方法2:

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