No announcement yet.
  • Filter
  • Time
  • Show
Clear All
new posts

  • Multiple Imputation-Incomplete values need to be imputed

    1. Im running an nbreg on CysC is the outcome. I have a key variables: Race, age, sex, diabetes, smoking, depression, and diagnosis.
    2. This is my model: nbreg OCRP_ADJ i.DX i.reth agey ragender diab drink smokev cesd, irr has 2,476 listwise deletions
    3. There are 2,476 values for CYSC that dont have a race value.
    4. I want to impute the missing Race variable and impute the 2,476 values
    5. When i run mi impute regress Stata skips over the 2,476 values I want to impute.
    mi set wide
    mi register imputed reth
    mi impute regress reth OCYSC_ADJ agey ragender diab drink smokev cesd if (miss_OCYSC_ADJ==0), noconstant add(10) force

    Univariate imputation Imputations = 10
    Linear regression added = 10
    Imputed: m=21 through m=30 updated = 0

    | Observations per m
    Variable | Complete Incomplete Imputed | Total
    reth | 4769 2476 0 | 7245
    (complete + incomplete = total; imputed is the minimum across m
    of the number of filled-in observations.)

    Note: Right-hand-side variables (or weights) have missing values;
    model parameters estimated using listwise deletion.

    end of do-file

  • #2
    without a data example (see the FAQ and esp. the part about -dataex- please), it is impossible to be sure but here is my guess - the "missing" entries are extended missing values (".a", etc.); by design, these are not imputed; see the following which is from -help mi-:
    If an imputed variable contains a value greater than . in m=0 --
    it contains .a, .b, ..., .z -- then that value is considered a
    hard missing and the missing value persists in m>0.


    • #3
      Some remarks:
      • Race is usually not measured on an interval scale, hence, linear regression might not be appropriate. Perhaps mlogit would be a more appropriate choice?
      • If reth is the only variable with missing values, you probably want: mi impute mlogit reth = OCYSC ...; note the equals sign.
      • Why do you want conditional imputation, i.e., why do you specify an if condition?
      • Why do you add the nocosnstant option?
      • Why do you add the force option? You almost certainly do not want this. If you specify this option to ignore/suppress error messages, you should really better fix the underlying problem.