在概率后缀树的序列中," e"发生?

时间:2017-01-27 01:39:16

标签: markov-chains pst traminer sequence-analysis

在我的数据中,序列右侧只缺少数据(*)。这意味着没有序列以*开头,并且*之后没有任何序列具有任何其他标记。尽管如此,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之后?

是否意味着上下文可以出现在序列中的任何位置,并且while true { ... for access_point in access_points { ... signal_strength = ... } } 表示序列中某处的任意起始点?

1 个答案:

答案 0 :(得分:2)

PST是可变长度马尔可夫模型(VLMC)的表示。作为经典马尔可夫模型,假设VLMC是同质的(或静止的),这意味着给定上下文的结果的条件概率在序列中的每个位置处是相同的。换句话说,上下文可以出现在序列中的任何位置。实际上,搜索上下文是通过探索应该在序列中的任何位置应用的树来完成的。

在您的示例中,对于 Map<String,List<Result>> eventsResults = new HashMap<String,List<Result>>(); for(Result result : results){ String eventName = result.getEvent().getEventName(); // search the map for this event name List<Result> storedResultsList = eventsResults.get(eventName); if(storedResultsList == null){ // no entry for this name yet, let's create one List<Result> newEventResultsList = new ArrayList<Result>(); newEventResultsList.add(result); eventsResults.put(eventName, newEventResultsList); } else{ // entry found, let's add this result to the list storedResultsList.add(result); } } l=1是1 +上下文的长度),您只查看0长度上下文,即唯一可能的上下文是空序列{{ 1}}。您的条件le的概率大于0)相当于完全没有条件。因此,您可以获得观察每个州的总体概率。由于您的序列(缺少状态)的长度都相同,因此使用pmin=0, state=N3

会得到相同的结果
N3

要在第一个位置获得分布,您可以使用TraMineR并查看

返回的连续位置处的横截面分布表的第一列
seqmeant(data.seq, with.missing=TRUE)/max(seqlength(data.seq))

希望这有帮助。