NAG FL Interface
g12zaf (coxmodel_​risksets)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

g12zaf creates the risk sets associated with the Cox proportional hazards model for fixed covariates.

2 Specification

Fortran Interface
Subroutine g12zaf ( n, m, ns, z, ldz, isz, ip, t, ic, isi, num, ixs, nxs, x, mxn, id, nd, tp, irs, ifail)
Integer, Intent (In) :: n, m, ns, ldz, isz(m), ip, ic(n), isi(*), mxn
Integer, Intent (Inout) :: ifail
Integer, Intent (Out) :: num, ixs(mxn), nxs, id(mxn), nd, irs(n)
Real (Kind=nag_wp), Intent (In) :: z(ldz,m), t(n)
Real (Kind=nag_wp), Intent (Inout) :: x(mxn,ip)
Real (Kind=nag_wp), Intent (Out) :: tp(n)
C Header Interface
#include <nag.h>
void  g12zaf_ (const Integer *n, const Integer *m, const Integer *ns, const double z[], const Integer *ldz, const Integer isz[], const Integer *ip, const double t[], const Integer ic[], const Integer isi[], Integer *num, Integer ixs[], Integer *nxs, double x[], const Integer *mxn, Integer id[], Integer *nd, double tp[], Integer irs[], Integer *ifail)
The routine may be called by the names g12zaf or nagf_surviv_coxmodel_risksets.

3 Description

The Cox proportional hazards model (see Cox (1972)) relates the time to an event, usually death or failure, to a number of explanatory variables known as covariates. Some of the observations may be right-censored, that is, the exact time to failure is not known, only that it is greater than a known time.
Let ti, for i=1,2,,n, be the failure time or censored time for the ith observation with the vector of p covariates zi. It is assumed that censoring and failure mechanisms are independent. The hazard function, λ(t,z), is the probability that an individual with covariates z fails at time t given that the individual survived up to time t. In the Cox proportional hazards model, λ(t,z) is of the form
λ(t,z)=λ0(t)exp(zTβ),  
where λ0 is the base-line hazard function, an unspecified function of time, and β is a vector of unknown parameters. As λ0 is unknown, the parameters β are estimated using the conditional or marginal likelihood. This involves considering the covariate values of all subjects that are at risk at the time when a failure occurs. The probability that the subject that failed had their observed set of covariate values is computed.
The risk set at a failure time consists of those subjects that fail or are censored at that time and those who survive beyond that time. As risk sets are computed for every distinct failure time, it should be noted that the combined risk sets may be considerably larger than the original data. If the data can be considered as coming from different strata such that λ0 varies from strata to strata but β remains constant, then g12zaf will return a factor that indicates to which risk set/strata each member of the risk sets belongs rather than just to which risk set.
Given the risk sets the Cox proportional hazards model can then be fitted using a Poisson generalized linear model (g02gcf with g04eaf to compute dummy variables) using Breslow's approximation for ties (see Breslow (1974)). This will give the same fit as g12baf. If the exact treatment of ties in discrete time is required, as given by Cox (1972), then the model is fitted as a conditional logistic model using g11caf.

4 References

Breslow N E (1974) Covariate analysis of censored survival data Biometrics 30 89–99
Cox D R (1972) Regression models in life tables (with discussion) J. Roy. Statist. Soc. Ser. B 34 187–220
Gross A J and Clark V A (1975) Survival Distributions: Reliability Applications in the Biomedical Sciences Wiley

5 Arguments

1: n Integer Input
On entry: n, the number of data points.
Constraint: n2.
2: m Integer Input
On entry: the number of covariates in array z.
Constraint: m1.
3: ns Integer Input
On entry: the number of strata. If ns>0 then the stratum for each observation must be supplied in isi.
Constraint: ns0.
4: z(ldz,m) Real (Kind=nag_wp) array Input
On entry: the ith row must contain the covariates which are associated with the ith failure time given in t.
5: ldz Integer Input
On entry: the first dimension of the array z as declared in the (sub)program from which g12zaf is called.
Constraint: ldzn.
6: isz(m) Integer array Input
On entry: indicates which subset of covariates are to be included in the model.
isz(j)1
The jth covariate is included in the model.
isz(j)=0
The jth covariate is excluded from the model and not referenced.
Constraint: isz(j)0 and at least one value must be nonzero.
7: ip Integer Input
On entry: p, the number of covariates included in the model as indicated by isz.
Constraint: ip= the number of nonzero values of isz.
8: t(n) Real (Kind=nag_wp) array Input
On entry: the vector of n failure censoring times.
9: ic(n) Integer array Input
On entry: the status of the individual at time t given in t.
ic(i)=0
Indicates that the ith individual has failed at time t(i).
ic(i)=1
Indicates that the ith individual has been censored at time t(i).
Constraint: ic(i)=0 or 1, for i=1,2,,n.
10: isi(*) Integer array Input
Note: the dimension of the array isi must be at least n if ns>0, and at least 1 otherwise.
On entry: if ns>0, the stratum indicators which also allow data points to be excluded from the analysis.
If ns=0, isi is not referenced.
isi(i)=k
Indicates that the ith data point is in the kth stratum, where k=1,2,,ns.
isi(i)=0
Indicates that the ith data point is omitted from the analysis.
Constraint: if ns>0, 0isi(i)ns, for i=1,2,,n.
11: num Integer Output
On exit: the number of values in the combined risk sets.
12: ixs(mxn) Integer array Output
On exit: the factor giving the risk sets/strata for the data in x and id.
If ns=0 or 1, ixs(i)=l for members of the lth risk set.
If ns>1, ixs(i)=(j-1)×nd+l for the observations in the lth risk set for the jth strata.
13: nxs Integer Output
On exit: the number of levels for the risk sets/strata factor given in ixs.
14: x(mxn,ip) Real (Kind=nag_wp) array Output
On exit: the first num rows contain the values of the covariates for the members of the risk sets.
15: mxn Integer Input
On entry: the first dimension of the array x and the dimension of the arrays ixs and id as declared in the (sub)program from which g12zaf is called.
Constraint: mxn must be sufficiently large for the arrays to contain the expanded risk sets. The size will depend on the pattern of failures times and censored times. The minimum value will be returned in num unless the routine exits with ifail=1 or 2.
16: id(mxn) Integer array Output
On exit: indicates if the member of the risk set given in x failed.
id(i)=1 if the member of the risk set failed at the time defining the risk set and id(i)=0 otherwise.
17: nd Integer Output
On exit: the number of distinct failure times, i.e., the number of risk sets.
18: tp(n) Real (Kind=nag_wp) array Output
On exit: tp(i) contains the ith distinct failure time, for i=1,2,,nd.
19: irs(n) Integer array Output
On exit: indicates rows in x and elements in ixs and id corresponding to the risk sets. The first risk set corresponding to failure time tp(1) is given by rows 1 to irs(1). The lth risk set is given by rows irs(l-1)+1 to irs(l), for l=1,2,,nd.
20: 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, ldz=value.
Constraint: ldzn.
On entry, m=value.
Constraint: m1.
On entry, n=value.
Constraint: n2.
On entry, ns=value.
Constraint: ns0.
ifail=2
On entry, i=value, isi(i)=value and ns=value.
Constraint: 0isi(i)ns.
On entry, i=value and ic(i)=value.
Constraint: ic(i)=0 or 1.
On entry, i=value and isz(i)=value.
Constraint: isz(j)0.
On entry, there are not ip values of isz>0.
ifail=3
On entry, mxn=value and minimum value for mxn=value.
Constraint: mxn must be sufficiently large for the arrays to contain the expanded risk set.
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

Not applicable.

8 Parallelism and Performance

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

9 Further Comments

When there are strata present, i.e., ns>1, not all the nxs groups may be present.

10 Example

The data are the remission times for two groups of leukemia patients (see page 242 of Gross and Clark (1975)). A dummy variable indicates which group they come from. The risk sets are computed using g12zaf and the Cox's proportional hazard model is fitted using g11caf.

10.1 Program Text

Program Text (g12zafe.f90)

10.2 Program Data

Program Data (g12zafe.d)

10.3 Program Results

Program Results (g12zafe.r)