ModProb {BVSNLP} | R Documentation |
Logarithm of unnormalized probability of a given model
Description
This function calculates the logarithm of unnormalized probability of a given set of covariates for both survival and binary response data. It uses the inverse moment nonlocal prior (iMOM) for non zero coefficients and beta binomial prior for the model space.
Usage
ModProb(
X,
resp,
mod_cols,
nlptype = "piMOM",
tau,
r,
a,
b,
family = c("logistic", "survival")
)
Arguments
X |
The design matrix. It is assumed that the design matrix has
standardized columns. It is recommended that to use the output of
|
resp |
For logistic regression models, this variable is the binary response vector. For Cox proportional hazard models this is a two column matrix where the first column contains the survival time vector and the second column is the censoring status for each observation. |
mod_cols |
A vector of column indices of the design matrix, representing the model. |
nlptype |
Determines the type of nonlocal prior that is used in the analyses. It can be "piMOM" for product inverse moment prior, or "pMOM" for product moment prior. The default is set to piMOM prior. |
tau |
Hyperparameter |
r |
Hyperparameter |
a |
First parameter in the beta binomial prior. |
b |
Second parameter in the beta binomial prior. |
family |
Determines the type of data analysis. |
Value
It returns the unnormalized probability for the selected model.
Author(s)
Amir Nikooienejad
References
Nikooienejad, A., Wang, W., and Johnson, V. E. (2016). Bayesian
variable selection for binary outcomes in high dimensional genomic studies
using nonlocal priors. Bioinformatics, 32(9), 1338-1345.
Nikooienejad, A., Wang, W., & Johnson, V. E. (2020). Bayesian variable
selection for survival data using inverse moment priors. Annals of Applied
Statistics, 14(2), 809-828.
See Also
Examples
### Simulating Logistic Regression Data
n <- 400
p <- 1000
set.seed(123)
Sigma <- diag(p)
full <- matrix(c(rep(0.5, p*p)), ncol=p)
Sigma <- full + 0.5*Sigma
cholS <- chol(Sigma)
Beta <- c(1,1.8,2.5)
X = matrix(rnorm(n*p), ncol=p)
X = X%*%cholS
beta <- numeric(p)
beta[c(1:length(Beta))] <- Beta
XB <- X%*%beta
probs <- as.vector(exp(XB)/(1+exp(XB)))
y <- rbinom(n,1,probs)
### Calling the function for a subset of the true model, with an arbitrary
### parameters for prior densities
mod <- c(1:3)
Mprob <- ModProb(X, y, mod, tau = 0.7, r = 1, a = 7, b = 993,
family = "logistic")
Mprob