貝氏理論基礎為條件機率,說明在一條件下(或稱先驗機率, prior probability),一事件發生的機率(又稱後驗概率, posterior probability)。條件機率概念如下,若 A, B 為樣本空間 \(S\) 中的二事件,且 \(P(A) > 0\),則在給定 A 發生下,B 發生之條件機率以 \(P(B|A)\) 表示,並定義為

\[ P(B|A) = \frac{P(A \cap B)}{P(A)}, \\ P(A \cap B) = P(B|A)*P(A) ... (1) \]

以此類推 \(P(A \cap B)\) 亦可由在 \(P(B) > 0\) 的條件下推算而得 \(P(A \cap B) = P(A|B)*P(B) ... (2)\)。而若整理上述 \((1)\)\((2)\) 公式,則可得下列結論:

\[ P(A \cap B) = P(B|A)*P(A) = P(A|B)*P(B)\\ \Rightarrow P(B|A) = \frac{P(A|B)*P(B)}{P(A)} \]

貝氏理論可視為條件機率的延伸說明。 假設一隨機現象的樣本空間為 \(S\),若事件 \(A_1, A_2, A_3, ..., A_n\) 滿足底下條件

  1. \(A_1, A_2, A_3, ..., A_n\) 兩兩互斥
  2. \(A_1 \cup A_2 \cup A_3, ..., \cup A_n = S\)

則稱事件 \(A_1, A_2, A_3, ..., A_n\) 是樣本空間 \(S\) 的一個分割。而貝氏定理擁有 分割定理貝氏定理 兩個定理。

\[ P(E) = P(A_1)*P(E|A_1) + P(A_2)*P(E|A_2) + P(A_3)*P(E|A_3) + ... + + P(A_n)*P(E|A_n)\\ = \sum_{k=1}^nP(A_k)*P(E | A_k) \]

特性,可以透過圖像化方式理解,如下:

\(A_1, A_2, A_3, ..., A_n\) 是樣本空間 \(S\) 的一個分割,\(E = (A_1 \cap E) \cup (A_2 \cap E) \cup (A_3 \cap E) \cup ... \cup (A_n \cap E)\)\((A_1 \cap E),(A_2 \cap E), ... ,(A_n \cap E) 兩兩互斥\),故

\[ P(E) = P(A_1 \cap E) + P(A_2 \cap E) + ... + P(A_n \cap E)\\ = P(A_1)*P(E|A_1) + P(A_2)*P(E|A_2) + ... + + P(A_n)*P(E|A_n) \]

\[ P(A_i|E) = \frac{P(A_i \cap E)}{P(E)} = \frac{P(A_i)*P(E|A_i)}{\sum_{k=1}^nP(A_k)*P(E|A_k)},i=1,2,...,n \]

其中 \(A_1, A_2, A_3, ..., A_n\) 又可稱為先驗機率。

貝氏分類器

使用套件

R 中有數個實作出貝氏理論的套件,如 naiveBayes{e1071} 與 NaiveBayes{klaR} 等都是實作函式。而 naiveBayes{e1071} 是以類別資料為對象,而 NaiveBayes{klaR} 則可以用連續資料作為分析對象。

安裝套件

貝氏方法可以用於分類,故又稱貝氏分類器,可使用來自於 e1071 的套件中 naiveBayes 函式來實現。使用的資料集來自於 mlbench 套件。

packageName <- c("e1071","mlbench")
for(i in 1:length(packageName)) {
  if(!(packageName[i] %in% rownames(installed.packages()))) {
    install.packages(packageName[i])
  }
}
lapply(packageName, require, character.only = TRUE)
## Loading required package: e1071
## Loading required package: mlbench
## [[1]]
## [1] TRUE
## 
## [[2]]
## [1] TRUE

資料準備

使用來自於 mlbench 套件中的資料 HouseVotes84。其中 class 為輸出變數(要預測的變數),而其他變數為輸入變數(特徵值)。

data("HouseVotes84", package="mlbench")
head(HouseVotes84, 10)
##         Class   V1 V2 V3   V4   V5 V6 V7 V8 V9 V10  V11  V12  V13 V14  V15
## 1  republican    n  y  n    y    y  y  n  n  n   y <NA>    y    y   y    n
## 2  republican    n  y  n    y    y  y  n  n  n   n    n    y    y   y    n
## 3    democrat <NA>  y  y <NA>    y  y  n  n  n   n    y    n    y   y    n
## 4    democrat    n  y  y    n <NA>  y  n  n  n   n    y    n    y   n    n
## 5    democrat    y  y  y    n    y  y  n  n  n   n    y <NA>    y   y    y
## 6    democrat    n  y  y    n    y  y  n  n  n   n    n    n    y   y    y
## 7    democrat    n  y  n    y    y  y  n  n  n   n    n    n <NA>   y    y
## 8  republican    n  y  n    y    y  y  n  n  n   n    n    n    y   y <NA>
## 9  republican    n  y  n    y    y  y  n  n  n   n    n    y    y   y    n
## 10   democrat    y  y  y    n    n  n  y  y  y   n    n    n    n   n <NA>
##     V16
## 1     y
## 2  <NA>
## 3     n
## 4     y
## 5     y
## 6     y
## 7     y
## 8     y
## 9     y
## 10 <NA>

建立貝氏分類器模型

# the prototype of naiveBayes
# formula: 公式, 如 Class ~ x1 + x2 等或 Class ~ . 等
# laplace: 使用 laplace 平滑調整
# type: 輸出結果內容,class (分類結果)與 raw(機率)
# threshold: 最小閥值
# na.action: NA 值處理方式
naiveBayes(
  formula, data, 
  laplace = 0, type = c("class","raw"), threshold = 0.001, 
  na.action = na.pass, ...)
set.seed(123)
traning_idx = sample(1:nrow(HouseVotes84),floor(nrow(HouseVotes84)*2/3))
traning_data = HouseVotes84[traning_idx, ]
testing_data = HouseVotes84[-traning_idx, ]
model = naiveBayes(Class ~ ., data=traning_data)
model
## 
## Naive Bayes Classifier for Discrete Predictors
## 
## Call:
## naiveBayes.default(x = X, y = Y, laplace = laplace)
## 
## A-priori probabilities:
## Y
##   democrat republican 
##  0.5827586  0.4172414 
## 
## Conditional probabilities:
##             V1
## Y                    n         y
##   democrat   0.4024390 0.5975610
##   republican 0.7966102 0.2033898
## 
##             V2
## Y                    n         y
##   democrat   0.5102041 0.4897959
##   republican 0.5047619 0.4952381
## 
##             V3
## Y                    n         y
##   democrat   0.1333333 0.8666667
##   republican 0.8644068 0.1355932
## 
##             V4
## Y                     n          y
##   democrat   0.96987952 0.03012048
##   republican 0.01680672 0.98319328
## 
##             V5
## Y                     n          y
##   democrat   0.78395062 0.21604938
##   republican 0.06666667 0.93333333
## 
##             V6
## Y                    n         y
##   democrat   0.5243902 0.4756098
##   republican 0.1333333 0.8666667
## 
##             V7
## Y                    n         y
##   democrat   0.2012195 0.7987805
##   republican 0.7350427 0.2649573
## 
##             V8
## Y                    n         y
##   democrat   0.1607143 0.8392857
##   republican 0.8333333 0.1666667
## 
##             V9
## Y                    n         y
##   democrat   0.2341772 0.7658228
##   republican 0.8487395 0.1512605
## 
##             V10
## Y                    n         y
##   democrat   0.5357143 0.4642857
##   republican 0.4621849 0.5378151
## 
##             V11
## Y                    n         y
##   democrat   0.4787879 0.5212121
##   republican 0.8849558 0.1150442
## 
##             V12
## Y                    n         y
##   democrat   0.8650307 0.1349693
##   republican 0.1272727 0.8727273
## 
##             V13
## Y                    n         y
##   democrat   0.7267081 0.2732919
##   republican 0.1478261 0.8521739
## 
##             V14
## Y                     n          y
##   democrat   0.63803681 0.36196319
##   republican 0.01694915 0.98305085
## 
##             V15
## Y                     n          y
##   democrat   0.36477987 0.63522013
##   republican 0.92857143 0.07142857
## 
##             V16
## Y                     n          y
##   democrat   0.06666667 0.93333333
##   republican 0.29906542 0.70093458

預測資料

  • 預測資料
pred <- predict(model, testing_data[,-1])
pred
##   [1] republican democrat   democrat   republican republican democrat  
##   [7] democrat   republican republican democrat   republican democrat  
##  [13] democrat   democrat   democrat   democrat   democrat   democrat  
##  [19] republican democrat   democrat   democrat   republican democrat  
##  [25] republican republican republican republican democrat   democrat  
##  [31] democrat   democrat   republican democrat   democrat   republican
##  [37] republican democrat   democrat   democrat   democrat   democrat  
##  [43] republican democrat   republican democrat   democrat   republican
##  [49] democrat   democrat   republican republican democrat   republican
##  [55] republican republican republican democrat   republican democrat  
##  [61] democrat   republican democrat   democrat   democrat   democrat  
##  [67] democrat   democrat   democrat   republican democrat   democrat  
##  [73] republican democrat   republican democrat   democrat   republican
##  [79] democrat   republican democrat   democrat   democrat   republican
##  [85] democrat   democrat   democrat   democrat   democrat   democrat  
##  [91] democrat   democrat   republican republican republican democrat  
##  [97] democrat   democrat   democrat   democrat   republican republican
## [103] democrat   republican democrat   democrat   republican republican
## [109] republican democrat   democrat   democrat   democrat   democrat  
## [115] republican democrat   republican republican republican democrat  
## [121] republican democrat   republican democrat   democrat   republican
## [127] democrat   democrat   republican republican democrat   democrat  
## [133] republican republican republican democrat   republican republican
## [139] republican democrat   republican democrat   democrat   democrat  
## [145] republican
## Levels: democrat republican
  • 顯示機率計算的結果
predict(model, testing_data[1:10,-1], type="raw")
##           democrat   republican
##  [1,] 5.993665e-03 9.940063e-01
##  [2,] 9.531394e-01 4.686062e-02
##  [3,] 7.394944e-01 2.605056e-01
##  [4,] 1.133874e-04 9.998866e-01
##  [5,] 4.089389e-06 9.999959e-01
##  [6,] 1.000000e+00 2.123986e-08
##  [7,] 1.000000e+00 1.059360e-09
##  [8,] 2.324822e-07 9.999998e-01
##  [9,] 5.552942e-08 9.999999e-01
## [10,] 9.999938e-01 6.168911e-06

建立預測資料的交叉矩陣

table(pred, testing_data$Class)
##             
## pred         democrat republican
##   democrat         85          2
##   republican       13         45

貝氏網路

貝氏網路(又稱信念網路, 有向無環圖模型等),是一種機率圖型模型,藉由有向無環圖(directed acyclic graphs, or DAGs)中得知一組隨機變數(\(X_1, X_2, X_3, ..., X_n\))及其 n 組條件機率分配(conditional probability distributions, or CPDs)的性質。舉例而言,貝氏網路可用來表示疾病和相關症狀間的機率關係。

舉上例而言,假設有兩種因子(\(F1\),\(F2\))會導致疾病(\(D\))發生,但第二個因子會受到第一個因子的影響,就每個因子而言,就只有兩種可能結果:導致(T)與不導致(F),則此貝氏網路(如上圖)之聯合機率可表示成:

\[ P(D,F_1,F_2) = P(D|F_1,F_2)*P(F_2|F_1)*P(F_1) \] 。反之,此模型亦可以回答「假如已知疾病發生,則來自於第一因子造成的機率為何?」等問題,此問題解法如下:

\[ P(F_1=T|D=T) = \frac{P(F_1=T,D=T)}{P(D=T)}\\ =\frac{\sum_{F_2 \in \{T,F\}}P(F_1 = T, S_2, D=T)}{\sum_{F_1,F_2 \in \{T,F\}}P(D=T,F_1,F_2)}\\ =\frac {(0.4*0.7*1)_{F_1=T,F_2=T,D=T},(0.4*0.3*1)_{F_1=T,F_2=F,D=T}} {(0.4*0.7*1)_{F_1=T, F_2=T, D=T} + (0.4*0.3*1)_{TFT} + (0.6*0.3*1)_{FTT} + (0)_{FFF}}\\ \approx 0.6896 = 68.96 \% \]

解貝氏網路是相當複雜的計算,一般而言可以分成底下兩類:

安裝套件

貝氏網路可透過 deal 來實現,包含如 network 等重要函式。

packageName <- c("deal")
for(i in 1:length(packageName)) {
  if(!(packageName[i] %in% rownames(installed.packages()))) {
    install.packages(packageName[i])
  }
}
lapply(packageName, require, character.only = TRUE)
## Loading required package: deal
## [[1]]
## [1] TRUE

建構網路常用函式介紹

函式 說明
network 建構網路
localprob 先驗機率
autosearch 自動搜索網路
insert 加入一個有向線(箭頭表示)至網路中
remover 於網路中移除一個有向線
jointprior 計算先驗聯合機率分布
learn 於局部機率分布中估計參數
heuristic 透過 greedy search 嘗試建立網路,以提升網路分數
getnetwork 取得建構網路的資料資訊
savenet 儲存網路
modelstring 取得建構後的網路資訊
makenw 創建網路家族譜
gettable 取得所有的子網路資訊
drawnetwork 透過互動方式讓使用者建立貝式網路
maketrylist 為了更快速學習,trylist 作為查找預先定義的父節點
nwfsort 對網路族作分析,並依網路與得分進行排序
perturb 對網路做隨機更改,如新增/修改/刪除一條有向線等
score 網路的分數

建構網路 (Network)

  • 資料準備
set.seed(109)
sex <- gl(2,4,labels = c("male","female"))
age <- gl(2,2,8)
yield <- rnorm(length(sex))
weight <- rnorm(length(sex))
allData <- data.frame(sex, age, yield, weight)
  • 建構網路
# the prototype of network
network(data
  , specifygraph=FALSE, inspectprob=FALSE
  , doprob=TRUE, yr=c(0,350), xr=yr, ...)
data.network <- network(allData)
  • 賦予先驗機率
localprob(data.network,"sex") <- c(0.6,0.4)
localprob(data.network,"yield") <- c(2.0,0)
localprob(data.network,"weight") <- c(1,0)
data.network
## ##  4 ( 2 discrete+ 2 ) nodes;score=  ;relscore=  
## 1    sex discrete(2) 
## 2    age discrete(2) 
## 3    yield   continuous() 
## 4    weight  continuous()
  • 顯示原始貝氏網路圖
plot(data.network)

  • 學習網路
prior <- jointprior(data.network)
## Imaginary sample size: 6.666667
data.network <- getnetwork(learn(data.network, allData, prior))
  • 尋找最佳網路
theBestNetwork <- getnetwork(autosearch(data.network, allData, prior))
## [Autosearch

## (1) -35.65956 [sex][age][yield|sex][weight]

## (2) -35.02124 [sex][age][yield|sex][weight|age]

## (3) -33.87373 [sex][age][yield|sex][weight|age:yield]
## Total 0.5 add 0.23 rem 0.01 turn 0.03 sort 0.02 choose 0 rest 0.21 ]
  • 顯示貝氏網路內容並儲存網路
print(data.network, condposterior = TRUE)
## ##  4 ( 2 discrete+ 2 ) nodes;score= -36.5371400840653 ;relscore=  
## 1    sex discrete(2) 
## ------------------------------------------------------------
## Conditional Posterior: sex
## [[1]]
## [[1]]$alpha
## 
##     male   female 
## 8.000000 6.666667 
## 
## [[1]]$nu
## [1] NA
## 
## [[1]]$rho
## [1] NA
## 
## [[1]]$mu
## [1] NA
## 
## [[1]]$phi
## [1] NA
## 
## [[1]]$tau
## [1] NA
## 
## 
## 2    age discrete(2) 
## ------------------------------------------------------------
## Conditional Posterior: age
## [[1]]
## [[1]]$alpha
## 
##        1        2 
## 7.333333 7.333333 
## 
## [[1]]$nu
## [1] NA
## 
## [[1]]$rho
## [1] NA
## 
## [[1]]$mu
## [1] NA
## 
## [[1]]$phi
## [1] NA
## 
## [[1]]$tau
## [1] NA
## 
## 
## 3    yield   continuous() 
## ------------------------------------------------------------
## Conditional Posterior: yield
## [[1]]
## [[1]]$alpha
## [1] NA
## 
## [[1]]$nu
## [1] 6.666667
## 
## [[1]]$rho
## [1] 14.66667
## 
## [[1]]$mu
## [1] 0.09467204
## 
## [[1]]$phi
## [1] 16.40989
## 
## [[1]]$tau
## [1] 14.66667
## 
## 
## 4    weight  continuous() 
## ------------------------------------------------------------
## Conditional Posterior: weight
## [[1]]
## [[1]]$alpha
## [1] NA
## 
## [[1]]$nu
## [1] 6.666667
## 
## [[1]]$rho
## [1] 14.66667
## 
## [[1]]$mu
## [1] -0.07157472
## 
## [[1]]$phi
## [1] 8.046199
## 
## [[1]]$tau
## [1] 14.66667
savenet(data.network, file("data.net"))

自動搜索網路 (autosearch)

  • 準備資料
data(rats)
head(rats, 10)
##    Sex Drug W1 W2
## 1    M   D1  5  6
## 2    M   D1  7  6
## 3    M   D1  9  9
## 4    M   D1  5  4
## 5    M   D2  9 12
## 6    M   D2  7  7
## 7    M   D2  7  6
## 8    M   D2  6  8
## 9    M   D3 14 11
## 10   M   D3 21 15
  • 建構並學習網路
rats.net <- network(rats)

# 計算聯合先驗機率分布
rats.prior <- jointprior(rats.net, 12)
## Imaginary sample size: 12
# learn: 估計機率分布下的參數
# getnetwork: 依據學習後的參數修改網路
rats.net <- getnetwork(learn(rats.net, rats, rats.prior))
  • 增加方向線
# insert: add the arrow from node.2 to node.1
rats.net <- getnetwork(insert(rats.net,2,1, rats, rats.prior))

# insert: add the arrow from node.1 to node.3
rats.net <- getnetwork(insert(rats.net,1,3, rats, rats.prior))
  • 自動搜索網路
# trace: 列出搜尋結果
# removecycles: 搜索網路時,是否排除含有環(cycle)的子網路
rats.net.auto <- autosearch(rats.net, rats, rats.prior, trace = FALSE, removecycles = TRUE)
## [Autosearch (1) -170.0867 [Sex|Drug][Drug][W1|Sex:W2][W2]
## (2) -166.3658 [Sex|Drug][Drug][W1|Sex:Drug:W2][W2]
## (3) -163.5749 [Sex|Drug][Drug][W1|Drug:W2][W2]
## (4) -161.4324 [Sex|Drug][Drug][W1|Drug][W2|W1]
## (5) -160.2244 [Sex][Drug][W1|Drug][W2|W1]
## Total 0.07 add 0.02 rem 0.03 turn 0 sort 0 choose 0.02 rest 0 ]
plot(getnetwork(rats.net.auto))

  • 探索式建立網路
# 透過 greedy search 嘗試建立網路,以提升網路分數
rats.net.hisc <- heuristic(rats.net, rats, rats.prior, restart = 20, trace = FALSE)
## [Heuristic [Autosearch (1) -170.0867 [Sex|Drug][Drug][W1|Sex:W2][W2]
## (2) -166.3658 [Sex|Drug][Drug][W1|Sex:Drug:W2][W2]
## (3) -163.5749 [Sex|Drug][Drug][W1|Drug:W2][W2]
## (4) -161.4324 [Sex|Drug][Drug][W1|Drug][W2|W1]
## (5) -160.2244 [Sex][Drug][W1|Drug][W2|W1]
## Total 0.07 add 0.02 rem 0.02 turn 0 sort 0.01 choose 0 rest 0.02 ]
## [Perturb 0.03 ]
## [Autosearch (1) -166.4958 [Sex][Drug][W1|Drug][W2]
## (2) -160.2244 [Sex][Drug][W1|Drug][W2|W1]
## Total 0.01 add 0.01 rem 0 turn 0 sort 0 choose 0 rest 0 ]
## [Perturb 0.02 ]
## [Autosearch (1) -163.2002 [Sex][Drug][W1|Sex:Drug][W2|Sex:W1]
## (2) -160.6097 [Sex][Drug][W1|Drug][W2|Sex:W1]
## (3) -160.2244 [Sex][Drug][W1|Drug][W2|W1]
## Total 0.03 add 0 rem 0 turn 0.01 sort 0 choose 0 rest 0.02 ]
## [Perturb 0.04 ]
## [Perturb 0.02 ]
## [Autosearch (1) -171.5106 [Sex|Drug][Drug][W1|Sex:W2][W2|Sex:Drug]
## (2) -167.7897 [Sex|Drug][Drug][W1|Sex:Drug:W2][W2|Sex:Drug]
## (3) -164.9988 [Sex|Drug][Drug][W1|Drug:W2][W2|Sex:Drug]
## (4) -163.5157 [Sex|Drug][Drug][W1|Drug:W2][W2|Drug]
## (5) -162.3077 [Sex][Drug][W1|Drug:W2][W2|Drug]
## (6) -162.3077 [Sex][Drug][W1|Drug][W2|Drug:W1]
## (7) -160.2244 [Sex][Drug][W1|Drug][W2|W1]
## Total 0.03 add 0.01 rem 0.02 turn 0 sort 0 choose 0 rest 0 ]
## [Perturb 0 ]
## [Perturb 0 ]
## [Perturb 0.02 ]
## [Autosearch (1) -164.2492 [Sex][Drug|Sex][W1|Drug:W2][W2|Sex]
## (2) -161.8177 [Sex][Drug|Sex][W1|Drug][W2|Sex:W1]
## (3) -160.6097 [Sex][Drug][W1|Drug][W2|Sex:W1]
## (4) -160.2244 [Sex][Drug][W1|Drug][W2|W1]
## Total 0 add 0 rem 0 turn 0 sort 0 choose 0 rest 0 ]
## [Perturb 0.02 ]
## [Autosearch (1) -170.0275 [Sex][Drug|Sex][W1|Sex:W2][W2|Drug]
## (2) -166.3066 [Sex][Drug|Sex][W1|Sex:Drug:W2][W2|Drug]
## (3) -163.5157 [Sex][Drug|Sex][W1|Drug:W2][W2|Drug]
## (4) -162.3077 [Sex][Drug][W1|Drug:W2][W2|Drug]
## (5) -162.3077 [Sex][Drug][W1|Drug][W2|Drug:W1]
## (6) -160.2244 [Sex][Drug][W1|Drug][W2|W1]
## Total 0.03 add 0 rem 0 turn 0 sort 0 choose 0 rest 0.03 ]
## [Perturb 0 ]
## [Perturb 0 ]
## [Perturb 0 ]
## [Perturb 0 ]
## [Perturb 0 ]
## [Perturb 0.01 ]
## [Autosearch (1) -168.3781 [Sex|Drug][Drug][W1|Drug][W2|Sex]
## (2) -161.8177 [Sex|Drug][Drug][W1|Drug][W2|Sex:W1]
## (3) -160.6097 [Sex][Drug][W1|Drug][W2|Sex:W1]
## (4) -160.2244 [Sex][Drug][W1|Drug][W2|W1]
## Total 0.02 add 0 rem 0 turn 0.02 sort 0 choose 0 rest 0 ]
## [Perturb 0 ]
## [Perturb 0.02 ]
## [Perturb 0 ]
## [Perturb 0 ]
## [Perturb 0 ]
## [Perturb 0 ]
## [Autosearch (1) -164.023 [Sex][Drug|Sex][W1|Sex:Drug][W2|W1]
## (2) -161.4324 [Sex][Drug|Sex][W1|Drug][W2|W1]
## (3) -160.2244 [Sex][Drug][W1|Drug][W2|W1]
## Total 0.01 add 0 rem 0 turn 0 sort 0.01 choose 0 rest 0 ]
## Tried 120 out of approx. 144 networks
## 0.46 ]
## Perturb: 0.19 ,Autosearch: 0.28 ,Unique: 0
plot(getnetwork(rats.net.hisc))

  • 顯示網路建立狀況
print(modelstring(getnetwork(rats.net.hisc)))
## [1] "[Sex][Drug][W1|Drug][W2|W1]"

網路族分析

  • 繪出網路族譜
plot(makenw(gettable(rats.net.hisc), rats.net))

  • 對網路族分析
nwfsort(makenw(gettable(rats.net.hisc), rats.net))
## Discrete:  Sex(2),Drug(3)
## Continuous:W1,W2
##   log(Score) |Relscore   |Network
## ------------------------------------------------------------
## 1. -160.2244 1       [Sex][Drug][W1|Drug][W2|W1]
## 2. -160.6097 0.6802642   [Sex][Drug][W1|Drug][W2|SexW1]
## 3. -161.4324 0.2987972   [Sex|Drug][Drug][W1|Drug][W2|W1]
## 4. -161.4324 0.2987972   [Sex][Drug|Sex][W1|Drug][W2|W1]
## 5. -161.8177 0.203261    [Sex|Drug][Drug][W1|Drug][W2|SexW1]
## 6. -161.8177 0.203261    [Sex][Drug|Sex][W1|Drug][W2|SexW1]
## 7. -162.3077 0.1245122   [Sex][Drug][W1|Drug][W2|DrugW1]
## 8. -162.3077 0.1245122   [Sex][Drug][W1|DrugW2][W2|Drug]
## 9. -162.3669 0.1173555   [Sex][Drug][W1|DrugW2][W2]
## 10. -162.815 0.07497692  [Sex][Drug][W1|SexDrug][W2|W1]
## 11. -163.0412    0.05979467  [Sex][Drug][W1|DrugW2][W2|Sex]
## 12. -163.2002    0.05100412  [Sex][Drug][W1|SexDrug][W2|SexW1]
## 13. -163.5157    0.03720389  [Sex|Drug][Drug][W1|DrugW2][W2|Drug]
## 14. -163.5157    0.03720389  [Sex|Drug][Drug][W1|Drug][W2|DrugW1]
## 15. -163.5157    0.03720389  [Sex][Drug|Sex][W1|DrugW2][W2|Drug]
## 16. -163.5157    0.03720389  [Sex][Drug|Sex][W1|Drug][W2|DrugW1]
## 17. -163.5749    0.0350655   [Sex|Drug][Drug][W1|DrugW2][W2]
## 18. -163.5749    0.0350655   [Sex][Drug|Sex][W1|DrugW2][W2]
## 19. -163.7908    0.02825631  [Sex][Drug][W1|DrugW2][W2|SexDrug]
## 20. -163.9911    0.02312842  [Sex][Drug][W1|Drug][W2|SexDrugW1]
## 21. -164.023 0.02240289  [Sex|Drug][Drug][W1|SexDrug][W2|W1]
## 22. -164.023 0.02240289  [Sex][Drug|Sex][W1|SexDrug][W2|W1]
## 23. -164.2492    0.01786648  [Sex|Drug][Drug][W1|DrugW2][W2|Sex]
## 24. -164.2492    0.01786648  [Sex][Drug|Sex][W1|DrugW2][W2|Sex]
## 25. -164.4082    0.01523989  [Sex|Drug][Drug][W1|SexDrug][W2|SexW1]
## 26. -164.4082    0.01523989  [Sex][Drug|Sex][W1|SexDrug][W2|SexW1]
## 27. -164.8983    0.009335542 [Sex][Drug][W1|SexDrug][W2|DrugW1]
## 28. -164.9988    0.008442904 [Sex|Drug][Drug][W1|DrugW2][W2|SexDrug]
## 29. -164.9988    0.008442904 [Sex][Drug|Sex][W1|DrugW2][W2|SexDrug]
## 30. -165.0986    0.007641349 [Sex][Drug][W1|SexDrugW2][W2|Drug]
## 31. -165.1578    0.007202143 [Sex][Drug][W1|SexDrugW2][W2]
## 32. -165.1991    0.006910706 [Sex][Drug|Sex][W1|Drug][W2|SexDrugW1]
## 33. -165.1991    0.006910706 [Sex|Drug][Drug][W1|Drug][W2|SexDrugW1]
## 34. -165.8321    0.003669616 [Sex][Drug][W1|SexDrugW2][W2|Sex]
## 35. -166.1063    0.002789433 [Sex][Drug|Sex][W1|SexDrug][W2|DrugW1]
## 36. -166.3066    0.002283214 [Sex|Drug][Drug][W1|SexDrugW2][W2|Drug]
## 37. -166.3066    0.002283214 [Sex][Drug|Sex][W1|SexDrugW2][W2|Drug]
## 38. -166.3658    0.00215198  [Sex|Drug][Drug][W1|SexDrugW2][W2]
## 39. -166.3658    0.00215198  [Sex][Drug|Sex][W1|SexDrugW2][W2]
## 40. -166.4366    0.002004747 [Sex][Drug][W1|Drug][W2|Drug]
## 41. -166.4958    0.001889518 [Sex][Drug][W1|Drug][W2]
## 42. -166.5817    0.001734098 [Sex][Drug][W1|SexDrug][W2|SexDrugW1]
## 43. -166.5817    0.001734098 [Sex][Drug][W1|SexDrugW2][W2|SexDrug]
## 44. -167.0401    0.001096471 [Sex|Drug][Drug][W1|SexDrugW2][W2|Sex]
## 45. -167.0401    0.001096471 [Sex][Drug|Sex][W1|SexDrugW2][W2|Sex]
## 46. -167.1701    0.0009627422    [Sex][Drug][W1|Drug][W2|Sex]
## 47. -167.6446    0.0005990126    [Sex|Drug][Drug][W1|Drug][W2|Drug]
## 48. -167.6446    0.0005990126    [Sex][Drug|Sex][W1|Drug][W2|Drug]
## 49. -167.7038    0.0005645827    [Sex|Drug][Drug][W1|Drug][W2]
## 50. -167.7038    0.0005645827    [Sex][Drug|Sex][W1|Drug][W2]
## 51. -167.7897    0.0005181435    [Sex|Drug][Drug][W1|SexDrugW2][W2|SexDrug]
## 52. -167.7897    0.0005181435    [Sex][Drug|Sex][W1|SexDrugW2][W2|SexDrug]
## 53. -167.7897    0.0005181435    [Sex|Drug][Drug][W1|SexDrug][W2|SexDrugW1]
## 54. -168.3781    0.0002876646    [Sex][Drug|Sex][W1|Drug][W2|Sex]
## 55. -168.3781    0.0002876646    [Sex|Drug][Drug][W1|Drug][W2|Sex]
## 56. -168.8195    0.0001850109    [Sex][Drug][W1|SexW2][W2|Drug]
## 57. -168.8787    0.0001743769    [Sex][Drug][W1|SexW2][W2]
## 58. -168.9201    0.0001672946    [Sex][Drug][W1|W2][W2|Drug]
## 59. -168.9793    0.0001576789    [Sex][Drug][W1][W2|W1]
## 60. -168.9793    0.0001576789    [Sex][Drug][W1|W2][W2]
## 61. -169.0864    0.0001416703    [Sex][Drug][W1|SexDrug][W2]
## 62. -169.1277    0.0001359376    [Sex|Drug][Drug][W1|Drug][W2|SexDrug]
## 63. -169.1677    0.0001306081    [Sex][Drug][W1|Sex][W2|W1]
## 64. -169.3646    0.0001072633    [Sex][Drug][W1][W2|SexW1]
## 65. -169.553 8.884804e-05    [Sex][Drug][W1|SexW2][W2|Sex]
## 66. -169.553 8.884804e-05    [Sex][Drug][W1|Sex][W2|SexW1]
## 67. -169.7607    7.218345e-05    [Sex][Drug][W1|SexDrug][W2|Sex]
## 68. -170.0275    5.528073e-05    [Sex|Drug][Drug][W1|SexW2][W2|Drug]
## 69. -170.0275    5.528073e-05    [Sex][Drug|Sex][W1|SexW2][W2|Drug]
## 70. -170.0867    5.210332e-05    [Sex|Drug][Drug][W1|SexW2][W2]
## 71. -170.0867    5.210332e-05    [Sex][Drug|Sex][W1|SexW2][W2]
## 72. -170.1281    4.998714e-05    [Sex|Drug][Drug][W1|W2][W2|Drug]
## 73. -170.1281    4.998714e-05    [Sex][Drug|Sex][W1|W2][W2|Drug]
## 74. -170.1873    4.711399e-05    [Sex|Drug][Drug][W1|W2][W2]
## 75. -170.1873    4.711399e-05    [Sex|Drug][Drug][W1][W2|W1]
## 76. -170.1873    4.711399e-05    [Sex][Drug|Sex][W1][W2|W1]
## 77. -170.2352    4.491212e-05    [Sex][Drug|Sex][W1|SexDrug][W2|Drug]
## 78. -170.2944    4.233068e-05    [Sex|Drug][Drug][W1|SexDrug][W2]
## 79. -170.2944    4.233068e-05    [Sex][Drug|Sex][W1|SexDrug][W2]
## 80. -170.3026    4.198564e-05    [Sex][Drug][W1|SexW2][W2|SexDrug]
## 81. -170.3757    3.902534e-05    [Sex|Drug][Drug][W1|Sex][W2|W1]
## 82. -170.3757    3.902534e-05    [Sex][Drug|Sex][W1|Sex][W2|W1]
## 83. -170.5726    3.204997e-05    [Sex][Drug|Sex][W1][W2|SexW1]
## 84. -170.5726    3.204997e-05    [Sex|Drug][Drug][W1][W2|SexW1]
## 85. -170.761 2.654754e-05    [Sex|Drug][Drug][W1|SexW2][W2|Sex]
## 86. -170.761 2.654754e-05    [Sex|Drug][Drug][W1|Sex][W2|SexW1]
## 87. -170.761 2.654754e-05    [Sex][Drug|Sex][W1|Sex][W2|SexW1]
## 88. -170.761 2.654754e-05    [Sex][Drug|Sex][W1|SexW2][W2|Sex]
## 89. -170.8616    2.400539e-05    [Sex][Drug|Sex][W1|W2][W2|Sex]
## 90. -170.8616    2.400539e-05    [Sex|Drug][Drug][W1|W2][W2|Sex]
## 91. -170.9687    2.156821e-05    [Sex][Drug|Sex][W1|SexDrug][W2|Sex]
## 92. -170.9687    2.156821e-05    [Sex|Drug][Drug][W1|SexDrug][W2|Sex]
## 93. -171.0627    1.963294e-05    [Sex][Drug][W1][W2|DrugW1]
## 94. -171.5106    1.254519e-05    [Sex|Drug][Drug][W1|SexW2][W2|SexDrug]
## 95. -171.5106    1.254519e-05    [Sex][Drug|Sex][W1|SexW2][W2|SexDrug]
## 96. -171.6112    1.134388e-05    [Sex|Drug][Drug][W1|W2][W2|SexDrug]
## 97. -171.7183    1.019218e-05    [Sex|Drug][Drug][W1|SexDrug][W2|SexDrug]
## 98. -172.459 4.85913e-06 [Sex][Drug|Sex][W1|Sex][W2|DrugW1]
## 99. -172.9344    3.020759e-06    [Sex][Drug][W1|Sex][W2|SexDrugW1]
## 100. -174.1424   9.025943e-07    [Sex|Drug][Drug][W1|Sex][W2|SexDrugW1]
## 101. -175.1916   3.161061e-07    [Sex][Drug][W1][W2|Drug]
## 102. -175.2508   2.979371e-07    [Sex][Drug][W1][W2]
## 103. -175.3799   2.618362e-07    [Sex][Drug][W1|Sex][W2|Drug]
## 104. -175.4391   2.467865e-07    [Sex][Drug][W1|Sex][W2]
## 105. -175.9251   1.518041e-07    [Sex][Drug][W1][W2|Sex]
## 106. -176.1134   1.25742e-07 [Sex][Drug][W1|Sex][W2|Sex]
## 107. -176.3996   9.445162e-08    [Sex][Drug|Sex][W1][W2|Drug]
## 108. -176.4588   8.902276e-08    [Sex|Drug][Drug][W1][W2]
## 109. -176.4588   8.902276e-08    [Sex][Drug|Sex][W1][W2]
## 110. -176.5879   7.823591e-08    [Sex|Drug][Drug][W1|Sex][W2|Drug]
## 111. -176.5879   7.823591e-08    [Sex][Drug|Sex][W1|Sex][W2|Drug]
## 112. -176.6471   7.373909e-08    [Sex|Drug][Drug][W1|Sex][W2]
## 113. -176.6471   7.373909e-08    [Sex][Drug|Sex][W1|Sex][W2]
## 114. -176.863    5.942007e-08    [Sex][Drug][W1|Sex][W2|SexDrug]
## 115. -177.1331   4.535863e-08    [Sex|Drug][Drug][W1][W2|Sex]
## 116. -177.1331   4.535863e-08    [Sex][Drug|Sex][W1][W2|Sex]
## 117. -177.3214   3.757134e-08    [Sex|Drug][Drug][W1|Sex][W2|Sex]
## 118. -177.8827   2.143448e-08    [Sex|Drug][Drug][W1][W2|SexDrug]
## 119. -178.071    1.775455e-08    [Sex|Drug][Drug][W1|Sex][W2|SexDrug]
## 120. -178.071    1.775455e-08    [Sex][Drug|Sex][W1|Sex][W2|SexDrug]