Learn R Programming

knockoff (version 0.3.6)

stat.lasso_lambdasmax_bin: Penalized logistic regression statistics for knockoff

Description

Computes the signed maximum statistic $$W_j = \max(Z_j, \tilde{Z}_j) \cdot \mathrm{sgn}(Z_j - \tilde{Z}_j),$$ where \(Z_j\) and \(\tilde{Z}_j\) are the maximum values of \(\lambda\) at which the jth variable and its knockoff, respectively, enter the penalized logistic regression model.

Usage

stat.lasso_lambdasmax_bin(X, X_k, y, ...)

Value

A vector of statistics \(W\) of length p.

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 glmnet or lars (see Details).

Details

This function uses glmnet to compute the regularization path on a fine grid of \(\lambda\)'s.

The additional nlambda parameter can be used to control the granularity of the grid of \(\lambda\) values. 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.

Examples

Run this code
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, knockoff=knockoffs,
                           statistic=stat.lasso_lambdasmax_bin)
print(result$selected)

# Advanced usage with custom arguments
foo = stat.lasso_lambdasmax_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)

Run the code above in your browser using DataLab