stat.lasso_lambdadiff_bin {knockoff} | R Documentation |
Importance statistics based on regularized logistic regression
Description
Fit the lasso path and computes the difference statistic
where and
are the maximum values of the
regularization parameter
at which the jth variable
and its knockoff enter the penalized logistic regression model, respectively.
Usage
stat.lasso_lambdadiff_bin(X, X_k, y, ...)
Arguments
X |
n-by-p matrix of original variables. |
X_k |
n-by-p matrix of knockoff variables. |
y |
vector of length n, containing the response variables. It should be either a factor with two levels, or a two-column matrix of counts or proportions (the second column is treated as the target class; for a factor, the last level in alphabetical order is the target class). If y is presented as a vector, it will be coerced into a factor. |
... |
additional arguments specific to |
Details
This function uses glmnet
to compute the lasso path
on a fine grid of 's.
The nlambda
parameter can be used to control the granularity of the
grid of 's. The default value of
nlambda
is 500
.
This function is a wrapper around the more general stat.glmnet_lambdadiff
.
For a complete list of the available additional arguments, see glmnet
or lars
.
Value
A vector of statistics of length p.
See Also
Other statistics:
stat.forward_selection()
,
stat.glmnet_coefdiff()
,
stat.glmnet_lambdadiff()
,
stat.lasso_coefdiff_bin()
,
stat.lasso_coefdiff()
,
stat.lasso_lambdadiff()
,
stat.random_forest()
,
stat.sqrt_lasso()
,
stat.stability_selection()
Examples
set.seed(2022)
p=200; n=100; k=15
mu = rep(0,p); Sigma = diag(p)
X = matrix(rnorm(n*p),n)
nonzero = sample(p, k)
beta = 3.5 * (1:p %in% nonzero)
pr = 1/(1+exp(-X %*% beta))
y = rbinom(n,1,pr)
knockoffs = function(X) create.gaussian(X, mu, Sigma)
# Basic usage with default arguments
result = knockoff.filter(X, y, knockoffs=knockoffs,
statistic=stat.lasso_lambdadiff_bin)
print(result$selected)
# Advanced usage with custom arguments
foo = stat.lasso_lambdadiff_bin
k_stat = function(X, X_k, y) foo(X, X_k, y, nlambda=200)
result = knockoff.filter(X, y, knockoffs=knockoffs, statistic=k_stat)
print(result$selected)