查找使平方和残差最小的自变量

问题描述 投票:0回答:1

从使用该循环获得的ANOVA结果中,我可以看到哪个变量使残差平方和最小化,但是我想编写另一个循环,该循环指示哪个自变量使该值最小化。我需要将列表中每个参数的平方剩余索引的平方和分配给一个变量,但是访问索引时遇到问题。我该怎么办?

y=as.matrix(c(13,54,23,12,25,46,52,31,43,50,46,67,78,91,33))
x1=as.matrix(c(65,23,23,12,43,65,87,23,54,12,52,34,57,34,32))
x2=as.matrix(c(55,91,23,31,41,62,84,51,38,25,36,56,77,61,34))
x3=as.matrix(c(4,8,1,3,9,44,12,35,77,11,19,18,14,10,12))
x4=as.matrix(c(6,8,11,99,33,45,67,32,46,58,29,17,12,95,48))
x5=as.matrix(c(33,22,61,48,34,78,43,16,41,69,21,22,56,78,27))
data=cbind(y,x1,x2,x3,x4,x5)
colnames(data)=c("y","x1","x2","x3","x4","x5")
output=list(NA)
for (i in 2:ncol(data)) {
output[[i]] <- aov(lm(data[,1]~data[,i]))
}

enter image description here

r regression anova
1个回答
0
投票

偏差函数给出了lm的残差平方和,因此我们可以执行lm的操作,获取每个lm的偏差,然后找到最小值:

devfun <- function(x) deviance(lm(data[, 1] ~ x))
devs <- sapply(as.data.frame(data)[-1], devfun)
names(which.min(devs))
## [1] "x2"
© www.soinside.com 2019 - 2024. All rights reserved.