2017-01-27 11 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 인 경우 N20.05입니다. 그래서처럼, 다음, 그 결과 국가의 단지 divide the conditional probability by the unconditional probability을 리프트를 할 계산하려면 : 우리가 seqstatf(data.seq)을 할 경우 우리가 N3 마커의 비율이 0.01721715 것을 볼 수 있습니다

0.05/unconditional probability of N3 

. 즉 0.001554569

0.05/0.01721715=2.90408110518 

하거나 cmine(S1, pmin = 0, state = "N3", l = 1)에 의해 명시된 바와 같이 e을 제공 N3의 확률을 더 적절할 것 : 그 다음 리프트는 것을 의미시겠습니까?

실질적으로 더 높은
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 될 것이다.

누락 된 상태, 즉 누락 된 상태가없는 트리로 얻은 상태를 제외 할 때 조건부 확률을 고려하는 것이 좋습니다.