2015-01-08 3 views
0

msm 패키지를 사용하여 8 개 상태의 다중 상태 마킹 체인을 모델링하려고했습니다. 내 데이터 세트에는 전체적으로 약 11,000 개의 주제가 포함되어 있으며, 전체적으로 100,000 건이 약간 넘습니다.R msm 패키지 동결

나는과 같이, 데이터의 머리를 복용, 데이터의 여러 하위 집합에 MSM 기능을 실행하려고 :

mm2myTrajectoryMSM<-msm(role ~ year, subject=authId, data=head(mm2myMarkovRoles[,1:3,with=FALSE],7000), qmatrix=trajectory.qmatrix,death=1,control=list(trace=1,REPORT=1)) 

지금까지 내가 과거 ~ 7000 선을 얻을 수 없었다. 보고서 출력을 살펴보면 iter 값이 음수 값을 출력 할 때 함수가 멈추는 것으로 나타났습니다. 예를 들어, 여기에 데이터
initial value 19017.328402 
iter 2 value 17808.111677 
iter 3 value 17707.483305 
iter 4 value -346782.085429 (freeze) 

의 첫 번째 10K 행이 실행되지만 첫 번째 20K 행이 작동 50,000 행

initial value 92846.642840 
iter 2 value 88466.007605 
iter 3 value 88310.215979 
iter 4 value 88276.433502 
iter 5 value 88247.381022 
iter 6 value -983685.709474 

initial value 38101.266287 
iter 2 value 35871.849676 
iter 3 value 35796.410415 
iter 4 value -721867.559664 
iter 4 value -721867.559664 
final value -721867.559664 
converged 

하지만 그러나 그것은 60010,80007 (전과목의 전체 기록을 캡쳐하고 있습니다)에서 작동하며, 그 후에는 시스템이 정지되거나 분석이 매우 오랜 시간이 걸리는 지 여부를 알 수 없습니다. 작업에 할당 된 1CPU는 최대 값이지만 RAM 리소스 한계 (서버의 96GB 중 1 % 인 <)가 거의 없습니다.

두 가지 질문이 있습니다. - 데이터가 특정 하위 집합에 걸려있는 이유는 무엇입니까? 2)이 함수의 런타임을 어떻게 예측할 수 있습니까? 지난 번에 내가 뛰게하고, 2 일 이상 갔다. 이상하게도, 많은 실행에 대한 계산 시간은 선형 적으로 조정 된 것처럼 보였지만 일단 임계 값을 초과하면 확장됩니다 ...?

+0

흥미롭게도 Amazon EC2 서버에서 이와 동일한 프로세스를 실행했으며 전체 데이터 세트에서 1 분 이내에 응답을 받았습니다. 왜 이런 일이 일어나고 있는지 잘 모르겠습니다. –

답변

1

msm 1.5를 실행하고 있습니까?

changelog (http://cran.r-project.org/web/packages/msm/ChangeLog)에는 Windows의 무한 루프를 초래하는 버그가 수정되었다고 언급되어 있습니다.

시계열에 몇 개의 짧은 점프가있는 경우 로그 가능성이 언더 플로가 발생할 수 있습니다. msm 호출에서 fixedpars = TRUE을 사용하여 이것을 연구 할 수 있습니다 (로그 가능성을 얻고 언더 플로/오버플로를 찾습니다). 뭔가 잘못되면 예상 시간이 길어질 수 있습니다.

또한 fnscale=100000을 사용하여 우도 값을 조정하십시오.

+0

Windows 박스 (Ubunu 14.04)를 실행하지 않았지만 패키지를 1.5로 업데이트했습니다. –