MCMCglmm
혼합 효과 모델을 실행하기 위해 R 의 패키지를 사용하는 성능 문제가 있습니다. 코드는 다음과 같습니다.
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 %를 넘지 않아서 이상합니다. . 현재 설정은 인텔 코어 i5 2.66GHz, 4GB RAM, 7200rpm HDD입니다. 추가 RAM을 희생하여 가능한 한 가장 빠른 CPU를 얻는 것이 합리적입니까? 또한 레벨 3 CPU 캐시 크기가 이와 같은 통계 컴퓨팅 문제에 미치는 영향에 대해 궁금했습니다.
업데이트 : 데 SO 메타에 물었다 내가 슈퍼 유저에 질문 게시물을 바꿔 것을 권고하고있다. 그렇게하려면 MCMCglmm의 "언더 후드"에 대한 자세한 정보를 제공해야합니다. 계산 시간의 대부분이 최적화에 소비된다고 생각하는 것이 옳습니까? 복잡한 함수의 최대 값을 찾는 것을 의미합니까? 행렬 역전 및 / 또는 다른 선형 대수 연산도 병목 현상을 일으킬 수있는 일반적인 연산입니까? 수퍼 유저 커뮤니티에 제공 할 수있는 다른 정보는 가장 감사 할 것입니다.
lmer()
대규모 데이터 세트에 모델을 맞추는 데 특히 오랜 시간이 걸리는 경우 시간이 오래 걸릴 수 있습니다. 귀하의 질문에 대한 답변은 병렬 컴퓨팅에있을 수 있지만 다른 사용자 (예 : @ DirkEddelbuettel)가 나보다 훨씬 도움이 될 것입니다. 또한 스택 오버플로에 대해 더 나은 답변을 얻을 수 있습니다.
glmer
(다른 게시물에서 알 수 있듯이) 사용했으며 약 20 초가 걸리지 만 문제는 신뢰 간격이나 표준 오류를 제공하지 않으며 메일 링리스트에서 읽은 내용에서 lme4
패키지에 따르면 랜덤 효과의 샘플링 분포가 매우 왜곡 될 수 있으므로 이러한 통계는보고되지 않습니다. 실제로 나는 MCMCglmm
지금까지 나의 경우에 그들이 정상에 접근하고 있음을 알았습니다 (이것이 많은 도움이되지는 않습니다-단지 말하고 있습니다). SO로 마이그레이션을 요청하면 더 좋을까요?