MMAE {BoolFilter}R Documentation

Multiple Model Adaptive Estimation


This function implements the Multiple Model Adaptive Estimation (MMAE) algorithm, which implements a bank of Boolean Kalman Filters running in parallel on a dataset in order to estimate model parameters.


MMAE(data, net, p, threshold, Prior = NA, obsModel = NA)



Data from which the MMAE algorithm should attempt to estimate parameters


A vector of potential networks, defined in the BoolNet loadNetwork vernacular, from which the MMAE algorithm should choose the most probable network for the given data in Y


A vector containing different possible intensities of Bernoulli process noise, from which the MMAE algorithm should choose the most likely


A posterior probability threshold value (between 0 and 1) for which the MMAE should stop running


A vector of the prior probabilities of the possible combinations of the various networks and process noise parameters input to the algorithm. The vector must be of size length(net)*length(p). The entries into the vector will follow the pattern:

net1, p1
net1, p2
netm, pn

where m is the total number of potential networks and n is the total number of the possible p values. The default prior ovse models is uniform.


Parameters for the chosen observation model.


The MMAE algorithm will return which network and process noise value is most likely to have generated the given dataset supplied in Y.

If the posterior probability for any of the combinations of networks and process noise parameters fails to surpass the value defined in the threshold variable, the algorithm will output that no decision could be made using the given data.


Imani, M., & Braga-Neto, U. (2015, November). Optimal gene regulatory network inference using the boolean kalman filter and multiple model adaptive estimation. In 2015 49th Asilomar Conference on Signals, Systems and Computers (pp. 423-427). IEEE.


#load potential networks

net1 <- p53net_DNAdsb0
net2 <- p53net_DNAdsb1

#define observation model
observation = list(type = 'NB', s = 10.875, mu = 0.01, delta = c(2, 2, 2, 2), phi = c(3, 3, 3, 3))

#simulate data using one of the networks and a given 'p'
data <- simulateNetwork(net1, = 100, p = 0.02, obsModel = observation)
#run MMAE to determine model selection and parameter estimation
MMAE(data, net=c("net1","net2"), p=c(0.02,0.1,0.15), threshold=0.8, obsModel = observation)

[Package BoolFilter version 1.0.0 Index]