groupbn_refinement {GroupBN} | R Documentation |
groupbn_refinement
Description
Adaptive Refinement of a group Bayesian Network using hierarchical Clustering
Usage
groupbn_refinement(res, hierarchy, refinement.part="mb", restart=0, perturb=1,
max.step=10, max.min=Inf, R=100,
return.all=FALSE, arc.thresh=NULL, debug=FALSE, seed=NULL)
Arguments
res |
an object of class groupbn |
hierarchy |
a cluster object from ClustOfVar |
refinement.part |
"mb", "mb2", "arc.confid" or "all", selects if the refinement steps should be done only within the markov blanket of the target variable (mb), within the second-order markov blanket (mb2), in all clusters with an arcconfidence to target >0 (arc.confid) or within all clusters (all). Default: "mb" |
restart |
a positive integer number, the number of restarts |
perturb |
a positive integer number, the number of perturbations (splits) in each restart |
max.step |
a positive integer number, the maximal number of refinement steps, default is 10 |
max.min |
a positive integer number, the maximal run time in minutes, default is unlimited |
R |
number of bootstrap replicates for model averaging, default is 100 |
return.all |
a boolean, if TRUE, the output is a whole list of group models, if FALSE, the output is only the best-scoring model. |
arc.thresh |
threshold for bootstrap arcs |
debug |
a boolean, if TRUE, debugging messages are printed |
seed |
a random seed number |
Details
Based on a variable grouping, data are aggregated and a Bayesian network is learned. The target variable is kept separated during this procedure, so that the resulting network model can be used for risk prediction and classification. Starting from a coarse group network, groups are iteratively refined to smaller groups. The heuristic refinement happens downwards along the dendrogram, and stops, if it no longer improves the predictive performance of the model. The refinement part is implemented using a hill-climbing procedure.
Value
returns an object of class groupbn
Author(s)
Ann-Kristin Becker
References
Becker A-K, Dörr M, Felix SB, Frost F, Grabe HJ, Lerch MM, et al. (2021) From heterogeneous healthcare data to disease-specific biomarker networks: A hierarchical Bayesian network approach. PLoS Comput Biol 17(2): e1008735. https://doi.org/10.1371/journal.pcbi.1008735
See Also
Examples
#load example data
data(wine)
wine.test<-wine[wine$Soil%in%c("Reference", "Env1"),1:29]
wine.test$Soil<-factor(wine.test$Soil)
levels(wine.test$Soil)<-c("0", "1")
#cluster data
hierarchy<-hclustvar(X.quanti=wine.test[,3:29], X.quali=wine.test[,1:2])
#Learn group network among 5 clusters with "Soil" as target variable
wine.groupbn<-groupbn(hierarchy, k=5, target="Soil", separate=NULL,
X.quanti=wine.test[,3:29], X.quali=wine.test[,1:2], seed=321)
#Do one refinement step
#Set max.step higher to optimize completely
wine.groupbn.refined<-groupbn_refinement(wine.groupbn, hierarchy,
refinement.part="mb", max.step = 1, seed=321)
#Plot refined network
plot(wine.groupbn.refined)