将复杂模型重复拟合到大数据集时,如何优化计算效率?
使用MCMCglmmR中的程序包运行混合效果模型时出现性能问题。代码如下: MC1<-MCMCglmm(bull~1,random=~school,data=dt,family="categorical" , prior=list(R=list(V=1,fix=1), G=list(G1=list(V=1, nu=0))) , slice=T, nitt=iter, ,burnin=burn, verbose=F) 数据中大约有20,000个观测值,它们聚集在大约200所学校中。在运行之前,我从数据框中删除了所有未使用的变量,并从内存中删除了所有其他对象。我的问题是,除非将迭代次数减少到无法接受的程度,否则运行时间将非常长。经过50,000次迭代,需要5个小时,而且我要运行许多不同的模型。所以我想知道是否有加速代码执行的方法,或者我可以使用其他软件包。我正在使用,MCMCglmm因为我想要随机效果的置信区间。 另一方面,我希望在今年晚些时候购买一台新PC,但运气好的话,我也许可以将其推广,所以我一直在想如何最好地在新硬件上花有限的钱-更多的RAM ,更快的CPU等。通过观察任务管理器,我不认为RAM是问题(它永远不会超过物理使用的50%),但是CPU使用率也不会超过50%,这让我感到奇怪。我当前的设置是Intel Core i5 2.66GHz,4GB RAM,7200rpm HDD。以尽可能多的RAM为代价,获取尽可能快的CPU是否合理?我还想知道3级CPU缓存大小对像这样的统计计算问题的影响吗? 更新:已经问的元SO我一直建议重新措辞上的超级用户的问题和岗位。为此,我需要提供有关MCMCglmm中“幕后工作”的详细信息。我是否认为大部分的计算时间都花在了优化上,这是对的吗?我的意思是找到一些复杂函数的最大值?矩阵求逆和/或其他线性代数运算是否也是可能引起瓶颈的常见运算?我将非常感激能够提供给超级用户社区的任何其他信息。