1
我有一个矩阵(5,000 x 5,000),这是我的因变量随着时间的推移,我有几个自变量矩阵随着时间的推移,在相同的格式。这两个矩阵不时包含NA,所以这些必须通过na.exclude
来照顾。按行执行许多回归
我做了一些样本数据来说明我的问题:
y <- matrix(rnorm(25000),5000,5000)
x1 <- matrix(rnorm(25000),5000,5000)
x2 <- matrix(rnorm(25000),5000,5000)
x3 <- matrix(rnorm(25000),5000,5000)
x4 <- matrix(rnorm(25000),5000,5000)
x5 <- matrix(rnorm(25000),5000,5000)
x6 <- matrix(rnorm(25000),5000,5000)
lx <- list()
test <- lapply(1:nrow(y), function(i){lm(y[i,]~x1[i,]+x2[i,]+x3[i,]+x4[i,]+x5[i,]+x6[i,],na.action="na.exclude")})
但要注意,我没有任何的NA这里(我不知道我怎么可以品尝NA数据呢?)。当我用真实数据运行回归时,最多需要10分钟。有了这个数据,它可以更快,可能是因为没有NAs。 10分钟不是很长,但我想优化速度,因为我必须做很多次。
问:有什么办法可以更快地运行回归?最后,我特别需要所有回归的系数,而且R^2之后可能会有更多的信息。如果我想逐行执行回归,我不认为我可以避免循环。从我所读的内容来看,这里昂贵的部分似乎是lm对象本身的一代。感谢任何提示!
感谢要去测试的明天! – user3032689