Где в последовательности дерева вероятностных суффиксов встречается "е"?

В моих данных есть только недостающие данные (*) на правой стороне последовательностей. Это означает, что последовательность не начинается с * и ни одна последовательность не имеет никаких других маркеров после *, Несмотря на это, PST (вероятностное суффиксное дерево), по-видимому, предсказывает 90% -ную вероятность начала с *, Вот мой код:

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

# Get data
x <- getURL("https://gist.githubusercontent.com/aronlindberg/08228977353bf6dc2edb3ec121f54a29/raw/c2539d06771317c5f4c8d3a2052a73fc485a09c6/challenge_level.csv")
data <- read.csv(text = x)

# Load and transform data
data <- read.table("thread_level.csv", sep = ",", header = F, stringsAsFactors = F)

# Create sequence object
data.seq <- seqdef(data[2:nrow(data),2:ncol(data)], missing = NA, right= NA, nr = "*")

# Make a tree
S1 <- pstree(data.seq, ymin = 0.05, L = 6, lik = TRUE, with.missing = TRUE)

# Look at first state
cmine(S1, pmin = 0, state = "N3", l = 1)

Это создает:

[>] context: e 
            EX         FA         I1         I2          I3          N1              N2          N3        NR
S1 0.006821066 0.01107234 0.01218274 0.01208756 0.006821066 0.002569797     0.003299492 0.001554569 0.0161802
           QU          TR         *
S1 0.01126269 0.006440355 0.9097081

Как может вероятность для * быть 0.9097081 в самом начале последовательности, то есть после контекста e?

Означает ли это, что контекст может появиться где-нибудь внутри последовательности, и что e обозначает произвольную отправную точку где-то внутри последовательности?

1 ответ

Решение

PST является представлением модели Маркова переменной длины (VLMC). В качестве классической марковской модели предполагается, что VLMC является однородным (или стационарным), что означает, что условные вероятности результата с учетом контекста одинаковы в каждой позиции последовательности. Другими словами, контекст может появиться в любом месте последовательности. На самом деле, поиск контекстов осуществляется путем изучения дерева, которое должно применяться в любом месте последовательности.

В вашем примере для l=1 (l равен 1 + длина контекста), вы ищите только контекст 0-длины, т. е. единственный возможный контекст - это пустая последовательность e, Ваше состояние pmin=0, state=N3 (иметь вероятность больше 0 для N3) эквивалентно никакому условию вообще. Таким образом, вы получаете общую вероятность наблюдать за каждым состоянием. Поскольку ваши последовательности (с отсутствующими состояниями) имеют одинаковую длину, вы получите те же результаты, используя TraMineR с

seqmeant(data.seq, with.missing=TRUE)/max(seqlength(data.seq))

Чтобы получить распределение на первой позиции, вы можете использовать TraMineR и посмотрите на первый столбец таблицы сечений распределений в последовательных позициях, возвращаемых

seqstatd(data.seq, with.missing=TRUE)

Надеюсь это поможет.

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