Заморозка пакета R msm

Я пытался использовать пакет msm для моделирования цепи Маркова с 8 состояниями и несколькими состояниями. В общей сложности мой набор данных содержит около 11 000 субъектов с общим количеством наблюдений чуть более 100 000.

Я пытаюсь запустить функцию 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 выводит отрицательное значение. Например, вот запуск с первыми 10 000 строк данных

initial  value 19017.328402  
iter   2 value 17808.111677 
iter   3 value 17707.483305 
iter   4 value -346782.085429 (freeze)

Но он работает с первыми 20 тыс. строк

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

Но не с 50 тыс. строк

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

Но работает на 60010,80007 (снимаю полные записи испытуемых), и после этого не могу сказать то ли система зависает, то ли анализ идет очень долго. 1 ЦП, назначенный задаче, максимален, но я далеко не ограничиваю свои ресурсы ОЗУ (‹ 1% от 96 ГБ на сервере).

У меня два вопроса - ) Почему функция (произвольно?) зависает на определенных подмножествах данных и 2) Как можно оценить время выполнения этой функции? В прошлый раз я дал ему поработать, и это продолжалось более 2 дней. Как ни странно, время вычислений для многих прогонов, казалось, масштабировалось сублинейно, но как только я пересек порог, оно масштабируется...?


person Mark C    schedule 08.01.2015    source источник
comment
Интересно, что я запустил этот же процесс на сервере Amazon EC2 и получил ответ за ‹ 1 минуты для полного набора данных. Я не уверен, почему это происходит.   -  person Mark C    schedule 08.01.2015


Ответы (1)


У тебя мсм 1.5?

В журнале изменений (http://cran.r-project.org/web/packages/msm/ChangeLog) упоминается, что исправлена ​​ошибка, приводившая к бесконечным циклам в окнах.

Если ваш временной ряд имеет несколько коротких скачков, вы можете получить потерю логарифмической вероятности. Вы можете изучить это, используя fixedpars = TRUE в вызове msm (затем получите логарифмическую вероятность и найдите недополнение/переполнение). Если что-то не так, вы получите очень долгое время работы (трудно предсказать).

Также попробуйте масштабировать значения правдоподобия, используя fnscale=100000.

person Niels    schedule 16.01.2015
comment
Обновление пакета до 1.5 сработало, хотя я не запускал Windows-бокс (Ubunu 14.04) - person Mark C; 17.01.2015