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