我正在嘗試data.frame邏輯迴歸(11359行,137列)。 data.frame包含Y(一個因變量)和預測變量(136個獨立變量)。所有變量都是二進制的。無法在R中執行邏輯迴歸
我創建基於 「my_data」 data.frame公式是f = as.formula(paste('y ~', paste(colnames(my_data)[c(3:52, 54:133, 138:143)], collapse = '+')))
。 我申請GLM,logistf和pmlr如下
glm(f, family = binomial(link = "logit"), data = my_data)
logistf(f, my_data)
pmlr(f, data = my_data, method = "likelihood", joint = TRUE)
GLM功能估計一些參數,但給人一種Warning message: glm.fit: fitted probabilities numerically 0 or 1 occurred
。我發現這個消息是由於分離問題而產生的,所以我嘗試了logistf和pmlr函數。
隨着logistf,我並沒有獲得50小時後的結果沒有錯誤,所以我決定終止TE過程。 (CPU使用率23-27%,前10個小時使用RAM約1100MB,然後2-3mb)。
對於pmlr,我得到這個Error: cannot allocate vector of size 28.9 Gb
。
我試圖基於10出的137變量logistf和pmlr檢查,如果問題是預測數,我得到了相同的。 Logistf正在「永遠」工作,並且pmlr給出了不同大小的向量的相同類型的錯誤(如果我正確記得大約45 Gb,則比以前大!)。
我應該更新我的筆記本電腦的內存來執行此計算,找到一些其他功能(如果有對罰邏輯迴歸其它包),或者它是一個不同類型的問題例如很多變數?
視窗10的X64,處理器:i3-2.4GHz,拉姆:8.00Gb,R版本:64 3.4.0,Rstudio:1.0.143。
還有就是在R A載體,它是2^31的最大尺寸的限制 - 1.也許你的數據超過此限制。無論您的機器是什麼,這個大小都是R中矢量的極限。如果您的問題與此相關聯,唯一的方法是使用其他算法來解決問題,包括分解數據並容許模型的準確性。 –
嘗試用'speedglm':https://cran.r-project.org/web/packages/speedglm/speedglm.pdf –
你打算如何處理所有的預測因素:作爲一個alt可能通過套索迴歸並看看預測指標會出現什麼變化?見'glmnet' – user20650