Learn R Programming

R/iprior: An R package for I-prior regression

Based on the manuscript entitled "Regression and Classification with I-priors" by Wicher Bergsma (2018, arXiv:1707.00274). In a general regression setting, priors can be assigned to the regression function in a vector space framework, and the posterior estimate of the regression function obtained. An I-prior is defined as Gaussian with some prior mean (usually zero) and covariance kernel proportional to the Fisher information for the regression function.

This package performs regression modelling using I-priors in R. It is intuitively designed to be similar to lm, making use of familiar syntactical conventions and S3 methods, with both formula and non-formula based input. The package estimates these parameters using direct log-likelihood maximisation, the expectation-maximisation (EM) algorithm, or a combination of both. 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 vignette provides an introduction to the concept of I-priors and also to using the package.

Installation

Install R/iprior either by downloading the latest CRAN release

install.packages("iprior")
library(iprior)

or the developmental version from this GitHub repository. R/iprior makes use of several C++ code, so as a prerequisite, you must have a working C++ compiler. To get it:

  • On Windows, install Rtools.
  • On Mac, install Xcode from the app store.
  • On Linux, sudo apt-get install r-base-dev or similar.

The easiest way to then install from this repo is by using the devtools package. Install this first.

install.packages("devtools")

Then, run the following code to install and attach the iprior package.

devtools::install_github("haziqj/iprior", build_vignettes = TRUE)
library(iprior)

Syntax

To fit an I-prior model to mod regressing y against x, where these are contained in the data frame dat, the following syntax are equivalent.

mod <- iprior(y ~ x, data = dat)     # formula based input
mod <- iprior(y = dat$y, x = dat$x)  # non-formula based input

The call to iprior() can be accompanied by several other model specification arguments, including choosing the RKHS, hyperparameters to estimate, estimation method, and others. Control options for the estimation method of choice is done through the option control = list(). Find the full list of options by typing ?iprior in R.

Resources

View the package vignette by typing browseVignettes("iprior") in R or visiting this link. This package is part of the PhD project entitled "Regression Modelling using priors depending on Fisher information covariance kernels (I-priors)" by Haziq Jamil [link].

Copy Link

Version

Install

install.packages('iprior')

Monthly Downloads

206

Version

0.7.4

License

GPL (>= 3.0)

Issues

Pull Requests

Stars

Forks

Maintainer

Haziq Jamil

Last Published

April 1st, 2024

Functions in iprior (0.7.4)

gg_colour_hue

Emulate ggplot2 default colour palette
is.kern_x

Test kernel attributes
iprior

Fit an I-prior regression model
summary.ipriorMod

Print and summary method for I-prior models
iprior-package

iprior: Regression using priors with Fisher information covariance kernels.
logLik.ipriorMod

Obtain the log-likelihood and deviance of an I-prior model
kernel

Reproducing kernels for the I-prior package
tecator.cv

Results of I-prior cross-validation experiment on Tecator data set
iprior_cv

Perform a cross-validation experiment with the iprior function
as.time

Convert difftime class into time class
kernL

Load the kernel matrices for I-prior models
hsb

High school and beyond dataset
fastSquare

Multiplying a symmetric matrix by itself in C++.
is.iprior_x

Test iprior objects
predict

Obtain predicted values from ipriorMod objects
update.ipriorMod

Update an I-prior model
plot.ipriorMod

Plots for I-prior models
hsbsmall

High school and beyond dataset
pollution

Air pollution and mortality
sigma

Obtain the standard deviation of the residuals 'sigma'
fastVDiag

Computing a quadratic matrix form in C++.
eigenCpp

Eigen decomposition of a matrix in C++.
decimal_place

Cut a numeric vector to a certain number of decimal places
check_theta

Check the structure of the hyperparameters of an I-prior model
Accessors

Accessor functions for ipriorMod objects.
gen_smooth

Generate simulated data for smoothing models
gen_multilevel

Generate simulated data for multilevel models