plr {stepPlr} | R Documentation |
This function fits a logistic regression model penalizing the size of the L2 norm of the coefficients.
plr(x, y, weights = rep(1,length(y)), lambda = 1e-4, cp = "bic")
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".
|
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.
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.
|
Mee Young Park and Trevor Hastie
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.
predict.plr, step.plr
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'.