[问题] 如何避免大量lm物件影响速度

楼主: ror (回血375)   2015-11-01 21:00:49
文章分类提示:
- 问题: 当你想要问问题时,请使用这个类别
[问题类型]:
效能咨询(我想让R 跑更快)
[软件熟悉度]:
使用者(已经有用R 做过不少作品)
[问题叙述]:
请简略描述你所要做的事情,或是这个程式的目的
各位前辈好
想请教一个问题
目前我手上有大概几百万(快到千万)组资料 一组资料是两笔内容
现在要对每一组资料跑lm()回归后 取出相关系数与P-value 等等资讯
但因为要跑的量实在是太大量了 导致速度很慢 已经使用parallel
目前写法是 loop-> lm() ->summary-> 取出value
想请问是否有方式避免重复宣告lm()物件 ...或是其他可以提升速度的方式
感谢 Orz
作者: Edster (Edster)   2015-11-01 21:07:00
写成function, 丢入 cmpfun. 写执行序列进入批次档 .bat这样可以拉些时间起来.最暴力就是多开几台电脑 用 cmd 呼叫 Rscript 跑一两年前我就开20多台i7跑模式...
楼主: ror (回血375)   2015-11-01 21:14:00
感谢Edster cmpfun的方式我会试试看 只是没多余电脑20多台电脑 真是幸福QQ
作者: Edster (Edster)   2015-11-01 21:19:00
还有 你可能要注意内存会不会吃太凶我的经验是, 这种大档跑起来会比分成很多小档还慢.我会执行个一段时间后 直接暴力用 for(1:10) gc()写成 Rscript 也有手动多工的效果, 就像是多开很多个R一样
楼主: ror (回血375)   2015-11-01 21:26:00
太感谢了 很有用的建议@@ 我继续实验看看!
作者: celestialgod (天)   2015-11-01 22:25:00
因为lm会把资料存下来,造成很多内存的浪费,建议用rcpp做,直接得出你要的资讯比较快我不确定lm可不可以设定不要存资料而且r回圈真的满慢的……
楼主: ror (回血375)   2015-11-01 22:36:00
感谢C大 我没研究过Rccp 会尝试看看! 感谢!
作者: obarisk (OSWALT)   2015-11-02 13:28:00
用lm.fit或是.lm.fit,lm算太多东西了
楼主: ror (回血375)   2015-11-05 03:46:00
感谢O大回的慢了 有人指点后发现可以不用lm() or lm Orz简单线性回归的话直接取cor就好了 快很多QQ统计基础没学好
作者: Edster (Edster)   2015-11-05 06:49:00
你没写最后要取哪些统计量, 我以为你还要系数的std, p统计课本都会教系数用最小平方法求取的公式,还有系数的std但是系数的 p值跟 t检定 课本就没写. 如果你不要的话,自己写公式也是可以.
楼主: ror (回血375)   2015-11-05 15:18:00
感谢E大 我测试了一下 cor比lm()快了八倍 如果自己写formula效能差不多 ... 目前先用cor()了 然后他人帮助下再改进其他部分程式 等有成果再来回报XD! 感谢一直帮我的各位

Links booklink

Contact Us: admin [ a t ] ucptt.com