robertness
6/24/2017 - 9:07 PM

Xtabs to bn.fit object in bnlearn

Xtabs to bn.fit object in bnlearn

library(faraway)
library(bnlearn)
data(femsmoke)
mdl <- empty.graph(c("dead", "age", "smoker"))
modelstring(mdl) <- "[dead|age:smoker][age][smoker]"
counts <- xtabs(y ~ dead + age + smoker, femsmoke) 
cpt_age <- margin.table(counts, 2) %>% prop.table 
cpt_smoker <- margin.table(counts, 3) %>% prop.table 
cpt_dead <- counts
cpt_dead[, , 1] <- prop.table(counts[, , 1], 2) 
cpt_dead[, , 2] <- prop.table(counts[, , 2], 2) 
fit_mle <- custom.fit(mdl, dist = list(age = cpt_age,
                                   smoker = cpt_smoker,
                                   dead = cpt_dead))
fit <- bn.fit(mdl, rbn(fit_mle, n = sum(femsmoke$y)), method = "bayes")