Why Interval Construction Matters
A pooled logistic survival analysis uses one record per person and time interval in which that person is at risk. The event indicator in each record represents whether the event occurred in that interval. Constructing these records is not just a formatting step: the grid determines which interval contains an event, while the observed follow-up determines which intervals can legitimately be labelled event-free. A boundary assigned inconsistently, or a zero recorded for an interval that was only partly observed, changes the outcome data supplied to the model.
The earlier material on discrete-time survival establishes the role of interval-specific event indicators. Here the focus is how to create them from observed times. Begin by fixing the grid and its boundary convention before generating any person-interval rows.
This convention uses intervals that are right-closed: an event exactly at \(t_k\) is assigned to interval \(k\), not interval \(k+1\). We use the explicit tie rule \(\Delta_i=1\) when event and censoring times are equal. A data source that uses a different tie rule must be handled according to that rule; the convention should not be guessed after the rows have been created.
From Observed Times to Person-Interval Rows
Assume initially that everyone enters observation at time 0, follow-up has no gaps, and the analysis horizon is \(t_K\). A row for interval \(k\) is eligible only if the person is event-free at \(t_{k-1}\) and observation establishes whether an event occurred by \(t_k\), or establishes an event during that interval. A person who has an observed event in interval \(k\) contributes rows for intervals \(1,\ldots,k\): zeros in the earlier intervals and a one in interval \(k\). They contribute no rows after the event.
For a censored person, define \(m_i=\max\{j:t_j\le C_i,\ 0\le j\le K\}\). If \(C_i\) falls inside an interval, that interval is not fully observed, so the person contributes rows only through \(m_i\). In particular, censoring at \(t_j\), with no event observed by that time, permits a zero through interval \(j\), but not a row for interval \(j+1\). This construction concerns which outcomes are observed; any assumptions or weighting needed to address informative censoring are separate from the act of forming the rows.
Write down all endpoints and use \(I_k=(t_{k-1},t_k]\), or another explicitly chosen convention, consistently.
If \(\Delta_i=1\) and \(0<T_i\le t_K\), find the unique interval containing \(T_i\), then code that interval 1 and the preceding contributed intervals 0.
Do not add rows after an observed event. For a person without an observed event within the horizon, include only intervals whose right endpoints are reached under event-free observation, up to \(K\).
More explicitly, if an observed event occurs at \(T_i\in(t_{k-1},t_k]\) with \(0<T_i\le t_K\), the contributed rows satisfy \(Y_{ij}=0\) for \(j<k\), \(Y_{ik}=1\), and there are no rows for \(j>k\). If the observed event is after \(t_K\), it belongs to none of the grid intervals: the person contributes no event row on this grid. If the person is known to remain event-free through \(t_K\), they can contribute \(K\) zero rows. An event beyond the horizon and censoring before the horizon are different situations: the former establishes event-free follow-up through every grid endpoint, whereas the latter may not.
Worked Examples
Worked Example: Events at Grid Boundaries
Let the grid be \(0,30,60,90\), so the intervals are \((0,30]\), \((30,60]\), and \((60,90]\). Consider three people with observed events at days 30, 60, and 90, respectively; assume each event is observed and there is no earlier censoring.
For the event at day 30, the time lies in \((0,30]\). The rows are \(Y_{i1}=1\), with no later rows. For the event at day 60, the time lies in \((30,60]\), so the rows are \(Y_{i1}=0\) and \(Y_{i2}=1\). For the event at day 90, the time lies in \((60,90]\), so the rows are \(Y_{i1}=0\), \(Y_{i2}=0\), and \(Y_{i3}=1\).
Each endpoint belongs to the interval ending at that endpoint. Thus day 60 is not assigned to \((60,90]\), and day 90 is included at the analysis horizon. The event at day 90 produces exactly one event row because it is observed within the grid.
Worked Example: Censoring Within an Interval and Beyond the Horizon
Use the grid \(0,30,60,90\). Person A is event-free when censored at day 47. Since \(30\le47<60\), the last complete right endpoint is day 30: A contributes one row, \(Y_{A1}=0\), and no row for \((30,60]\). The fact that A had no observed event before day 47 does not establish a zero for the full interval ending at day 60.
Person B is event-free and censored at day 60. They have been followed through both endpoints 30 and 60, so they contribute \(Y_{B1}=0\) and \(Y_{B2}=0\), but no row for \((60,90]\). Person C has an observed event at day 100. Because \(100>t_K=90\), the event is beyond this analysis horizon. C contributes three zero rows through day 90 and no event row on this grid: the observed event is after, not within, all three intervals.
The horizon check is decisive. An observed event after time zero does not necessarily create a 1 on a finite grid; it creates a 1 only if \(0<T_i\le t_K\) and the event is included in the analysis.
Worked Example: An Irregular Grid and a Partial Last Interval
Let \(t_0=0,t_1=14,t_2=35,t_3=70\), giving intervals \((0,14]\), \((14,35]\), and \((35,70]\). Person D has an observed event at day 22. Since \(14<22\le35\), D contributes \(Y_{D1}=0\) and \(Y_{D2}=1\), with no third row.
Person E is event-free and censored at day 50. The endpoints 14 and 35 have been reached, but 70 has not. E therefore contributes \(Y_{E1}=0\) and \(Y_{E2}=0\), and no row for \((35,70]\). Person F is event-free through day 70 and is censored at day 70; F contributes three zeros because each right endpoint is reached. This example shows why interval membership must use the stated endpoints, rather than assuming that all intervals have equal length.
Two Checks That Follow from the Construction
The first property is that an observed event within the horizon has one—and only one—event row. This follows from the partition created by the grid.
Proof. The intervals are disjoint: if \(j<k\), then every time in \(I_j\) is at most \(t_j\le t_{k-1}\), whereas every time in \(I_k\) is greater than \(t_{k-1}\). They also cover \((0,t_K]\), since every time in this range lies between two consecutive grid points, with a grid-point equality assigned to the interval ending there. Thus there is exactly one \(k\) for which \(T_i\in I_k\). The construction assigns 1 to that interval and 0 to each earlier contributed interval; it stops at the event, so no later row is created. Hence there is exactly one event row. \(\square\)
The second check concerns zero indicators. A zero is a claim about a complete interval, not merely about the absence of an event before the person’s last observed instant.
Proof. The interval is \((t_{k-1},t_k]\). To know that no event occurred in it, observation must establish absence of an event through its right endpoint \(t_k\), unless an observed event within the interval instead establishes \(Y_{ik}=1\). If censoring occurs at \(C_i<t_k\), event status after \(C_i\) and through \(t_k\) is not observed. Both an event after \(C_i\) but no later than \(t_k\), and no event by \(t_k\), are consistent with the observed event-free history through \(C_i\). Therefore the full-interval outcome cannot be set to zero from those data. \(\square\)
Diagnostics, Alternatives, and Limitations
Before fitting a pooled logistic model, inspect the constructed rows rather than relying only on the final coefficient output. Useful checks include:
- For each included observed event with \(0<T_i\le t_K\), verify exactly one 1 appears, in the interval determined by the endpoint rule.
- Verify that a person has no rows after their event and that their intervals form a consecutive prefix beginning at interval 1 under the no-delayed-entry setup used here.
- For a censored person, verify that no row extends beyond the last grid endpoint reached during event-free observation.
- Tabulate events at exact grid endpoints and inspect them explicitly. Endpoint errors can be easy to miss in ordinary summaries.
- Check whether event times beyond \(t_K\) were accidentally assigned to the final interval. They are not events in that interval.
The main alternative is to analyze exact event times with a continuous-time survival approach rather than converting time to a discrete grid. That avoids choosing these particular bins, but it answers the question through a different time model and does not remove the need to define observed follow-up correctly. A pooled logistic analysis instead models interval event probabilities on the chosen grid. Changing the grid can change the interval outcomes and the interpretation of the interval-specific hazard; it is not merely a change in data storage.
The construction also has limits. It assumes a defined time origin and, as described here, observation beginning at that origin. If follow-up begins later, risk rows cannot simply start at time 0; the eligible risk intervals need a separate entry rule. The construction does not itself address informative censoring, missing event times, gaps in observation, or the choice of a scientifically appropriate grid. Nor does converting exact times to intervals recover their within-interval ordering. These issues must be handled in the analysis design rather than concealed by a tidy person-period table.
Check Your Understanding
Answer each question, then compare your reasoning with the solutions.
- For the grid \(0,10,25\), which interval contains an event at day 10?
- On the grid \(0,30,60\), an event is observed at day 75. How many event rows does the person have on this grid, and why?
- On the grid \(0,20,50\), a person is event-free when censored at day 35. Which intervals can contribute zero rows?
- Why is it incorrect to code a zero for \((30,60]\) when a person is censored at day 45 without an event?
Solutions. 1. Day 10 belongs to \((0,10]\), the interval ending at 10. 2. The person has no event row on this grid, because \(75>t_K=60\); if observed event-free through day 60, they have two zero rows. 3. The endpoints 20 but not 50 have been reached, so only \((0,20]\) contributes a zero. 4. Censoring at 45 leaves event status between day 45 and day 60 unknown, so event-free status through the interval’s right endpoint is not established.