Tutorials › Multiple Imputation by Chained Equations (MICE) › Observed and Imputed Values in Each Update

Fully Conditional Specification · Tutorial 104 of 497

Observed and Imputed Values in Each Update

Learn how each FCS update combines observed values with the current imputations of other variables to form its model-fitting and prediction data.

Intermediate 9 min read

What You'll Learn

  • Distinguish observed responses used to fit a conditional model from missing responses being updated.
  • Identify which observed or currently imputed predictor values enter each row of an FCS update.
  • Trace the conditioning values available at different points in a sequential sweep.
  • Calculate illustrative conditional predictions using the values available at an update.
  • Diagnose stale, missing, or misaligned conditioning data.

What Enters a Conditional Update?

In fully conditional specification (FCS), each variable is updated using a model conditional on the other variables. For any one update, the conditioning data are not a separate, fully observed data set: they are assembled row by row from observed values and the current imputations of the predictors. That distinction matters both when fitting the conditional model and when applying it to rows whose target value is missing.

Let \(Y_{ij}\) denote the value of variable \(j\) for row \(i\), where \(i=1,\ldots,n\). Define \(R_{ij}=1\) if \(Y_{ij}\) is observed and \(R_{ij}=0\) if it is missing. At a given point in the algorithm, write \(Y_{ij}^{[k]}\) for the value currently available in the working data after \(k\) updates in a sweep. For an originally observed cell, that value is the recorded value; for a missing cell, it is the current imputation. The superscript tracks the state of the working data, not a power.

Definition: For an update of target variable \(j\), the conditioning data for row \(i\) are the current values of every other variable, \(Y_{i,-j}^{[k]}\). Each component is its observed value when observed, and its current imputation when missing. The target response is observed for model-fitting rows and missing for rows to which the update is applied.

The conditional model for \(Y_j\) is specified in terms of \(Y_{-j}\), the other variables. In the usual FCS setup, rows with observed \(Y_j\) supply responses for fitting that conditional model. Their predictors still need to be available: if a predictor is missing on one of those rows, its current imputation enters the model-fitting data. Rows with missing \(Y_j\) supply predictor values for the update, but do not supply an observed response for that fit. The same rule applies to every predictor, whether it is continuous, categorical, or a transformed term built from other variables.

During a sequential sweep, the current values are not necessarily all from the same moment. If a variable has already been updated in the current sweep, its new values are available to later updates. Variables not yet updated still have the values carried into the sweep. Thus “current” means current at the exact point the target update is reached.

Representing the Conditioning Values

For a predictor variable \(l\ne j\), its value supplied to the update can be written compactly as

$$ Y_{il}^{[k]} = \begin{cases} Y_{il}, & R_{il}=1,\\ Y_{il,\mathrm{imp}}^{[k]}, & R_{il}=0. \end{cases} $$

Here \(Y_{il}\) is the recorded value, and \(Y_{il,\mathrm{imp}}^{[k]}\) is the current imputation. This expression applies to predictors in both types of rows: rows used to fit the model and rows whose target value is missing. In contrast, the target variable itself plays different roles in those two groups. On observed-target rows, its recorded value is the response; on missing-target rows, it is the value to be updated.

The logic can be checked in three steps. First, identify the target variable and its observed and missing rows. Second, for each other variable, inspect its observation indicator and take either the recorded value or the current imputation. Third, determine the sweep state: use newly updated values for variables already visited in this sweep, and the carried-forward values for those not yet visited. This is a bookkeeping rule, not an additional statistical model.

Worked Example: Fitting and Predicting With Current Predictor Values

Consider five hypothetical rows and an update of numeric target \(Y\). The current values of predictors \(X\) and \(Z\) are shown below. A dash in the recorded-data columns means the value was missing; the current-value columns show the value available at this update.

RowRecorded \(Y\)Current \(Y\)Recorded \(X\)Current \(X\)Recorded \(Z\)Current \(Z\)
144221010
26644—12
3———31414
488661616
5——88—18

Suppose, for illustration, that the conditional model being applied has fitted mean \(\widehat{Y}=1+0.5X+0.2Z\). Rows 1, 2, and 4 have observed \(Y\), so they supply observed responses for model fitting. For row 2, the model-fitting predictors are \(X=4\) and the current imputation \(Z=12\); the missing \(Z\) does not make the predictor unavailable. Rows 3 and 5 have missing \(Y\), so they are the rows to which the conditional update applies.

For row 3, the current predictor values are \(X=3\) and \(Z=14\). The illustrative fitted mean is

$$ \widehat{Y}_3 = 1 + 0.5(3) + 0.2(14) = 1 + 1.5 + 2.8 = 5.3. $$

For row 5, \(X=8\) and the current imputation for \(Z\) is 18, giving

$$ \widehat{Y}_5 = 1 + 0.5(8) + 0.2(18) = 1 + 4 + 3.6 = 8.6. $$

These calculations illustrate which predictor values are supplied and what the fitted mean would be; they are not a claim that the final imputed values must equal those means. The conditional model and the update method determine how a replacement is obtained. The bookkeeping conclusion is exact: row 2's imputed \(Z\) participates in fitting, while rows 3 and 5 use their current predictor values for the target update.

Why Sweep Timing Changes the Inputs

The conditioning set names the variables used in an update; the working data state determines the values supplied for them. To make that distinction explicit, suppose the sweep updates \(A\) before \(B\), and updates \(C\) after \(B\). When the \(B\) update occurs, \(A\) has its newly updated values from this sweep, whereas \(C\) still has the values carried into the sweep.

Worked Example: Using the State Available Mid-Sweep

In a hypothetical three-variable data set, row 2 has missing \(B\). Its current values just before the sweep are \(A=5\) and \(C=4\). The \(A\) update occurs first and changes row 2's current \(A\) to 7. The \(C\) update has not yet occurred, so row 2's current \(C\) remains 4. Suppose the illustrative conditional mean used for \(B\) is \(\widehat{B}=1+2A+C\).

At the moment \(B\) is updated, the inputs are \(A=7\) and \(C=4\), so

$$ \widehat{B}_2 = 1 + 2(7) + 4 = 1 + 14 + 4 = 19. $$

Using the value of \(A\) from before its update would instead give \(1+2(5)+4=15\). That is not the conditioning state at the \(B\) update. The example shows why a trace must record not only which variables condition an update, but also whether each variable has already been visited in the current sweep.

Different Response and Predictor Roles

A cell's role depends on which variable is currently the target. If \(Y_j\) is being updated, an observed \(Y_j\) is a response in model fitting. A missing \(Y_j\) is not an observed response; its row receives predictor inputs for the update. Meanwhile, every other variable can appear as a predictor in either kind of row, using its observed value or current imputation as appropriate.

This is an important distinction from a rule such as “use only rows with no missing values.” Under FCS, a missing predictor does not automatically disqualify a row from the conditional model: its current imputation supplies a value. Likewise, an incomplete row with a missing target can still provide the complete predictor vector needed to apply the conditional model. The availability of those values does not make the imputed predictors observed data; it means the current completed working data are being used for this conditional step.

Worked Example: A Binary Target With an Imputed Predictor

Suppose a hypothetical update concerns binary target \(D\), and a fitted logistic model has linear predictor \(\eta=-2+0.4A+0.3B\). The conditional probability of \(D=1\) is \(1/(1+e^{-\eta})\). Row 6 has missing \(D\), current imputed \(A=5\), and observed \(B=2\). Both predictor values enter the calculation:

$$ \eta_6=-2+0.4(5)+0.3(2)=-2+2+0.6=0.6, \qquad P(D_6=1\mid A_6,B_6)=\frac{1}{1+e^{-0.6}}\approx 0.6457. $$

Thus the conditional model assigns probability about 0.6457 to \(D_6=1\), given the current predictor values. The point here is the conditioning information: the current imputation of \(A\) is used alongside the observed \(B\). This probability is not itself an assertion that \(D_6\) is observed, nor does this calculation specify the subsequent replacement mechanism.

Assumptions, Checks, and Failure Modes

Tracing values correctly does not guarantee that a conditional model is appropriate, but it is a prerequisite for applying that model coherently. The setup assumes that each conditional model is defined for its variable type and that its predictor inputs are valid values on the model's required scales. It also assumes that the current working data provide a value for every required predictor in every row used for fitting or prediction. A categorical predictor, for example, must have a valid modeled category; a transformation such as a product term must be calculated from the current values of its components.

Several practical checks help catch errors before interpreting an update:

  • For each target, count rows with observed and missing target values. Confirm that the observed-target rows supply responses and the missing-target rows are the intended recipients.
  • For each predictor and relevant row, check whether its value is observed or imputed, and verify that the value matches the working state at this point in the sweep.
  • Inspect model-fitting and prediction inputs separately. A predictor can be imputed in a row with observed target, or observed in a row with missing target.
  • Check that factor levels, ranges, and derived quantities are valid. An out-of-range value, impossible category, or stale derived term can make an otherwise correctly arranged conditioning set misleading.

A common failure is to use the original incomplete predictor columns when fitting or applying the model. That can leave missing inputs, silently drop rows, or create a different analysis sample at each update. Another failure is to use a previous value for a variable that has already been updated in the current sweep. Both errors change the conditioning data and therefore change the conditional model's inputs.

There are alternatives, but they answer a different operational need. Restricting each conditional fit to rows complete on all predictors discards rows whose missing predictors already have current imputations. Replacing missing predictors with a fixed summary, such as a mean, also ignores the row-specific current values. These shortcuts may be simpler to implement, but they do not follow the FCS conditioning rule described here. Conversely, having a current value for every predictor does not establish that the conditional models are well specified or that the procedure performs well; those are separate modeling and diagnostic questions.

Key takeaway: At a target update, observed target values provide responses for fitting; missing target values identify rows to update. For every other variable, supply its observed value or its current imputation, using the state available at that exact point in the sweep.

Check Your Understanding

Answer each question by identifying the target, the row's role, and the conditioning values where relevant.

  1. When updating \(Y\), a row has observed \(Y\), observed \(X\), and imputed \(Z=9\). What values enter the conditional model-fitting record?
  2. When updating \(Y\), another row has missing \(Y\), imputed \(X=3\), and observed \(Z=12\). Is this a response row or an update row, and what predictor values are available?
  3. Variables are updated in the order \(A,B,C\). When \(B\) is updated, which sweep state supplies \(A\) and which supplies \(C\)?
  4. Explain why a row with observed target \(Y\) can still have an imputed predictor in the model-fitting data.

Solutions. (1) It is a model-fitting row: the response is the observed \(Y\), and the predictors are observed \(X\) and current imputation \(Z=9\). (2) It is an update row for missing \(Y\), with predictor values \(X=3\) and \(Z=12\). (3) \(A\) has its newly updated value from the current sweep; \(C\) has the value carried into the sweep because its update has not yet occurred. (4) The response's observation status and the predictor's observation status are separate. The current imputation supplies a predictor value even though it is not an observed value.

Clinical Biostats