NAG FL Interface
g02ecf (linregm_​rssq_​stat)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

g02ecf calculates R2 and Cp-values from the residual sums of squares for a series of linear regression models.

2 Specification

Fortran Interface
Subroutine g02ecf ( mean, n, sigsq, tss, nmod, nterms, rss, rsq, cp, ifail)
Integer, Intent (In) :: n, nmod, nterms(nmod)
Integer, Intent (Inout) :: ifail
Real (Kind=nag_wp), Intent (In) :: sigsq, tss, rss(nmod)
Real (Kind=nag_wp), Intent (Out) :: rsq(nmod), cp(nmod)
Character (1), Intent (In) :: mean
C Header Interface
#include <nag.h>
void  g02ecf_ (const char *mean, const Integer *n, const double *sigsq, const double *tss, const Integer *nmod, const Integer nterms[], const double rss[], double rsq[], double cp[], Integer *ifail, const Charlen length_mean)
The routine may be called by the names g02ecf or nagf_correg_linregm_rssq_stat.

3 Description

When selecting a linear regression model for a set of n observations a balance has to be found between the number of independent variables in the model and fit as measured by the residual sum of squares. The more variables included the smaller will be the residual sum of squares. Two statistics can help in selecting the best model.
  1. (a)R2 represents the proportion of variation in the dependent variable that is explained by the independent variables.
    R2=Regression Sum of SquaresTotal Sum of Squares,  
    where Total Sum of Squares=tss= (y-y¯) 2 (if mean is fitted, otherwise tss=y2) and
    Regression Sum of Squares=RegSS=tss-rss, where
    rss=residual sum of squares= (y-y^) 2.
    The R2-values can be examined to find a model with a high R2-value but with small number of independent variables.
  2. (b)Cp statistic.
    Cp=rssσ^2 -(n-2p),  
    where p is the number of parameters (including the mean) in the model and σ^2 is an estimate of the true variance of the errors. This can often be obtained from fitting the full model.
    A well fitting model will have Cpp. Cp is often plotted against p to see which models are closest to the Cp=p line.
g02ecf may be called after g02eaf which calculates the residual sums of squares for all possible linear regression models.

4 References

Draper N R and Smith H (1985) Applied Regression Analysis (2nd Edition) Wiley
Weisberg S (1985) Applied Linear Regression Wiley

5 Arguments

1: mean Character(1) Input
On entry: indicates if a mean term is to be included.
mean='M'
A mean term, intercept, will be included in the model.
mean='Z'
The model will pass through the origin, zero-point.
Constraint: mean='M' or 'Z'.
2: n Integer Input
On entry: n, the number of observations used in the regression model.
Constraint: n must be greater than 2×pmax, where pmax is the largest number of independent variables fitted (including the mean if fitted).
3: sigsq Real (Kind=nag_wp) Input
On entry: the best estimate of true variance of the errors, σ^2.
Constraint: sigsq>0.0.
4: tss Real (Kind=nag_wp) Input
On entry: the total sum of squares for the regression model.
Constraint: tss>0.0.
5: nmod Integer Input
On entry: the number of regression models.
Constraint: nmod>0.
6: nterms(nmod) Integer array Input
On entry: nterms(i) must contain the number of independent variables (not counting the mean) fitted to the ith model, for i=1,2,,nmod.
7: rss(nmod) Real (Kind=nag_wp) array Input
On entry: rss(i) must contain the residual sum of squares for the ith model.
Constraint: rss(i)tss, for i=1,2,,nmod.
8: rsq(nmod) Real (Kind=nag_wp) array Output
On exit: rsq(i) contains the R2-value for the ith model, for i=1,2,,nmod.
9: cp(nmod) Real (Kind=nag_wp) array Output
On exit: cp(i) contains the Cp-value for the ith model, for i=1,2,,nmod.
10: ifail Integer Input/Output
On entry: ifail must be set to 0, −1 or 1 to set behaviour on detection of an error; these values have no effect when no error is detected.
A value of 0 causes the printing of an error message and program execution will be halted; otherwise program execution continues. A value of −1 means that an error message is printed while a value of 1 means that it is not.
If halting is not appropriate, the value −1 or 1 is recommended. If message printing is undesirable, then the value 1 is recommended. Otherwise, the value 0 is recommended. When the value -1 or 1 is used it is essential to test the value of ifail on exit.
On exit: ifail=0 unless the routine detects an error or a warning has been flagged (see Section 6).

6 Error Indicators and Warnings

If on entry ifail=0 or −1, explanatory error messages are output on the current error message unit (as defined by x04aaf).
Errors or warnings detected by the routine:
ifail=1
On entry, mean=value.
Constraint: mean='M' or 'Z'.
On entry, nmod=value.
Constraint: nmod>0.
On entry, sigsq=value.
Constraint: sigsq>0.0.
On entry, tss=value.
Constraint: tss>0.0.
ifail=2
On entry: the number of parameters, p, is value and n=value.
Constraint: n2p.
ifail=3
On entry, rss(value)=value and tss=value.
Constraint: rss(i)tss, for all i.
ifail=4
A value of Cp is less than 0.0. This may occur if sigsq is too large or if rss, n or IP are incorrect.
ifail=-99
An unexpected error has been triggered by this routine. Please contact NAG.
See Section 7 in the Introduction to the NAG Library FL Interface for further information.
ifail=-399
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library FL Interface for further information.
ifail=-999
Dynamic memory allocation failed.
See Section 9 in the Introduction to the NAG Library FL Interface for further information.

7 Accuracy

Accuracy is sufficient for all practical purposes.

8 Parallelism and Performance

Background information to multithreading can be found in the Multithreading documentation.
g02ecf is not threaded in any implementation.

9 Further Comments

None.

10 Example

The data, from an oxygen uptake experiment, is given by Weisberg (1985). The independent and dependent variables are read and the residual sums of squares for all possible models computed using g02eaf. The values of R2 and Cp are then computed and printed along with the names of variables in the models.

10.1 Program Text

Program Text (g02ecfe.f90)

10.2 Program Data

Program Data (g02ecfe.d)

10.3 Program Results

Program Results (g02ecfe.r)