# deductiveLevels: Derive imputation values for categorical data In deducorrect: Deductive Correction, Deductive Imputation, and Deterministic Correction

## Description

Deduce imputation values for categorical data. By substituting all known values and interatively eliminating the unknowns from the set of edits, unique imputation values are derived where possible.

## Usage

 ```1 2``` ```deductiveLevels(E, x, adapt = rep(FALSE, length(x)), checkFeasibility = TRUE) ```

## Arguments

 `E` editarray `x` a named `character` vector `adapt` boolean vector indicating which variables may be adapted. `checkFeasibility` Test wether the assumed-correct values (observed and not designated by adapt) can lead to a consistent record.

## Details

Imputation values are derived for missing variables (NA) and for variables indicated by 'adapt'.

## Value

A named vector with imputation values for `x`

## References

T. De Waal, J. Pannekoek and S. Scholtus (2011) Handbook of statistical data editing Chpt 9.2.1 - 9.2.2

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39``` ```# a simple example. We know the subject is pregnant. What is the gender? E <- editarray(c( "gender \%in\% c('male','female')", "pregnant \%in\% c(TRUE,FALSE)", "if ( gender=='male') !pregnant")) # a record with unknown gender x <- c(gender=NA,pregnant=TRUE) # find imputations (s <- deductiveLevels(E,x)) # imputation can be done as follows: x[names(s)] <- s # Here's an example from De Waal et al (2011) (ex. 9.3) E <- editarray(c( "x1 \%in\% letters[1:4]", "x2 \%in\% letters[1:3]", "x3 \%in\% letters[1:3]", "x4 \%in\% letters[1:2]", "if (x2 == 'c' & x3 != 'c' & x4 == 'a' ) FALSE", "if (x2 != 'a' & x4 == 'b') FALSE", "if (x1 != 'c' & x2 != 'b' & x3 != 'a') FALSE", "if (x1 == 'c' & x3 != 'a' & x4 == 'a' ) FALSE" )) x <- c(x1='c',x2='b',x3=NA,x4=NA) (s <- deductiveLevels(E,x)) x[names(s)] <- s # another example, partial imputation y <- c(x1=NA,x2=NA,x3=NA,x4='b') (s <- deductiveLevels(E,y)) y[names(s)] <- s ```

deducorrect documentation built on May 30, 2017, 7:59 a.m.