NAG Library Function Document
nag_lars_param (g02mcc)
1
Purpose
nag_lars_param (g02mcc) calculates additional parameter estimates following Least Angle Regression (LARS), forward stagewise linear regression or Least Absolute Shrinkage and Selection Operator (LASSO) as performed by
nag_lars (g02mac) and
nag_lars_xtx (g02mbc).
2
Specification
#include <nag.h> |
#include <nagg02.h> |
void |
nag_lars_param (Integer nstep,
Integer ip,
const double b[],
Integer pdb,
const double fitsum[],
Nag_LARSTargetType ktype,
const double nk[],
Integer lnk,
double nb[],
Integer pdnb,
NagError *fail) |
|
3
Description
nag_lars (g02mac) and
nag_lars_xtx (g02mbc) fit either a LARS, forward stagewise linear regression, LASSO or positive LASSO model to a vector of
observed values,
and an
design matrix
, where the
th column of
is given by the
th independent variable
. The models are fit using the LARS algorithm of
Efron et al. (2004).
Figure 1
The full solution path for all four of these models follow a similar pattern where the parameter estimate for a given variable is piecewise linear. One such path, for a LARS model with six variables
can be seen in
Figure 1. Both
nag_lars (g02mac) and
nag_lars_xtx (g02mbc) return the vector of
parameter estimates,
, at
points along this path (so
). Each point corresponds to a step of the LARS algorithm. The number of steps taken depends on the model being fitted. In the case of a LARS model,
and each step corresponds to a new variable being included in the model. In the case of the LASSO models, each step corresponds to either a new variable being included in the model or an existing variable being removed from the model; the value of
is therefore no longer bound by the number of parameters. For forward stagewise linear regression, each step no longer corresponds to the addition or removal of a variable; therefore the number of possible steps is often markedly greater than for a corresponding LASSO model.
nag_lars_param (g02mcc) uses the piecewise linear nature of the solution path to predict the parameter estimates, , at a different point on this path. The location of the solution can either be defined in terms of a (fractional) step number or a function of the norm of the parameter estimates.
4
References
Efron B, Hastie T, Johnstone I and Tibshirani R (2004) Least Angle Regression The Annals of Statistics (Volume 32) 2 407–499
Hastie T, Tibshirani R and Friedman J (2001) The Elements of Statistical Learning: Data Mining, Inference and Prediction Springer (New York)
Tibshirani R (1996) Regression Shrinkage and Selection via the Lasso Journal of the Royal Statistics Society, Series B (Methodological) (Volume 58) 1 267–288
Weisberg S (1985) Applied Linear Regression Wiley
5
Arguments
- 1:
– IntegerInput
-
On entry:
, the number of steps carried out in the model fitting process, as returned by
nag_lars (g02mac) and
nag_lars_xtx (g02mbc).
Constraint:
.
- 2:
– IntegerInput
-
On entry:
, number of parameter estimates, as returned by
nag_lars (g02mac) and
nag_lars_xtx (g02mbc).
Constraint:
.
- 3:
– const doubleInput
-
Note: the dimension,
dim, of the array
b
must be at least
.
On entry:
the parameter estimates, as returned by
nag_lars (g02mac) and
nag_lars_xtx (g02mbc), with
, the parameter estimate for the
th variable, for
, at the
th step of the model fitting process.
Constraint:
b should be unchanged since the last call to
nag_lars (g02mac) or
nag_lars_xtx (g02mbc).
- 4:
– IntegerInput
-
On entry: the stride separating row elements in the two-dimensional data stored in the array
b.
Constraint:
.
- 5:
– const doubleInput
-
On entry: summaries of the model fitting process, as returned by
nag_lars (g02mac) and
nag_lars_xtx (g02mbc).
Constraint:
fitsum should be unchanged since the last call to
nag_lars (g02mac) or
nag_lars_xtx (g02mbc)..
- 6:
– Nag_LARSTargetTypeInput
-
On entry: indicates what target values are held in
nk.
- nk holds (fractional) LARS step numbers.
- nk holds values for norm of the (scaled) parameters.
- nk holds ratios with respect to the largest (scaled) norm.
- nk holds values for the norm of the (unscaled) parameters.
- nk holds ratios with respect to the largest (unscaled) norm.
If
nag_lars (g02mac) was called with
or
or
nag_lars_xtx (g02mbc) was called with
then the model fitting routine did not rescale the independent variables,
, prior to fitting the model and therefore there is no difference between
or
and
or
.
Constraint:
, , , or .
- 7:
– const doubleInput
-
On entry: target values used for predicting the new set of parameter estimates.
Constraints:
- if , , for ;
- if , , for ;
- if or , , for ;
- if , , for .
- 8:
– IntegerInput
-
On entry: number of values supplied in
nk.
Constraint:
.
- 9:
– doubleOutput
-
Note: the dimension,
dim, of the array
nb
must be at least
.
On exit: the predicted parameter estimates, with , the parameter estimate for variable , at the point in the fitting process associated with , .
- 10:
– IntegerInput
-
On entry: the stride separating row elements in the two-dimensional data stored in the array
nb.
Constraint:
.
- 11:
– NagError *Input/Output
-
The NAG error argument (see
Section 3.7 in How to Use the NAG Library and its Documentation).
6
Error Indicators and Warnings
- NE_ALLOC_FAIL
-
Dynamic memory allocation failed.
See
Section 2.3.1.2 in How to Use the NAG Library and its Documentation for further information.
- NE_ARRAY_SIZE
-
On entry, and
Constraint: .
On entry, and .
Constraint: .
- NE_BAD_PARAM
-
On entry, argument had an illegal value.
- NE_INT
-
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
- NE_INTERNAL_ERROR
-
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact
NAG for assistance.
See
Section 2.7.6 in How to Use the NAG Library and its Documentation for further information.
- NE_NO_LICENCE
-
Your licence key may have expired or may not have been installed correctly.
See
Section 2.7.5 in How to Use the NAG Library and its Documentation for further information.
- NE_OUT_OF_RANGE
-
On entry, or , .
Constraint: for all .
On entry, , , and .
Constraint: for all .
On entry, , and
Constraint: for all .
On entry, , and
Constraint: for all .
- NE_REAL_ARRAY
-
b has been corrupted since the last call to
nag_lars (g02mac) or
nag_lars_xtx (g02mbc).
fitsum has been corrupted since the last call to
nag_lars (g02mac) or
nag_lars_xtx (g02mbc).
7
Accuracy
Not applicable.
None.
9
Example
This example performs a LARS on a set a simulated dataset with observations and independent variables.
Additional parameter estimates are obtained corresponding to a LARS step number of and . Where, for example, corresponds to the solution halfway between that obtained at step and that obtained at step .
9.1
Program Text
Program Text (g02mcce.c)
9.2
Program Data
Program Data (g02mcce.d)
9.3
Program Results
Program Results (g02mcce.r)