Tutorials › Multiple Imputation by Chained Equations (MICE) › Choosing the Variable Update Order

Fully Conditional Specification · Tutorial 106 of 497

Choosing the Variable Update Order

Trace a fixed-order FCS sweep and see how update position determines which current values enter each conditional update.

Intermediate 9 min read

What You'll Learn

  • Define a fixed variable order and an FCS sweep.
  • Track the current value used for each conditional update.
  • Work through a complete sweep on a small incomplete data set.
  • Compare different fixed orders and explain why they can produce different updates.
  • Identify common bookkeeping errors and diagnose when a sweep is not being carried out as intended.

Why the Update Order Matters

In fully conditional specification (FCS), variables with missing values are updated one at a time using conditional models. A sweep updates each target variable once. If the order is fixed, the first update uses the values available at the start of the sweep; later updates can use values just produced by earlier updates. The order therefore determines the sequence of calculations, even when the same conditional models are used.

This is a rule for organizing updates, not a claim that one particular order is universally best. The purpose here is to follow the bookkeeping precisely: identify the target at each step, use the current values of its predictors, and leave observed values unchanged.

Definition: A fixed variable update order is a chosen sequence of variables, such as \(X,Y,Z\), used in the same order for each sweep. A sweep is one pass through that sequence, updating the missing entries of each target variable in turn. Within a sweep, values generated by earlier updates are available to later updates.

State Before and During a Sweep

Suppose the variables to be updated are \(X_1,\ldots,X_p\), in the fixed order \(X_1,\ldots,X_p\). Write \(D^{(t,0)}\) for the data state at the start of sweep \(t\), including observed values and the current imputations. After updating the first \(j\) variables, write the state as \(D^{(t,j)}\). The update of \(X_j\) uses the current values of the other variables in \(D^{(t,j-1)}\), updates its missing entries, and produces \(D^{(t,j)}\).

Thus, at the \(X_j\) step, variables earlier in the order have already been updated in this sweep; variables later in the order still have their values from the start of the sweep. Observed entries of \(X_j\) remain as recorded. Only its missing entries are targets for imputation.

Actual FCS updates use specified conditional models and their update rules. To isolate the effect of order in the examples below, we use simple illustrative update maps with stated numerical outputs. These maps are bookkeeping devices, not a recommendation to replace a stochastic imputation model with deterministic conditional means. They let us see exactly which current values enter each step without adding details about how predictive draws are generated.

A Complete Fixed-Order Sweep

Consider five hypothetical records with three variables. The symbol “—” marks an entry that is missing; initial values are shown for those entries. Choose the fixed order \(X,Y,Z\). For this bookkeeping example, suppose the illustrative update rules are \(X=0.5Y+Z\), \(Y=X+2Z\), and \(Z=0.25X+0.5Y\), applied only to missing entries of the target variable.

Record\(X\)\(Y\)\(Z\)
A210— (initially 2)
B— (initially 4)141
C6— (initially 12)3
D8185
E— (initially 4)— (initially 12)— (initially 2)

Worked Example: Updating \(X\), Then \(Y\), Then \(Z\)

Start with the table above and use the fixed order \(X,Y,Z\). At each step, calculate missing entries for that target using the current predictor values.

Step 1: update \(X\). The missing \(X\) entries are in records B and E. In B, the current values are \(Y=14\) and \(Z=1\), so \(X=0.5(14)+1=7+1=8\). In E, the current values are \(Y=12\) and \(Z=2\), so \(X=0.5(12)+2=6+2=8\). After this step, B has \(X=8\) and E has \(X=8\).

Step 2: update \(Y\). Record C is missing \(Y\), and record E is missing \(Y\). For C, the current \(X=6\) and \(Z=3\), giving \(Y=6+2(3)=12\). For E, the updated \(X=8\) from Step 1 is now used, along with \(Z=2\): \(Y=8+2(2)=12\).

Step 3: update \(Z\). Records A and E are missing \(Z\). In A, \(X=2\) and \(Y=10\), so \(Z=0.25(2)+0.5(10)=0.5+5=5.5\). In E, the current values are \(X=8\) and the newly updated \(Y=12\), so \(Z=0.25(8)+0.5(12)=2+6=8\). The sweep is complete. For record E, the final values are \(X=8,Y=12,Z=8\); its updates used successively updated values.

The calculation for E can be written as a composition of update maps. Let \(T_X,T_Y,T_Z\) denote the three successive operations on the current data state. Under the order \(X,Y,Z\), the resulting state is \(T_Z(T_Y(T_X(D^{(t,0)})))\). This nesting expresses the key fact: the input to \(T_Y\) includes the result of \(T_X\), and the input to \(T_Z\) includes the results of both earlier operations.

Changing the Order Changes the Sequence

A fixed order specifies what happens within a sweep; it does not generally make the updates commute. In other words, applying the same update maps in a different order need not lead to the same values. This is why it is important to report or document the order used and to avoid treating all steps as though they were simultaneous.

Worked Example: Reverse the Order for a Row Missing on Every Variable

Use record E from the previous example, starting again from its initial values \(X=4,Y=12,Z=2\). Apply the same illustrative update maps, but use the order \(Z,Y,X\).

Step 1: update \(Z\). Use the starting values \(X=4,Y=12\): \(Z=0.25(4)+0.5(12)=1+6=7\).

Step 2: update \(Y\). Use the current \(X=4\) and the newly updated \(Z=7\): \(Y=4+2(7)=18\).

Step 3: update \(X\). Use the current \(Y=18\) and \(Z=7\): \(X=0.5(18)+7=9+7=16\). The result is \(X=16,Y=18,Z=7\), which differs from \(X=8,Y=12,Z=8\) under order \(X,Y,Z\).

This difference follows directly from the sequence of substitutions. For \(X,Y,Z\), the calculation for \(X\) used the initial \(Y,Z\); for \(Z,Y,X\), the calculation for \(X\) used the updated \(Y,Z\). These illustrative maps establish an order effect in this example. They do not establish that one order is statistically preferable or that these final values are inferentially valid imputations.

For a real FCS analysis, the relevant update rules are the specified conditional models for the variables and the imputation procedure being used. Correct bookkeeping assumes that the target and conditioning variables have been identified correctly, each update uses the current state, and observed entries are protected. The chosen order alone does not verify that the conditional models are appropriate, that the imputation assumptions are reasonable, or that the resulting chain has desirable properties.

Observed Values, Partial Missingness, and Diagnostics

Worked Example: A Later Update Uses a Newly Imputed Predictor

Suppose a hypothetical record has \(X\) missing, observed \(Y=10\), and \(Z\) missing with current initial value \(2\). Use the order \(X,Y,Z\) and the illustrative update maps from above.

Update \(X\). Its predictors are the current \(Y=10\) and \(Z=2\), so \(X=0.5(10)+2=5+2=7\).

Update \(Y\). This value is observed, so it stays at \(10\). The rule for generating \(Y\) is not applied to overwrite it.

Update \(Z\). Now use the newly updated \(X=7\) and the current \(Y=10\): \(Z=0.25(7)+0.5(10)=1.75+5=6.75\). The completed row is \(X=7,Y=10,Z=6.75\). In particular, the \(Z\) update uses the new \(X\), while the observed \(Y\) remains fixed.

Several practical checks can catch mistakes in a sweep:

  • Check the sequence. Confirm that each target variable appears once, in the documented order, for the sweep.
  • Check the state being read. For a later target, verify that earlier variables use their newly updated values and later variables retain their current pre-update values.
  • Check the missingness mask. An update should change only entries marked missing for its target variable. Observed data should not be replaced by model predictions.
  • Check the update log. Record target, row, predictor values, and resulting value when debugging a small test run. Unexpected reuse of an initial value often reveals a stale-state or indexing error.

A changing summary across sweeps is not, by itself, proof of a programming error; the chain may still be evolving. Conversely, a stable-looking summary does not prove that the models or assumptions are adequate. This tutorial's checks concern faithful execution of the fixed-order sweep, not a full assessment of imputation quality.

What Fixed Ordering Does—and Does Not—Decide

A fixed sequential sweep is different from a simultaneous update in which every target is calculated from the same start-of-sweep state. The latter would not pass the \(X\) result into the \(Y\) step, or the \(Y\) result into the \(Z\) step, within that pass. It is also different from making only one pass: a sweep is a unit of iteration, and an algorithm may perform further sweeps.

One can also vary the order between sweeps; the precise mechanics of that alternative are a separate topic. For the fixed-order procedure here, the sequence is held constant, and the essential point is that it defines which values are current at each update. Neither choosing a fixed order nor reversing it repairs a misspecified conditional model. Nor does the order establish the assumptions needed for valid inference; those questions belong to the broader missing-data analysis.

Key takeaway: In a fixed-order FCS sweep, update each target in sequence, using the current values available at that point. Earlier updates feed into later ones; observed target values remain fixed. The order defines the computational path, not a guarantee of model adequacy or validity.

Check Your Understanding

Answer each question by tracking the state of the data, not by treating the updates as simultaneous.

  1. In an order \(A,B,C\), which values does the update of \(C\) use for \(A\) and \(B\), if both were updated earlier in the same sweep?
  2. A row has missing \(A\), observed \(B=5\), and missing \(C\). If the order is \(A,B,C\), should the \(B\) update overwrite the observed value?
  3. Using the illustrative rules \(A=0.5B+C\), \(B=A+2C\), and \(C=0.25A+0.5B\), start at \(A=2,B=4,C=1\). What is the result for order \(A,B,C\)?
  4. Why can reversing a fixed order change the result, even if the same update rules are used?

Solutions. (1) It uses the updated values of both \(A\) and \(B\), because both precede \(C\). (2) No. An observed value is retained; only missing entries of the target are updated. (3) Update \(A=0.5(4)+1=3\); then \(B=3+2(1)=5\); then \(C=0.25(3)+0.5(5)=0.75+2.5=3.25\). The result is \(A=3,B=5,C=3.25\). (4) Because later updates use values produced earlier in the sweep, reversing the order changes which values enter each calculation.

Clinical Biostats