Provides methods to perform and analyse I-prior regression models. Estimation is done either via direct optimisation of the log-likelihood or an EM algorithm.
Based on the manuscript entitled "Objective Bayes regression using I-priors" by Wicher Bergsma [2016, unpublished]. In a linear regression setting, priors can be assigned to the regression function using a vector space framework, and the posterior estimate of the regression function obtained. I-priors are a class of such priors based on the principle of maximum entropy.
This package performs linear regression modelling using I-priors in R. It is intuitively designed to be similar to
lm, with both formula and non-formula based input. The parameters of an I-prior model are the scale parameters of the reproducing kernel Hilbert space (RKHS) over the set of covariates,
lambda, and the standard deviation of model errors,
sigma. While the main interest of I-prior modelling is prediction, inference is also possible, e.g. via log-likelihood ratio tests.
For installation instructions and some examples of I-prior modelling, continue reading below. The package is documented with help files, and the wiki is a good source to view some discussion topics and further examples.
R/iprior makes use of several C++ code, so as a prerequisite, you must have a working C++ compiler. To get it:
sudo apt-get install r-base-devor similar.
Install R/iprior by downloading the latest CRAN release.
If you wish to install the latest developmental release, then you can do so by getting it from this GitHub repository. To do this, you must first install the devtools package.
Then, run the following code to install and attach the
To fit an I-prior model to
x, where these are contained in the data frame
dat, the following syntax are equivalent.
mod <- iprior(y ~ x, data = dat) # formula based inputmod <- iprior(y = dat$y, x = dat$x) # non-formula based input
The call to
iprior() can be accompanied by model options in the form of
model = list(), such as choosing the RKHS, number of scale parameters, and others. Control options for the EM algorithm fit is done through the option
control = list(). Find the full list of options by typing
?iprior in R.
Visit the the wiki page for some usage examples.
sigma()not being available from the
statspackage prior to R v3.3.0.
n > 1000. This is mainly due to the matrix multiplication and data storing process when the EM initialises. See issue #20.