NAG CL Interface
g04eac (dummyvars)
1
Purpose
g04eac computes orthogonal polynomial or dummy variables for a factor or classification variable.
2
Specification
The function may be called by the names: g04eac, nag_anova_dummyvars or nag_dummy_vars.
3
Description
In the analysis of an experimental design using a general linear model the factors or classification variables that specify the design have to be coded as dummy variables.
g04eac computes dummy variables that can then be used in the fitting of the general linear model using
g02dac.
If the factor of length has levels then the simplest representation is to define dummy variables, such that if the factor is at level and 0 otherwise, for . However, there is usually a mean included in the model and the sum of the dummy variables will be aliased with the mean. To avoid the extra redundant argument, dummy variables can be defined as the contrasts between one level of the factor, the reference level and the remaining levels. If the reference level is the first level then the dummy variables can be defined as if the factor is at level and 0 otherwise, for . Alternatively, the last level can be used as the reference level.
A second way of defining the
dummy variables is to use a Helmert matrix in which levels
are compared with the average effect of the previous levels. For example if
then the contrasts would be:
Thus variable
, for
, is given by
- if factor is at level less than
- if factor is at level
- if factor is at level greater than
where
is the number of replicates of level
.
If the factor can be considered as a set of values from an underlying continuous variable then the factor can be represented by a set of
orthogonal polynomials representing the linear, quadratic, etc. effects of the underlying variable. The orthogonal polynomial is computed using Forsythe's algorithm (see
Forsythe (1957) and
Cooper (1968)). The values of the underlying continuous variable represented by the factor levels have to be supplied to the function.
The orthogonal polynomials are standardized so that the sum of squares for each dummy variable is one. For the other methods integer representations are retained except that in the Helmert representation the code of level in dummy variable will be a fraction.
4
References
Cooper B E (1968) Algorithm AS 10. The use of orthogonal polynomials Appl. Statist. 17 283–287
Forsythe G E (1957) Generation and use of orthogonal polynomials for data fitting with a digital computer J. Soc. Indust. Appl. Math. 5 74–88
5
Arguments
-
1:
– Nag_DummyType
Input
-
On entry: the type of dummy variable to be computed.
- An orthogonal Polynomial representation is computed.
- A Helmert matrix representation is computed.
- The contrasts relative to the First level are computed.
- The contrasts relative to the Last level are computed.
- A complete set of dummy variables is computed.
Constraint:
, , , or .
-
2:
– Integer
Input
-
On entry: the number of observations for which the dummy variables are to be computed, .
Constraint:
.
-
3:
– Integer
Input
-
On entry: the number of levels of the factor, .
Constraint:
.
-
4:
– const Integer
Input
-
On entry: the values of the factor.
Constraint:
, for .
-
5:
– double
Output
-
Note: the th element of the matrix is stored in .
On exit: the matrix of dummy variables, where if , , or and if .
-
6:
– Integer
Input
-
On entry: the stride separating matrix column elements in the array
x.
Constraints:
- if , , or , ;
- if , .
-
7:
– const double
Input
-
Note: the dimension,
dim, of the array
v
must be at least
- when ;
- otherwise.
On entry: if
, the
distinct values of the underlying variable for which the orthogonal polynomial is to be computed. If
,
v is not referenced.
Constraint:
if
, then the
values of
v must be distinct.
-
8:
– double
Output
-
On exit: contains the number of replications for each level of the factor, , for .
-
9:
– NagError *
Input/Output
-
The
NAG error argument (see
Section 7 in the Introduction to the
NAG Library CL Interface).
6
Error Indicators and Warnings
- NE_2_INT_ARG_LT
-
On entry, while . These arguments must satisfy .
On entry, while . These arguments must satisfy .
On entry, while . These arguments must satisfy .
- NE_ALLOC_FAIL
-
Dynamic memory allocation failed.
- NE_ARRAY_CONS
-
The contents of array
v are not valid.
Constraint: all values of
v must be distinct.
- NE_BAD_PARAM
-
On entry, argument
type had an illegal value.
- NE_G04EA_LEVELS
-
All
levels are not represented in array factor.
- NE_G04EA_ORTHO_POLY
-
An orthogonal polynomial has all values zero. This will be due to some values of
v being close together. This can only occur if
.
- NE_INT_ARG_LT
-
On entry,
levels must not be less than 2:
.
- NE_INT_ARRAY_CONS
-
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.
7
Accuracy
The computations are stable.
8
Parallelism and Performance
Background information to multithreading can be found in the
Multithreading documentation.
g04eac is not threaded in any implementation.
Other functions for fitting polynomials can be found in
Chapter E02.
10
Example
Data are read in from an experiment with four treatments and three observations per treatment with the treatment coded as a factor.
g04eac is used to compute the required dummy variables and the model is then fitted by
g02dac.
10.1
Program Text
10.2
Program Data
10.3
Program Results