View source: R/marginalLikelihood.R
| marginalLikelihood | R Documentation |
The marginal density of the data, i.e. the likelihood integrated with respect to the prior distribution on the regression coefficients of the variables included in the model.
marginalLikelihood(sel, y, x, data, smoothterms, nknots=9, groups=1:ncol(x),
family="normal", priorCoef, priorGroup,
priorVar=igprior(alpha=0.01,lambda=0.01), priorSkew=momprior(tau=0.348),
neighbours,
phi, method='auto', adj.overdisp='intercept', hess='asymp', optimMethod,
optim_maxit, initpar='none', B=10^5, logscale=TRUE, XtX, ytX)
sel |
Vector with indexes of columns in x to be included in the model.
Ignored if |
y |
Either a formula with the regression equation or a vector with
observed responses. The response can be either continuous or of class
|
x |
Design matrix with linear covariates for which we want to
assess if they have a linear effect on the response. Ignored if
|
data |
If |
smoothterms |
Formula for non-linear covariates (cubic splines),
modelSelection assesses if the variable has no effect, linear or
non-linear effect. |
nknots |
Number of spline knots. For cubic splines the non-linear
basis adds knots-4 coefficients for each linear term, we recommend
setting |
groups |
If variables in |
family |
Parametric distribution family. Possible values include
'normal','laplace', 'binomial', 'poisson', see function
|
priorCoef |
Prior on coefficients, created
by |
priorGroup |
Prior on grouped coefficients (e.g. categorical
predictors with >2 categories, splines). Created by
|
priorVar |
Inverse gamma prior on scale parameter, created by
|
priorSkew |
Either a number fixing tanh(alpha) where alpha is the
asymmetry parameter or a prior on residual skewness parameter,
assumed to be of
the same family as priorCoef. Ignored if |
neighbours |
Only used if priorCoef is an icarplus prior. neighbours is a list with the same length as the design matrix. Its entry j should be a vector indicating the neighbours of j, and have 0 length if j has no neighbours. |
method |
Method to approximate the integral. See
|
adj.overdisp |
Only used for method=='ALA'. Over-dispersion adjustment for models with fixed dispersion parameter such as logistic and Poisson regression |
hess |
Method to estimat the hessian in the Laplace approximation to the integrated likelihood under Laplace or asymmetric Laplace errors. When hess=='asymp' the asymptotic hessian is used, hess=='asympDiagAdj' a diagonal adjustment is applied (see Rossell and Rubio for details). |
optimMethod |
Algorithm to maximize objective function when method=='Laplace'. Leave unspecified or set optimMethod=='auto' for an automatic choice. optimMethod=='LMA' uses modified Newton-Raphson algorithm, 'CDA' coordinate descent algorithm |
optim_maxit |
Maximum number of iterations when method=='Laplace' |
initpar |
Initial regression parameter values when finding the posterior mode to approximate the integrated likelihood. See help(modelSelection) |
B |
Number of Monte Carlo samples to use (ignored unless
|
logscale |
If |
XtX |
Optionally, specify the matrix X'X. Useful when the function must be called a large number of times. |
ytX |
Optionally, specify the vector y'X. Useful when the function must be called a large number of times. |
phi |
If the disperson parameter (e.g. error variance) is known, it can be specified here. Leave blank unless you know what you're doing |
The marginal density of the data y under a given model is
p(y | model) int p(y | theta) d P(theta | model)
where P(theta | model) is the prior distribution on the parameters included by the model.
Marginal (or integrated) likelihood of the data under the specified prior.
David Rossell
modelSelection to perform model selection based
on product non-local priors.
x <- matrix(rnorm(100*2),ncol=2)
y <- x %*% matrix(c(.5,1),ncol=1) + rnorm(nrow(x))
#Marginal likelihood for 2 models under pMOM prior
marginalLikelihood(c(TRUE,FALSE), y=y, x=x, priorCoef=momprior())
marginalLikelihood(c(TRUE, TRUE), y=y, x=x, priorCoef=momprior())
#Same, under Normal prior with diagonal covariance
marginalLikelihood(c(TRUE,FALSE), y=y, x=x, priorCoef=normalidprior())
marginalLikelihood(c(TRUE, TRUE), y=y, x=x, priorCoef=normalidprior())
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.