plr {stepPlr}R Documentation

Logistic regression with a quadratic penalization on the coefficients

Description

This function fits a logistic regression model penalizing the size of the L2 norm of the coefficients.

Usage

  plr(x, y, weights = rep(1,length(y)), lambda = 1e-4, cp = "bic")

Arguments

x matrix of features
y binary response
weights an optional vector of weights for observations
lambda regularization parameter for the L2 norm of the coefficients. The minimizing criterion in plr is -log-likelihood+λ*|β|^2. Default is lambda=1e-4.
cp complexity parameter to be used when computing the score. score=deviance+cp*df. If cp="aic" or cp="bic", these are converted to cp=2 and cp=log(sample size), respectively. Default is cp="bic".

Details

We proposed using logistic regression with a quadratic penalization on the coefficients for detecting gene interactions as described in "Penalized Logistic Regression for Detecting Gene Interactions (2006)" by Park and Hastie. However, this function plr may be used for a general purpose.

We thank Michael Saunders of SOL, Stanford University for providing the solver used for the convex optimization in this function.

Value

A plr object is returned. predict, print, and summary functions can be applied.

coefficients vector of the coefficient estimates
covariance a sandwich estimate of the covariance matrix for the coefficients
deviance deviance of the fitted model
null.deviance deviance of the null model
df degrees of freedom of the fitted model
score deviance + cp*df
nobs number of observations
cp complexity parameter used when computing the score
fitted.values fitted probabilities
linear.predictors linear predictors computed with the estimated coefficients
level If any categorical factors are input, level - the list of level sets - is automatically generated and returned. See step.plr for details of how it is generated.

Author(s)

Mee Young Park and Trevor Hastie

References

Mee Young Park and Trevor Hastie (2006) Penalized Logistic Regression for Detecting Gene Interactions - available at the authors' websites, http://stat.stanford.edu/~mypark or http://stat.stanford.edu/~hastie/pub.htm.

See Also

predict.plr, step.plr

Examples

n <- 100

p <- 10
x <- matrix(rnorm(n*p),nrow=n)
y <- sample(c(0,1),n,replace=TRUE)
fit <- plr(x,y,lambda=1)

p <- 3
z <- matrix(sample(seq(3),n*p,replace=TRUE),nrow=n)
x <- data.frame(x1=factor(z[ ,1]),x2=factor(z[ ,2]),x3=factor(z[ ,3]))
y <- sample(c(0,1),n,replace=TRUE)
fit <- plr(x,y,lambda=1)
# 'level' is automatically generated. Check 'fit$level'.

[Package stepPlr version 0.91 Index]