# NOT RUN {
##############################
## Example 1
##############################
## this data comes with abn see ?ex1.dag.data
mydat <- ex1.dag.data
## setup distribution list for each node
mydists <- list(b1="binomial", p1="poisson", g1="gaussian", b2="binomial",
p2="poisson", b3="binomial", g2="gaussian", b4="binomial",
b5="binomial", g3="gaussian")
## assum no constraints in ban nor retain
## parent limits
max.par <- list("b1"=4,"p1"=4,"g1"=4,"b2"=4,"p2"=4,"b3"=4,"g2"=4,"b4"=4,"b5"=4,"g3"=4)
## now build cache
mycache <- buildscorecache(data.df = mydat, data.dists = mydists, max.parents = max.par)
## Find the globally best DAG
mp.dag <- mostprobable(score.cache=mycache)
fitabn(object=mp.dag)$mlik
## plot the best model
myres <- fitabn(object=mp.dag,create.graph=TRUE)
plotabn(dag.m = mp.dag$dag, data.dists = mydists)#, fitted.values.abn = myres)
## fit the known true DAG
true.dag <- matrix(data=0,ncol=10, nrow = 10)
colnames(true.dag) <- rownames(true.dag) <- names(mydists)
true.dag["p2",c("b1","p1")] <- 1
true.dag["b3",c("b1","g1","b2")] <- 1
true.dag["g2",c("p1","g1","b2")] <- 1
true.dag["b4",c("g1","p2")] <- 1
true.dag["b5",c("g1","g2")] <- 1
true.dag["g3",c("g1","b2")] <- 1
fitabn(dag.m = true.dag, data.df = mydat, data.dists=mydists)$mlik
#################################################################
## Example 2 - models with random effects
#################################################################
## this data comes with abn see ?ex3.dag.data
# mydat <- ex3.dag.data[,c(1:4,14)]
# mydists <- list(b1="binomial", b2="binomial", b3="binomial",
# b4="binomial")
## This takes a few seconds
# mycache.mixed <- buildscorecache(data.df = mydat, data.dists = mydists,
# group.var = "group", cor.vars = c("b1","b2","b3","b4"),
# max.parents=2, which.nodes=c(1:4))
## find the most probable DAG
# mp.dag <- mostprobable(score.cache=mycache.mixed)
## get goodness of fit
# fitabn(object = mp.dag, data.df = mydat, data.dists = mydists,
# group.var = "group", cor.vars = c("b1","b2","b3","b4"))$mlik
# }
Run the code above in your browser using DataLab