NAG C Library Function Document
nag_regsn_mult_linear_newyvar (g02dgc)
1
Purpose
nag_regsn_mult_linear_newyvar (g02dgc) calculates the estimates of the arguments of a general linear regression model for a new dependent variable after a call to
nag_regsn_mult_linear (g02dac).
2
Specification
#include <nag.h> |
#include <nagg02.h> |
void |
nag_regsn_mult_linear_newyvar (Integer n,
const double wt[],
double *rss,
Integer ip,
Integer rank,
double cov[],
double q[],
Integer tdq,
Nag_Boolean svd,
const double p[],
const double y[],
double b[],
double se[],
double res[],
const double com_ar[],
NagError *fail) |
|
3
Description
nag_regsn_mult_linear_newyvar (g02dgc) uses the results given by
nag_regsn_mult_linear (g02dac) to fit the same set of independent variables to a new dependent variable.
nag_regsn_mult_linear (g02dac) computes a
decomposition of the matrix of
independent variables and also, if the model is not of full rank, a singular value decomposition (SVD). These results can be used to compute estimates of the arguments for a general linear model with a new dependent variable. The
decomposition leads to the formation of an upper triangular
by
matrix
and an
by
orthogonal matrix
. In addition the vector
(or
) is computed. For a new dependent variable,
,
nag_regsn_mult_linear_newyvar (g02dgc) computes a new value of
or
.
If is of full rank, then the least squares parameter estimates, , are the solution to: , where is the first elements of .
If
is not of full rank, then
nag_regsn_mult_linear (g02dac) will have computed the SVD of
,
where
is a
by
diagonal matrix with nonzero diagonal elements,
being the rank of
, and
and
are
by
orthogonal matrices. This gives the solution
being the first
columns of
, i.e.,
and
being the first
columns of
. Details of the SVD are made available by
nag_regsn_mult_linear (g02dac) in the form of the matrix
:
The matrix
is made available through the
com_ar argument of
nag_regsn_mult_linear (g02dac).
In addition to parameter estimates, the new residuals are computed and the variance-covariance matrix of the parameter estimates are found by scaling the variance-covariance matrix for the original regression.
4
References
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
Searle S R (1971) Linear Models Wiley
5
Arguments
- 1:
– IntegerInput
-
On entry: the number of observations, .
Constraint:
.
- 2:
– const doubleInput
-
On entry: optionally, the weights to be used in the weighted regression.
If
, then the
th observation is not included in the model, in which case the effective number of observations is the number of observations with nonzero weights. The values of
res and
h will be set to zero for observations with zero weights (see
nag_regsn_mult_linear (g02dac)).
If weights are not provided then
wt must be set to
NULL and the effective number of observations is
n.
Constraint:
if , , for .
-
On entry: the residual sum of squares for the original dependent variable.
On exit: the residual sum of squares for the new dependent variable.
- 4:
– IntegerInput
-
On entry: the number of independent variables in the model (including the mean if fitted).
Constraint:
.
- 5:
– IntegerInput
-
On entry: the rank of the independent variables, as given by
nag_regsn_mult_linear (g02dac).
Constraint:
and if , otherwise .
- 6:
– doubleInput/Output
-
On entry: the covariance matrix of the parameter estimates as given by
nag_regsn_mult_linear (g02dac).
On exit: the upper triangular part of the variance-covariance matrix of the
ip parameter estimates given in
b. They are stored packed by column, i.e., the covariance between the parameter estimate given in
and the parameter estimate given in
,
, is stored in
for
and
.
- 7:
– doubleInput/Output
-
Note: the th element of the matrix is stored in .
On entry: the results of the
decomposition as returned by
nag_regsn_mult_linear (g02dac).
On exit: the first column of
q contains the new values of
, the remainder of
q will be unchanged.
- 8:
– IntegerInput
-
On entry: the stride separating matrix column elements in the array
q.
Constraint:
.
- 9:
– Nag_BooleanInput
-
On entry: indicates if a singular value decomposition was used by
nag_regsn_mult_linear (g02dac).
- A singular value decomposition was used by nag_regsn_mult_linear (g02dac).
- A singular value decomposition was not used by nag_regsn_mult_linear (g02dac).
- 10:
– const doubleInput
-
On entry: details of the
decomposition and SVD, if used, as returned in array
p by
nag_regsn_mult_linear (g02dac).
If
, only the first
ip elements of
p are used, these
will contain details of the Householder vector in the
decomposition (
Sections 2.2.1 and
3.3.6 in the f08 Chapter Introduction).
If
, the first
ip elements of
p
will contain details of the Householder vector in the
decomposition (
Sections 2.2.1 and
3.3.6 in the f08 Chapter Introduction) and the next
ip elements of
p contain singular values. The following
ip by
ip elements contain the matrix
stored by rows.
- 11:
– const doubleInput
-
On entry: the new dependent variable .
- 12:
– doubleOutput
-
On exit: , contain the least squares estimates of the arguments of the regression model, .
- 13:
– doubleOutput
-
On exit:
,
contain the standard errors of the
ip parameter estimates given in
b.
- 14:
– doubleOutput
-
On exit: the residuals for the new regression model.
- 15:
– const doubleInput
-
On entry: if
,
com_ar must be unaltered from the previous call to
nag_regsn_mult_linear (g02dac).
- 16:
– 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_2_INT_ARG_LT
-
On entry, while . These arguments must satisfy .
On entry, while . These arguments must satisfy .
- NE_INT_ARG_LE
-
On entry, .
Constraint: .
- NE_INT_ARG_LT
-
On entry, .
Constraint: .
- NE_REAL_ARG_LE
-
On entry,
rss must not be less than or equal to 0.0:
.
- NE_REAL_ARG_LT
-
On entry, must not be less than 0.0: .
- NE_SVD_RANK_GT_IP
-
On entry, the Boolean variable,
svd, is Nag_TRUE and
rank must not be greater than
ip:
rank =
,
.
- NE_SVD_RANK_NE_IP
-
On entry, the Boolean variable,
svd, is Nag_FALSE and
rank must be equal to
ip:
,
.
7
Accuracy
The same accuracy as
nag_regsn_mult_linear (g02dac) is obtained.
8
Parallelism and Performance
nag_regsn_mult_linear_newyvar (g02dgc) is not threaded in any implementation.
The values of the leverages,
, are unaltered by a change in the dependent variable so a call to
nag_regsn_std_resid_influence (g02fac) can be made using the value of
h from
nag_regsn_mult_linear (g02dac).
9.1
Internal Changes
Internal changes have been made to this function as follows:
- At Mark 26.1: The documented minimum length of the array argument com_ar was too large. The documented minimum length was given as but the actual minimum length is which is much less for non-trivial cases, .
In addition, provided example programs that called nag_regsn_mult_linear_newyvar (g02dgc) allocated lengths of for the array argument, which was also larger than necessary for non-trivial problems.
The
nag_regsn_mult_linear_newyvar (g02dgc) routine document has been updated to document the actual minimum length requirement for
com_ar, and those example programs that call
nag_regsn_mult_linear_newyvar (g02dgc) have been updated to allocate the actual minimum length required for
com_ar.
For details of all known issues which have been reported for the NAG Library please refer to the
Known Issues list.
10
Example
A dataset consisting of 12 observations with four independent variables and two dependent variables is read in. A model with all four independent variables is fitted to the first dependent variable by
nag_regsn_mult_linear (g02dac) and the results printed. The model is then fitted to the second dependent variable by
nag_regsn_mult_linear_newyvar (g02dgc) and those results printed.
10.1
Program Text
Program Text (g02dgce.c)
10.2
Program Data
Program Data (g02dgce.d)
10.3
Program Results
Program Results (g02dgce.r)