我正在處理 ap >>> n 案例,其中有 300 多個變數,只有 200 個觀察值。我想減少變數的數量,因為用 300 個變數擬合任何型別的模型都是一場噩夢。我閱讀了減少它們的方法,我發現最好的方法是跳躍的子集函式,但我必須指定真的.big = T,因為它確實很大。但是,我讓我的電腦運行了一個多小時,但它仍然沒有完成。還有其他功能可能會更好嗎?
uj5u.com熱心網友回復:
對于 300 個變數,有 2^300 = 2e90(即 2 * 10^90)個可能的子模型。這在你能想象到的任何計算機上都無法進行詳盡的評估。我建議通過glmnet包進行 LASSO 回歸。您必須制作自己的模型矩陣,即如果您的回應變數在您需要的資料框的第 1 列中
library(glmnet)
y <- dd[,1]
X <- as.matrix(dd[,-1])
假設所有連續預測變數;否則你需要X <- model.matrix(~ ., data = dd[,-1]). LASSO 回歸有幾個額外的步驟(選擇正則化引數),請參閱vignette("glmnet", package = "glmnet")...
或者,您可以使用該glmulti程式包,它可以使用遺傳演算法來搜索可能模型的空間(不會嘗試一切,但可以嘗試任意大量的候選者,直到擬合優度似乎趨于平穩)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/449413.html
標籤:r
