Я пытаюсь выполнить анализ оптимального соответствия с помощью TraMineR, но мне кажется, что у меня проблема с размером набора данных. У меня есть большой набор данных по европейским странам, в котором есть периоды трудоустройства. У меня более 57 000 последовательностей, длина которых составляет 48 единиц и которые состоят из 9 различных состояний. Чтобы получить представление об анализе, вот заголовок объекта последовательности employdat.sts
:
[1] EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-...
[2] EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-...
[3] ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-...
[4] ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-...
[5] EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-EF-...
[6] ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-ST-...
В более коротком формате SPS это читается следующим образом:
Sequence
[1] "(EF,48)"
[2] "(EF,48)"
[3] "(ST,48)"
[4] "(ST,36)-(MS,3)-(EF,9)"
[5] "(EF,48)"
[6] "(ST,24)-(EF,24)"
После передачи этого объекта последовательности в функцию seqdist()
я получаю следующее сообщение об ошибке:
employdat.om <- seqdist(employdat.sts, method="OM", sm="CONSTANT", indel=4)
[>] creating 9x9 substitution-cost matrix using 2 as constant value
[>] 57160 sequences with 9 distinct events/states
[>] 12626 distinct sequences
[>] min/max sequence length: 48/48
[>] computing distances using OM metric
Error in .Call(TMR_cstringdistance, as.integer(dseq), as.integer(dim(dseq)), : negative length vectors are not allowed
Связана ли эта ошибка с огромным количеством отдельных длинных последовательностей? Я использую x64-машину с 4 ГБ ОЗУ, и я также пробовал его на машине с 8 ГБ ОЗУ, на которой было воспроизведено сообщение об ошибке. Кто-нибудь знает, как решить эту ошибку? Кроме того, анализ для каждой отдельной страны с использованием одного и того же синтаксиса с индексом для страны работал хорошо и дал значимые результаты.