2017-01-31 2 views
2

가장 긴 시퀀스가 ​​296 개 상태 인 데이터 세트에 VLMC를 맞추려고합니다.VLMC를 매우 긴 시퀀스에 맞추기

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

어떻게이 긴 시퀀스 데이터 모델에 맞게 할 수 있습니다

# 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) 

은, 그러나, 다음과 같은 오류를 얻을 : 아래와 같이 나는 그것을합니까? 모델 내에서 길이 제한에 대한 타당한 근거가 있습니까?

답변

3

문제는 데이터에서 비롯된 것입니다. pstree 함수에서 L을 설정하지 않으면 최대 주문 모델에 적합하기를 원할 것입니다. 피팅 프로세스는 2 = n 분 이후, L = 8에서 오류가 발생하지만,이 순서에 하나의 컨텍스트 = 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 

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 
잘 L = 8 개 작품을 사용하여 모델을 피팅 n 분했다

다시 말하지만, 당신은

+0

에게 알렉시스에게 pstree에있는 '실종'권리 'seqdef 또는'NR '옵션()이나'with.missing '()

보다도, 를 사용하려면 필요하지 않습니다 맞아 내가 '실종'할 필요는 없다. r'pstree()'함수를 사용하지만'missing '옵션을 사용하지 않으면 나중에'tune()'과'cmine()'을 사용할 때 문제가 발생합니다. 예 : ''tune() 함수는 다음을 제공한다 :'[>] 모델 1 : AICc = NA (C = 4.74) if (pst.IC == min (IC, na.rm = TRUE)) {: 누락 값 TRUE/FALSE가 필요한 경우 경고 메시지 : min (IC, na.rm = TRUE) : ​​min에 누락 된 인수가 없습니다. returns Inf' 이 함수에서 누락 된 값을 끄는 인수가 있습니까? – histelheim

+0

또한 'L = 8'에서 오류가 발생했음을 어떻게 확인 했습니까? – histelheim