Подгонка VLMC к очень длинным последовательностям

Я пытаюсь приспособить VLMC к набору данных, где самая длинная последовательность составляет 296 состояний. Я делаю это, как показано ниже:

# Load libraries
library(PST)
library(RCurl)
library(TraMineR)

# Load and transform data
x <- getURL("https://gist.githubusercontent.com/aronlindberg/08228977353bf6dc2edb3ec121f54a29/raw/241ef39125ecb55a85b43d7f4cd3d58f617b2ecf/challenge_level.csv")
data <- read.csv(text = x)

data.seq <- seqdef(data[,2:ncol(data)], missing = NA, right = NA, nr = "*")
S1 <- pstree(data.seq, ymin = 0.01, lik = TRUE, with.missing = TRUE, nmin = 2)

Это, однако, приводит к следующей ошибке:

Error in res[i, , drop = FALSE] : subscript out of bounds

Как я могу приспособить модель к данным с последовательностями так долго? Есть ли веские основания для ограничения длины в модели?

1 ответ

Решение

Проблема исходит из ваших данных. Не устанавливая L в функции pstree, вы имеете в виду, что хотите установить модель максимального порядка. Процесс подбора выдает ошибку при L=8, так как у вас nmin=2, но в этом порядке только один контекст имеет nmin=2

> cprob(data.seq, L=8, nmin=2)
 [>] 21 sequences, min/max length: 19/296
 [>] computing prob., L=8, 2043 distinct context(s)
 [>] removing 1894 context(s) where n<2
 [>] total time: 0.156 secs
                        EX  FA I1  I2 I3 N1 N2 N3 NR QU TR [n]
I2-I3-FA-I3-EX-I3-EX-I2  0 0.5  0 0.5  0  0  0  0  0  0  0   2

Подгонка модели с использованием L = 8 работает нормально

S1 <- pstree(data.seq, ymin = 0.01, lik = TRUE, nmin = 2, L=8) 

 [>] 21 sequence(s) - min/max length: 19/296
 [>] max. depth L=8, nmin=2, ymin=0.01
     [L]  [nodes]
       0        1
       1       11
       2       99
       3      368
       4      340
       5      126
       6       34
       7        4
       8        1
 [>] computing sequence(s) likelihood ... (0.804 secs)
 [>] total time: 2.968 secs

Опять же, вам не нужно использовать какие-либо "отсутствующие", "правильные" или "nr" опции в seqdef() или "with.missing" в pstree()

Бест, Алексис

Другие вопросы по тегам