This function is a serverside aggregate function that computes the missing data pattern using mice::md.pattern and applies disclosure control to prevent revealing small cell counts.
mdPatternDS(x)A list containing:
The missing data pattern matrix with disclosure control applied
Logical indicating if all patterns meet disclosure requirements
A message describing the validity status
a character string specifying the name of a data frame or matrix containing the data to analyze for missing patterns.
Xavier Escribà montagut for DataSHIELD Development Team
This function calls the mice::md.pattern function to generate a matrix showing the missing data patterns in the input data. To ensure disclosure control, any pattern counts that are below the threshold (nfilter.tab, default=3) are suppressed.
Suppression Method:
When a pattern count is below threshold: - Row name is changed to "suppressed(<N>)" where N is the threshold - All pattern values in that row are set to NA - Summary row is also set to NA (prevents back-calculation)
Output Matrix Structure:
- Rows represent different missing data patterns (plus a summary row at the bottom) - Row names contain pattern counts (or "suppressed(<N>)" for invalid patterns) - Columns show 1 if variable is observed, 0 if missing - Last column shows total number of missing values per pattern - Last row shows total number of missing values per variable
Note for Pooling:
When this function is called from ds.mdPattern with type='combine', suppressed patterns are excluded from pooling to prevent disclosure through subtraction. This means pooled counts may underestimate the true total when patterns are suppressed in some studies.