| Literature DB >> 19014582 |
Abstract
INTRODUCTION: Many epidemiological methods for analysing follow-up studies require the calculation of rates based on accumulating person-time and events, stratified by various factors. Managing this stratification and accumulation is often the most difficult aspect of this type of analysis. TUTORIAL: We provide a tutorial on accumulating person-time and events, stratified by various factors i.e. creating event-time tables. We show how to efficiently generate event-time tables for many different outcomes simultaneously. We also provide a new vocabulary to characterise and differentiate time-varying factors. The tutorial is focused on using a SAS macro to perform most of the common tasks in the creation of event-time tables. All the most common types of time-varying covariates can be generated and categorised by the macro. It can also provide output suitable for other types of survival analysis (e.g. Cox regression). The aim of our methodology is to support the creation of bug-free, readable, efficient, capable and easily modified programs for making event-time tables. We briefly compare analyses based on event-time tables with Cox regression and nested case-control studies for the analysis of follow-up data.Entities:
Year: 2008 PMID: 19014582 PMCID: PMC2615420 DOI: 10.1186/1742-5573-5-7
Source DB: PubMed Journal: Epidemiol Perspect Innov ISSN: 1742-5573
Figure 1A model for which parameter estimation can be based on an event-time table. We assume that the incidence rate h(...) for some event depends only on three time-varying factors, namely age and time since last pregnancy, suitably categorised, and number of births. Each combination of levels of the three time-varying factors defines a stratum within which the incidence rate is constant, leading to piecewise constant incidence rates. The graphs show the changing values of the time-varying factors ("exposures"), the changing values of the stratified time-varying factors (the fat lines) and the resulting incidence rate during follow-up of one person.
Figure 2Program outline for analysing follow-up data with one outcome using Poisson regression.
Figure 3Program outline for analysing follow-up data using standardised incidence ratios for many different outcomes simultaneously.
Figure 4Program outline for analysing competing risks. The competing risks analysis presented here is a general one and is not restricted to the situation where the outcomes preclude additional events from occurring. Instead, we analyse competing risks for the occurrence of the first outcome event.
Figure 5Program outline for generating a data set for Poisson regression for many outcomes simultaneously.
Figure 6Stratifying follow-up time by zero-rate time factors, bit-rate time factors and unity-rate time factors.
Simple macro variables in the stratify macro i.e. options.
| macro variable | default value | needed when | meaning |
| DATA | &syslast | mandatory | input data |
| OUT | &data | mandatory | output data |
| OUTCOMES | MODE = m | outcome events input data | |
| EVENTDAT | outcome events output data | ||
| EVENTTIME | eventtime | mandatory | time of outcome event |
| SUBJECT | OUTCOMES or EXPDATS used | person ID for record linkage | |
| TIME | time | zrtf-stmt | time of exposure events |
| EXPEVENT | expevent | zrtf-stmt | exposure event |
| VALUE | value | zrtf-stmt v = v | exposure event attribute, numeric |
| VALUEC | valuec | zrtf-stmt v = cv | exposure event attribute, character |
| BIRTHDATE | birthdate | zrtf-stmt v = a | birth date |
| SCALE | 365.25 | mandatory | scale relation between time units for time points and cut points/PYRS |
| GRANULARITY | 1 | MODE = s,c,m | follow-up ends at EVENTTIME + GRANULARITY |
| EVENTTYPE | eventtype | MODE = c,i,m | type of outcome |
| NOEVENTVALUE | MODE = c,i,m | value of eventtype for person-time | |
| MODE | s(ing(le)) | mandatory | when and how follow-up ends |
| METHOD | fst | mandatory | method of aggregation or no aggregation (noagg) |
| CHUNKSIZE | 5000 | METHOD = chunk | see [ |
"Statements" and their components in the stratify macro.
| Comment | |
| varname must be a valid SAS variable name. | |
| l(en(gth)) = | the length of varname. By default, 8 for numeric variables and the maximum length of VALUEC in EXPDATS for character variables. |
| c(ond(ition)) = | the value of the character variable EXPEVENT that will trigger the (re-)evaluation of varname. There are restrictions on the value of this variable to avoid it interfering with the macro, but a valid SAS variable name will always work. It must be enclosed in "". |
| n = | the occurrence of the condition that will trigger the (re-)evaluation of varname. Possible values are f, first, l, last, or any integer > 0, where 1 means first, 2 second etc. Last is the default. |
| v(al(ue)) = | the value of varname before grouping. Possible values are: |
| g(roups) = | for a numeric variable, the specification is X to Y by Z or X Y Z W .... or a format. For a character variable, it is a format. No grouping occurs unless specified. |
| m(iss(ing))= | value of varname when missing. If varname is a character variable, it must be enclosed in "" and the same restrictions as for condition apply. |
| varname must be a valid SAS variable name. | |
| t(ime) = | variable containing the time point at which speed and value are evaluated. |
| s(peed) = | variable containing the rate of change (0 or 1) of the underlying bit-rate time factor (from time and onwards). |
| v(al(ue)) = | variable containing the (ungrouped) value of varname at time. |
| c(uts) = | X to Y by Z or X Y Z W .... |
| varname must be a valid SAS variable name. | |
| o(ri(gin)) = | variable or constant containing the origin of the time scale |
| c(uts) = | X to Y by Z or X Y Z W .... |
| s(peed) = | variable or constant containing the rate of change. The rate of change is always 1 unless this variable or constant is set to 0. |
| exposure data sets. | |
| extra variables to include in EVENTDAT. | |
| stratifying variables to appear in OUT retained from DATA. |
Figure 7Program outline for analysing follow-up data with one outcome using Cox regression.