Computes a lack of fit test based on exact replicates for a fitted regression model.
X — NOBS by NCOL matrix containing the data. (Input)
IREP — Variable option. (Input)
IREP Meaning
< 0 The first −IREP columns of X contain the variables used to determine exact replicates.
> 0 The IREP variables used to determine exact replicates are specified by the column numbers in INDREP.
0 The exact replicates are specified in IGROUP.
INDREP — Index
vector of length IREP containing the
column numbers of X that are the
variables used to determine replication. (Input, if IREP is positive)
If IREP is
less than or equal to 0, INDREP is not
referenced and can be a vector of length one.
IRSP — Column number IRSP of X contains data for the response (dependent) variable. (Input)
DFE — Degrees of freedom for error from the fitted regression. (Input)
SSE — Sum of squares for error from the fitted regression. (Input)
IGROUP — Vector
of length NOBS
specifying group numbers. (Output, if IREP is nonzero;
input, if IREP =
0)
On output, IGROUP(I) = J means row I of X is in the J-th group of
replicates
(J = 0, 1, 2,
…, NGROUP). Here, J = 0 indicates the
group of observations not used in the analysis because NaN (not a number) was input for one of
more of the values of the response, replication, frequency, or weight variables.
On input,
IGROUP(I) = IGROUP(K), K ≠ I, indicates that row
I and row K of X are in the same
group. IGROUP(I) must equal 0 if row
I of X has NaN as one or more of the values of the
response, replication, frequency, or weight variables.
NGROUP — Number number of groups in the lack of fit test. (Output)
TESTLF — Vector of length 10 containing statistics relating to the test for lack of fit of the model. (Output)
Elem |
Description |
1 |
Degrees of freedom for lack of fit |
2 |
Degrees of freedom for pure error |
3 |
Degrees of freedom for error (TESTLF(1)+ TESTLF(2)) |
4 |
Sum of squares for lack of fit |
5 |
Sum of squares for pure error |
6 |
Sum of squares for error |
7 |
Mean square for lack of fit |
8 |
Mean square for pure error |
9 |
F statistic |
10 |
p-value |
If there are no replicates in the data set, a test for lack of fit cannot be performed. In this case, elements 8, 9, and 10 of TESTLF are set to NaN (not a number).
NOBS — Number of
observations. (Input)
Default: NOBS = size (X,1).
NCOL — Number of
columns in X.
(Input)
Default: NCOL = size (X,2).
LDX — Leading
dimension of X
exactly as specified in the dimension statement in the calling
program. (Input)
Default: LDX = size (X,1).
IFRQ — Frequency
option. (Input)
IFRQ = 0 means that
all frequencies are 1.0. For positive IFRQ, column number
IFRQ of X contains the
frequencies.
Default: IFRQ = 0.
IWT — Weighting
option. (Input)
IWT = 0 means that all
weights are 1.0. For positive IWT, column number
IWT of X contains the
weights.
Default: IWT = 0.
Generic: CALL RLOFE (X, IREP, INDREP, IRSP, DFE, SSE, IGROUP, NGROUP, TESTLF [,…])
Specific: The specific interface names are S_RLOFE and D_RLOFE.
Single: CALL RLOFE (NOBS, NCOL, X, LDX, IREP, INDREP, IRSP, IFRQ, IWT, DFE, SSE, IGROUP, NGROUP, TESTLF)
Double: The double precision name is DRLOFE.
Routine RLOFE computes a lack of fit test based on exact replicates for a fitted regression model. The data need not be sorted prior to invoking RLOFE. The column indices of X for determining exact replicates can be input in INDREP. If the groups of exact replicates are known prior to invoking RLOFE, the option IREP = 0 allows RLOFE to bypass the computation of the groups. This option is particularly useful for computing a second lack of fit for a different dependent variable that uses the same columns of X for determining exact replicates as the first test.
If IREP is nonzero, routine SROWR (see Chapter 19, Utilities;) is used to compute a permutation vector that specifies the sorted X along with the ni’s, the number of rows of X in
each group. If IREP is zero, the permutation vector and the ni’s are computed from IGROUP.
Let ni be the number of rows of X in the i-th group of replicates (i = 1, 2, …, k). Let yij be the response for the j-th row within the i-th group. Let wij and fij be the associated weight and frequency, respectively. The pure error (within group) sum of squares is
The associated degrees of freedom are
The lack of fit sum of squares is SSE − SSPE and the
lack of fit degrees of freedom are
DFE − DFPE.
The F statistic for the test of the null hypothesis of no lack of fit is
Under the hypothesis of no lack of fit, the computed F has an F distribution with numerator and denominator degrees of freedom DFE − DFPE and DFPE, respectively. The p-value for the test is computed as the probability that a random variable with this distribution is greater than or equal to the computed F statistic.
1. Workspace may be explicitly provided, if desired, by use of R2OFE/DR2OFE. The reference is:
CALL R2OFE (NOBS, NCOL, X, LDX, IREP, INDREP, IRSP, IFRQ, IWT, DFE, SSE, IGROUP, NGROUP, TESTLF, IWK, WK)
The additional arguments are as follows:
IWK — Work vector. If IREP = 0, the length of IWK is 3 * NOBS; otherwise, the length of IWK is |IREP| + m + 2.8854 * ln(m) + 3 * NOBS + 5.
WK — Work vector. If IREP= 0, WK is not referenced and can be a vector of length 1; otherwise, WK is of length 2 * m.
2. Informational errors
Type Code
3 1 DFE is less than the degrees of freedom for pure error. The degrees of freedom for lack of fit is set to zero.
3 2 SSE is less than the sum of squares for pure error. The sum of squares for lack of fit is set to zero.
4 3 An invalid weight or frequency is encountered. Weights and frequencies must be nonnegative.
4 4 An element in X contains NaN (not a number), but the corresponding element in IGROUP is not zero. When IREP = 0, missing values in a row of X are indicated by setting the corresponding row of IGROUP to zero.
This example uses data from Draper and Smith (1981, page 374), which is input in X. A multiple linear regression of column 6 of X on an intercept and columns 1, 3, and 4 has already been computed. The fit gave a residual sum of squares SSE = 163.93 with DFE = 16 degrees of freedom. A test for lack of fit is computed using routine RLOFE.
USE RLOFE_INT
USE UMACH_INT
USE WRIRN_INT
IMPLICIT NONE
INTEGER LDX, NCOL, NOBS, NREP, J
PARAMETER (NCOL=6, NOBS=20, NREP=3, LDX=NOBS)
!
INTEGER IGROUP(NOBS), INDREP(NREP), IREP, IRSP, &
NGROUP, NOUT
REAL DFE, SSE, TESTLF(10), X(LDX,NCOL)
!
DATA (X(1,J),J=1,6)/1.0, 1.0, 1.0, 0.0, 1.0, 246.0/
DATA (X(2,J),J=1,6)/1.0, 0.0, 1.0, 0.0, 1.0, 252.0/
DATA (X(3,J),J=1,6)/1.0, 1.0, 1.0, 0.0, 1.0, 253.0/
DATA (X(4,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 164.0/
DATA (X(5,J),J=1,6)/1.0, 1.0, 0.0, 0.0, 1.0, 203.0/
DATA (X(6,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 173.0/
DATA (X(7,J),J=1,6)/1.0, 1.0, 0.0, 0.0, 1.0, 210.0/
DATA (X(8,J),J=1,6)/1.0, 0.0, 1.0, 0.0, 1.0, 247.0/
DATA (X(9,J),J=1,6)/0.0, 1.0, 0.0, 1.0, 0.0, 120.0/
DATA (X(10,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 171.0/
DATA (X(11,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 167.0/
DATA (X(12,J),J=1,6)/0.0, 0.0, 1.0, 1.0, 0.0, 172.0/
DATA (X(13,J),J=1,6)/1.0, 1.0, 1.0, 0.0, 1.0, 247.0/
DATA (X(14,J),J=1,6)/1.0, 1.0, 1.0, 0.0, 1.0, 252.0/
DATA (X(15,J),J=1,6)/1.0, 0.0, 1.0, 0.0, 1.0, 248.0/
DATA (X(16,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 169.0/
DATA (X(17,J),J=1,6)/0.0, 1.0, 0.0, 0.0, 0.0, 104.0/
DATA (X(18,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 166.0/
DATA (X(19,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 168.0/
DATA (X(20,J),J=1,6)/0.0, 1.0, 1.0, 0.0, 0.0, 148.0/
DATA INDREP/1, 3, 4/
!
IREP = NREP
IRSP = 6
DFE = 16.0
SSE = 163.93
CALL RLOFE (X, IREP, INDREP, IRSP, DFE, SSE, IGROUP, NGROUP, TESTLF)
CALL UMACH (2, NOUT)
WRITE (NOUT,*) ' NGROUP = ', NGROUP
CALL WRIRN ('IGROUP', IGROUP, 1, NOBS, 1)
WRITE (NOUT,*) ' '
WRITE (NOUT,99999) ' Test for Lack of '// &
'Fit'
WRITE (NOUT,99999) ' Sum of Mean '// &
' Prob. of'
WRITE (NOUT,99999) ' Source of Error DF Squares Square '// &
' F Larger F'
WRITE (NOUT,99999) ' Lack of Fit ', TESTLF(1), TESTLF(4), &
TESTLF(7), TESTLF(9), TESTLF(10)
WRITE (NOUT,99999) ' Expanded model ', TESTLF(2), TESTLF(5), &
TESTLF(8)
WRITE (NOUT,99999) ' Original model ', TESTLF(3), TESTLF(6)
99999 FORMAT (A, F5.1, F9.1, F8.2, F7.3, F10.3)
END
NGROUP =
6
IGROUP
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19 20
6
6 6 4 5 4 5
6 2 4 4 4
6 6 6 4 1
4 4
3
Test for Lack of
Fit
Sum of Mean
Prob. of
Source of Error DF Squares
Square F Larger F
Lack of
Fit 2.0 20.5
10.25 1.001 0.393
Expanded model 14.0 143.4
10.24
Original model 16.0 163.9
This example uses the same data as in Example 1. Here, the option IREP = 0 is used because IGROUP is known before invoking routine RLOFE. Routine SROWR (see Chapter 19, Utilities;) is used to compute the group numbers contained in IGROUP.
USE RLOFE_INT
USE SROWR_INT
USE UMACH_INT
USE WRIRN_INT
IMPLICIT NONE
INTEGER LDX, NCOL, NKEY, NOBS, J
PARAMETER (NCOL=6, NKEY=3, NOBS=20, LDX=NOBS)
!
INTEGER I, IGROUP(NOBS), INDKEY(NKEY), &
INDREP(1), IPERM(NOBS), IREP, IRET, IRSP, &
K, NGROUP, NI(NOBS), NOUT, NRMISS
REAL DFE, SSE, TESTLF(10), X(LDX,NCOL)
!
DATA (X(1,J),J=1,6)/1.0, 1.0, 1.0, 0.0, 1.0, 246.0/
DATA (X(2,J),J=1,6)/1.0, 0.0, 1.0, 0.0, 1.0, 252.0/
DATA (X(3,J),J=1,6)/1.0, 1.0, 1.0, 0.0, 1.0, 253.0/
DATA (X(4,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 164.0/
DATA (X(5,J),J=1,6)/1.0, 1.0, 0.0, 0.0, 1.0, 203.0/
DATA (X(6,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 173.0/
DATA (X(7,J),J=1,6)/1.0, 1.0, 0.0, 0.0, 1.0, 210.0/
DATA (X(8,J),J=1,6)/1.0, 0.0, 1.0, 0.0, 1.0, 247.0/
DATA (X(9,J),J=1,6)/0.0, 1.0, 0.0, 1.0, 0.0, 120.0/
DATA (X(10,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 171.0/
DATA (X(11,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 167.0/
DATA (X(12,J),J=1,6)/0.0, 0.0, 1.0, 1.0, 0.0, 172.0/
DATA (X(13,J),J=1,6)/1.0, 1.0, 1.0, 0.0, 1.0, 247.0/
DATA (X(14,J),J=1,6)/1.0, 1.0, 1.0, 0.0, 1.0, 252.0/
DATA (X(15,J),J=1,6)/1.0, 0.0, 1.0, 0.0, 1.0, 248.0/
DATA (X(16,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 169.0/
DATA (X(17,J),J=1,6)/0.0, 1.0, 0.0, 0.0, 0.0, 104.0/
DATA (X(18,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 166.0/
DATA (X(19,J),J=1,6)/0.0, 1.0, 1.0, 1.0, 0.0, 168.0/
DATA (X(20,J),J=1,6)/0.0, 1.0, 1.0, 0.0, 0.0, 148.0/
DATA INDKEY/1, 3, 4/
!
IRET = 1
CALL SROWR (X, INDKEY, IPERM, NGROUP, NI, IRET=IRET)
K = 1
DO 20 I=1, NGROUP
DO 10 J=1, NI(I)
IGROUP(IPERM(K)) = I
K = K + 1
10 CONTINUE
20 CONTINUE
IREP = 0
IRSP = 6
DFE = 16.0
SSE = 163.93
CALL RLOFE (X, IREP, INDREP, IRSP, DFE, SSE, IGROUP, NGROUP, TESTLF)
CALL UMACH (2, NOUT)
WRITE (NOUT,*) ' NGROUP = ', NGROUP
CALL WRIRN ('IGROUP', IGROUP, 1, NOBS, 1)
WRITE (NOUT,*) ' '
WRITE (NOUT,99999) ' Test for Lack of '// &
'Fit'
WRITE (NOUT,99999) ' Sum of Mean '// &
' Prob. of'
WRITE (NOUT,99999) ' Source of Error DF Squares Square '// &
' F Larger F'
WRITE (NOUT,99999) ' Lack of Fit ', TESTLF(1), TESTLF(4), &
TESTLF(7), TESTLF(9), TESTLF(10)
WRITE (NOUT,99999) ' Expanded model ', TESTLF(2), TESTLF(5), &
TESTLF(8)
WRITE (NOUT,99999) ' Original model ', TESTLF(3), TESTLF(6)
99999 FORMAT (A, F5.1, F9.1, F8.2, F7.3, F10.3)
END
NGROUP =
6
IGROUP
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19 20
6
6 6 4 5 4 5
6 2 4 4 4
6 6 6 4 1
4 4
3
Test for Lack of
Fit
Sum of Mean
Prob. of
Source of Error DF Squares
Square F Larger F
Lack of
Fit 2.0 20.5
10.25 1.001 0.393
Expanded model
14.0 143.4 10.24
Original model
16.0 163.9
PHONE: 713.784.3131 FAX:713.781.9260 |