i具有6x1的向量和6X1000的矩阵。我想对每个列使用相同的向量进行线性回归。我需要这种算法来遍历我的矩阵,并从每个相关/回归中提取每个R ^ 2值。有人能帮忙吗?谢谢!
例如,您需要提供数据
set.seed(42)
x <- matrix(rnorm(6), 6, 1)
y <- matrix(rnorm(6*10), 6, 10) # Just 10 columns to demonstrate
第一个解决方案在线性回归中使用x作为自变量,将y的每一列用作因变量,然后提取R2值。第二种解决方案只计算平方相关系数,因为对于二元回归而言,它是相同的:
corrs <- sapply(1:10, function(i) summary(lm(y[, i]~x))$r.squared)
# [1] 0.039143014 0.003056088 0.897015721 0.282917356 0.019288198 0.001808288 0.055232746 0.276741234 0.008821625 0.073663713
sapply(1:10, function(i) cor(x, y[, i])^2)
# [1] 0.039143014 0.003056088 0.897015721 0.282917356 0.019288198 0.001808288 0.055232746 0.276741234 0.008821625 0.073663713
names(corrs) <- 1:10 # Label the columns
corrs[which(corrs > .25)]
# 3 4 8
# 0.8970157 0.2829174 0.2767412