LogicRegr {EMJMCMC} | R Documentation |
A wrapper for running the Bayesian logic regression based inference in a easy to use way
LogicRegr(
formula,
data,
family = "Gaussian",
prior = "J",
report.level = 0.5,
d = 20,
cmax = 5,
kmax = 20,
p.and = 0.9,
p.not = 0.05,
p.surv = 0.1,
ncores = -1,
n.mods = 1000,
print.freq = 1000L,
advanced = list(presearch = TRUE, locstop = FALSE, estimator =
estimate.logic.bern.tCCH, estimator.args = list(data = data.example, n = 1000, m =
50, r = 1), recalc_margin = 250, save.beta = FALSE, interact = TRUE, relations =
c("", "lgx2", "cos", "sigmoid", "tanh", "atan", "erf"), relations.prob = c(0.4, 0, 0,
0, 0, 0, 0), interact.param = list(allow_offsprings = 1, mutation_rate = 300,
last.mutation = 5000, max.tree.size = 1, Nvars.max = 100, p.allow.replace = 0.9,
p.allow.tree = 0.2, p.nor = 0.2, p.and = 1),
n.models = 10000, unique = TRUE,
max.cpu = ncores, max.cpu.glob = ncores, create.table = FALSE, create.hash = TRUE,
pseudo.paral = TRUE, burn.in = 50, outgraphs = FALSE, print.freq = print.freq,
advanced.param = list(max.N.glob = as.integer(10), min.N.glob = as.integer(5), max.N
= as.integer(3), min.N = as.integer(1), printable = FALSE))
)
formula |
a formula object for the model to be addressed |
data |
a data frame object containing variables and observations corresponding to the formula used |
family |
a string taking values of either "Gaussian" or "Bernoulli" corresponding to the linear or logistic Bayesian logic regression contexts |
prior |
character values "J" or "G" corresponding either to Jeffey's or robust g prior |
report.level |
a numeric value in (0,1) specifying the threshold for detections based on the marginal inclusion probabilities |
d |
population size for the GMJMCMC algorithm |
cmax |
the maximal allowed depth of logical expressions to be considered |
kmax |
the maximal number of logical expressions per model |
p.and |
probability of AND parameter of GMJMCMC algorithm |
p.not |
probability of applying logical NOT in GMJMCMC algorithm |
p.surv |
minimal survival probabilities for the features to be allowed to enter the next population |
ncores |
the maximal number of cores (and GMJMCMC threads) to be addressed in the analysis |
n.mods |
the number of the best models in the thread to calculate marginal inclusion probabilities |
print.freq |
printing frequency of the intermediate results |
advanced |
should only be addressed by experienced users to tune advanced parameters of GMJMCMC, advanced corresponds to the vector of tuning parameters of runemjmcmc function |
a list of
detected logical expressions and their marginal inclusion probabilities
NULL currently, since LogrRegr function is not designed for predictions at the moment, which is still possible in its expert mother function pinferunemjmcmc
all visited by GMJMCMC logical expressions and their marginal inclusion probabilities
a vector of detailed outputs of individual ncores threads of GMJMCMC run
runemjmcmc pinferunemjmcmc
set.seed(040590)
X1 <- as.data.frame(
array(
data = rbinom(n = 50 * 1000, size = 1,
prob = runif(n = 50 * 1000, 0, 1)), dim = c(1000, 50)
)
)
Y1 <- rnorm(
n = 1000,
mean = 1 + 0.7 * (X1$V1 * X1$V4) + 0.8896846 * (X1$V8 * X1$V11) + 1.434573 * (X1$V5 * X1$V9),
sd = 1
)
X1$Y1 <- Y1
# specify the initial formula
formula1 <- as.formula(
paste(colnames(X1)[51], "~ 1 +", paste0(colnames(X1)[-c(51)], collapse = "+"))
)
data.example <- as.data.frame(X1)
# run the inference with robust g prior
n_cores <- 1L
res4G <- LogicRegr(
formula = formula1, data = data.example, family = "Gaussian", prior = "G",
report.level = 0.5, d = 15, cmax = 2, kmax = 15, p.and = 0.9, p.not = 0.01,
p.surv = 0.2, ncores = n_cores
)
print(res4G$feat.stat)
# run the inference with Jeffrey's prior
res4J <- LogicRegr(
formula = formula1, data = data.example, family = "Gaussian", prior = "J",
report.level = 0.5, d = 15, cmax = 2, kmax = 15, p.and = 0.9, p.not = 0.01,
p.surv = 0.2, ncores = n_cores
)
print(res4J$feat.stat)