NAG C Library Function Document

nag_regsn_mult_linear_delete_var (g02dfc)


nag_regsn_mult_linear_delete_var (g02dfc) deletes an independent variable from a general linear regression model.


#include <nag.h>
#include <nagg02.h>
void  nag_regsn_mult_linear_delete_var (Integer ip, double q[], Integer tdq, Integer indx, double *rss, NagError *fail)


When selecting a linear regression model it is sometimes useful to drop independent variables from the model and to examine the resulting sub-model. nag_regsn_mult_linear_delete_var (g02dfc) updates the QR  decomposition used in the computation of the linear regression model. The QR  decomposition may come from nag_regsn_mult_linear (g02dac), nag_regsn_mult_linear_addrem_obs (g02dcc), nag_regsn_mult_linear_add_var (g02dec) or a previous call to nag_regsn_mult_linear_delete_var (g02dfc).
For the general linear regression model with p  independent variables fitted, nag_regsn_mult_linear (g02dac) or nag_regsn_mult_linear_add_var (g02dec) computes a QR  decomposition of the (weighted) independent variables and forms an upper triangular matrix R  and a vector c . To remove an independent variable R  and c  have to be updated. The column of R  corresponding to the variable to be dropped is removed and the matrix is then restored to upper triangular form by applying a series of Givens rotations. The rotations are then applied to c . Note that only the first p  elements of c  are affected.
The method used means that while the updated values of R  and c  are computed an updated value of Q  from the QR  decomposition is not available so a call to nag_regsn_mult_linear_add_var (g02dec) cannot be made after a call to nag_regsn_mult_linear_delete_var (g02dfc).
nag_regsn_mult_linear_upd_model (g02ddc) can be used to calculate the parameter estimates, β ^ , from the information provided by nag_regsn_mult_linear_delete_var (g02dfc).


Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore
Hammarling S (1985) The singular value decomposition in multivariate statistics SIGNUM Newsl. 20(3) 2–25


1:     ip IntegerInput
On entry: the number of independent variables already in the model, p .
Constraint: ip1 .
2:     q[ip×tdq] doubleInput/Output
Note: the i,jth element of the matrix Q is stored in q[i-1×tdq+j-1].
On entry: the results of the QR  decomposition as returned by nag_regsn_mult_linear (g02dac), nag_regsn_mult_linear_addrem_obs (g02dcc), nag_regsn_mult_linear_add_var (g02dec) or previous calls to nag_regsn_mult_linear_delete_var (g02dfc).
On exit: the updated QR  decomposition. The first ip elements of the first column of q contain the updated value of c , the upper triangular part of columns 2 to ip contain the updated R  matrix.
3:     tdq IntegerInput
On entry: the stride separating matrix column elements in the array q.
Constraint: tdq ip + 1 .
4:     indx IntegerInput
On entry: indicates which independent variable is to be deleted from the model.
Constraint: 1 indx ip .
5:     rss double *Input/Output
On entry: the residual sum of squares for the full regression.
Constraint: rss0.0 .
On exit: the residual sum of squares with the (indx)th variable removed. Note that the residual sum of squares will only be valid if the regression is of full rank.
6:     fail NagError *Input/Output
The NAG error argument (see Section 3.7 in How to Use the NAG Library and its Documentation).

Error Indicators and Warnings

On entry, indx=value  while ip=value . These arguments must satisfy indxip .
On entry, tdq=value  while ip + 1 = value. These arguments must satisfy tdq ip + 1 .
Dynamic memory allocation failed.
On entry, a diagonal element, value, of R  is zero.
On entry, indx=value.
Constraint: indx1.
On entry, ip=value.
Constraint: ip1.
On entry, rss must not be less than 0.0: rss=value .


There will inevitably be some loss in accuracy in fitting a model by dropping terms from a more complex model rather than fitting it afresh using nag_regsn_mult_linear (g02dac).

Parallelism and Performance

nag_regsn_mult_linear_delete_var (g02dfc) is not threaded in any implementation.

Further Comments



A dataset consisting of 12 observations on four independent variables and one dependent variable is read in. The full model, including a mean term, is fitted using nag_regsn_mult_linear (g02dac). The value of indx is read in and that variable dropped from the regression. The parameter estimates are calculated by nag_regsn_mult_linear_upd_model (g02ddc) and printed. This process is repeated until indx is 0.

Program Text

Program Text (g02dfce.c)

Program Data

Program Data (g02dfce.d)

Program Results

Program Results (g02dfce.r)