[問題] 如何避免大量lm物件影響速度

看板R_Language作者 (回血375)時間10年前 (2015/11/01 21:00), 編輯推噓5(5021)
留言26則, 4人參與, 最新討論串1/2 (看更多)
文章分類提示: - 問題: 當你想要問問題時,請使用這個類別 [問題類型]: 效能諮詢(我想讓R 跑更快) [軟體熟悉度]: 使用者(已經有用R 做過不少作品) [問題敘述]: 請簡略描述你所要做的事情,或是這個程式的目的 各位前輩好 想請教一個問題 目前我手上有大概幾百萬(快到千萬)組資料 一組資料是兩筆內容 現在要對每一組資料跑lm()回歸後 取出相關係數與P-value 等等資訊 但因為要跑的量實在是太大量了 導致速度很慢 已經使用parallel 目前寫法是 loop-> lm() ->summary-> 取出value 想請問是否有方式避免重複宣告lm()物件 ...或是其他可以提升速度的方式 感謝 Orz -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.55.90 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1446382852.A.422.html

11/01 21:07, , 1F
寫成function, 丟入 cmpfun. 寫執行序列進入批次檔 .bat
11/01 21:07, 1F

11/01 21:08, , 2F
這樣可以拉些時間起來.
11/01 21:08, 2F

11/01 21:09, , 3F
最暴力就是多開幾台電腦 用 cmd 呼叫 Rscript 跑
11/01 21:09, 3F

11/01 21:11, , 4F
一兩年前我就開20多台i7跑模式...
11/01 21:11, 4F

11/01 21:14, , 5F
感謝Edster cmpfun的方式我會試試看 只是沒多餘電腦
11/01 21:14, 5F

11/01 21:14, , 6F
20多台電腦 真是幸福QQ
11/01 21:14, 6F

11/01 21:19, , 7F
還有 你可能要注意記憶體會不會吃太兇
11/01 21:19, 7F

11/01 21:20, , 8F
我的經驗是, 這種大檔跑起來會比分成很多小檔還慢.
11/01 21:20, 8F

11/01 21:22, , 9F
我會執行個一段時間後 直接暴力用 for(1:10) gc()
11/01 21:22, 9F

11/01 21:26, , 10F
寫成 Rscript 也有手動多工的效果, 就像是多開很多個R一樣
11/01 21:26, 10F

11/01 21:26, , 11F
太感謝了 很有用的建議@@ 我繼續實驗看看!
11/01 21:26, 11F

11/01 22:25, , 12F
因為lm會把資料存下來,造成很多記憶體的浪費,建議
11/01 22:25, 12F

11/01 22:25, , 13F
用rcpp做,直接得出你要的資訊比較快
11/01 22:25, 13F

11/01 22:25, , 14F
我不確定lm可不可以設定不要存資料
11/01 22:25, 14F

11/01 22:27, , 15F
而且r回圈真的滿慢的……
11/01 22:27, 15F

11/01 22:36, , 16F
感謝C大 我沒研究過Rccp 會嘗試看看! 感謝!
11/01 22:36, 16F

11/02 13:28, , 17F
用lm.fit或是.lm.fit,lm算太多東西了
11/02 13:28, 17F

11/05 03:46, , 18F
感謝O大回的慢了 有人指點後發現可以不用lm() or lm Orz
11/05 03:46, 18F

11/05 03:46, , 19F
簡單線性回歸的話直接取cor就好了 快很多QQ統計基礎沒學好
11/05 03:46, 19F

11/05 06:49, , 20F
你沒寫最後要取哪些統計量, 我以為你還要係數的std, p
11/05 06:49, 20F

11/05 06:51, , 21F
統計課本都會教係數用最小平方法求取的公式,還有係數的std
11/05 06:51, 21F

11/05 06:52, , 22F
但是係數的 p值跟 t檢定 課本就沒寫. 如果你不要的話,
11/05 06:52, 22F

11/05 06:53, , 23F
自己寫公式也是可以.
11/05 06:53, 23F

11/05 15:18, , 24F
感謝E大 我測試了一下 cor比lm()快了八倍 如果自己寫formula
11/05 15:18, 24F

11/05 15:28, , 25F
效能差不多 ... 目前先用cor()了 然後他人幫助下再改進其他
11/05 15:28, 25F

11/05 15:29, , 26F
部分程式 等有成果再來回報XD! 感謝一直幫我的各位
11/05 15:29, 26F
文章代碼(AID): #1MDWq4GY (R_Language)
文章代碼(AID): #1MDWq4GY (R_Language)