给定一个具有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。这根本不可行。作为一个新手程序员,很遗憾我被困住了。
感谢您的帮助!
答案 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)