2017-01-27 7 views
2

は、さまざまなコンテキストとそれに続く状態の確率と条件付き確率を私に与えます。しかし、コンテキストと後続の状態との間の関係の揚力(およびその重要度)を計算できることは非常に有用です。これどうやってするの?確率的サフィックスツリーのコンテキスト状態関係のリフトを計算しますか?

[>] context: N2 
     EX   FA   I1   I2 I3   N1  N2   N3  NR   QU 
S1 0.07692308 0.08076923 0.05769231 0.07692308 0.05 0.06923077 0.1038462 0.06153846 0.1269231 0.07307692 
     TR   * 
S1 0.08076923 0.1423077 

するのは、私がQUN3との間の関係のリフトを計算したいとしましょう:

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

は、これはそのうちの一つがされ、いくつかのコンテキストを提供します。 N3の条件付き確率がN2であることは、0.05であることがわかります。リフトを計算するには、私はそれからちょうどdivide the conditional probability by the unconditional probabilityそうのような結果の状態、のだろう:私たちはseqstatf(data.seq)を行う場合

0.05/unconditional probability of N3 

我々はN3マーカーの割合は0.01721715であることがわかります。

0.05/0.01721715=2.90408110518 

またはcmine(S1, pmin = 0, state = "N3", l = 1)で述べたようにeを与えN3の確率、すなわち0.001554569を取るために、より適切であろう。それは、リフトがあることを意味しますか?

実質的に高い
0.05/0.001554569=32.163255539 

...

答えて

2

推論が正しい:これはのリフトをもたらすであろう。しかし、seqstatfの問題は、欠落状態(*)を考慮しないことです。ここでは、0.001556148を与えるN3

nN3 <- sum(data.seq == 'N3') 
nn <- nrow(data.seq)*ncol(data.seq) 
(pN3 <- nN3/nn) 

の全体的な確率を得ることができる方法です。

ので、リフトはここ

ctx <- cmine(S1, pmin = 0, state = "N3", l = 2) 
(liftN3 <- ctx$N2[,"N3"]/pN3) 

すなわち、39.5だろう。

欠落している状態、つまり欠損状態のないツリーで得られた状態を除外すると、条件付き確率を考慮することができます。

関連する問題