This function checks the KKT conditions
kkt_check(eta, sigma2, beta, eigenvalues, x, y, nt, lambda, tol.kkt = 0.001) grr_sigma2(eta, sigma2, beta, eigenvalues, x, y, nt) grr_beta0(eta, sigma2, beta, eigenvalues, x, y, nt)
eta | current estimate of the eta parameter |
---|---|
sigma2 | current estimate of the sigma2 parameter |
beta | current estimate of the beta parameter including the intercept. this should be of length p+1, where p is the number of variables. |
eigenvalues | non-zero eigenvalues of the kinship matrix, or the square of the singular values of the matrix used to construct the kinship matrix |
x | rotated x. Should be U^T X, where U is the matrix of eigenvectors
and X contains the first column of ones for the intercept. x should be a
mtrix of dimension n x (p+1). These are outputted by the constructor
functions. See |
y | rotated y. Should be U^T Y, where U is the matrix of eigenvectors and Y is the response. |
nt | total number of observations |
lambda | A user supplied lambda sequence (this is the tuning parameter). Typical usage is to have the program compute its own lambda sequence based on nlambda and lambda.min.ratio. Supplying a value of lambda overrides this. WARNING: use with care. Do not supply a single value for lambda (for predictions after CV use predict() instead). Supply instead a decreasing sequence of lambda values. glmnet relies on its warms starts for speed, and its often faster to fit a whole path than compute a single fit. |
tol.kkt | Tolerance for determining if an entry of the subgradient is zero |
grr_sigma2
and grr_beta0
are functions for the gradient
of sigma2 and beta0, respectively