* Encoding: UTF-8. /*calculate MI estimates and SEs by hand DATA LIST LIST / beta beta_se. BEGIN DATA. .061, .022 .033, .009 .045, .012 .071, .028 .055, .015 END DATA. /*MI point estimate DESCRIPTIVES VARIABLES=beta /STATISTICS=MEAN STDDEV. /*MI standard error COMPUTE beta_var = beta_se**2. EXECUTE. /*variance within DESCRIPTIVES VARIABLES=beta_var /STATISTICS=MEAN. /*variance between DESCRIPTIVES VARIABLES=beta /STATISTICS=VAR. /*total variance is var_w + var_b + var_b/m /*SE is the sqrt of the total variance /*Basics of MI /*read in data "SPSS data 1.csv" /*how does mean change under each missingness mechanism? DESCRIPTIVES VARIABLES=read read_mcar read_mar /STATISTICS=MEAN SEMEAN. /*how about when the MAR is relevant to the outcome? DESCRIPTIVES VARIABLES=read2 read_mar2 /STATISTICS=MEAN SEMEAN. /*can MI save us? DATASET DECLARE imputed1. MULTIPLE IMPUTATION read_mar2 distance /IMPUTE METHOD=AUTO NIMPUTATIONS=5 MAXPCTMISSING=NONE /IMPUTATIONSUMMARIES MODELS /OUTFILE IMPUTATIONS=imputed1 . DATASET ACTIVATE imputed1. DESCRIPTIVES VARIABLES=read2 read_mar2 /STATISTICS=MEAN SEMEAN. /*can we improve the SE of the mean? DATASET ACTIVATE DataSet1. DATASET DECLARE imputed2. MULTIPLE IMPUTATION read_mar2 distance write /IMPUTE METHOD=AUTO NIMPUTATIONS=5 MAXPCTMISSING=NONE /IMPUTATIONSUMMARIES MODELS /OUTFILE IMPUTATIONS=imputed2. DATASET ACTIVATE imputed2. DESCRIPTIVES VARIABLES=read2 read_mar2 /STATISTICS=MEAN SEMEAN. /*Another example /*Read in dataset "SPSS data 2.csv" /*bias due to MAR mechanism CORRELATIONS /VARIABLES=y x x_mar /PRINT=TWOTAIL NOSIG /MISSING=PAIRWISE. REGRESSION /DEPENDENT y /METHOD=ENTER x. REGRESSION /DEPENDENT y /METHOD=ENTER x_mar. /*use multiple imputation DATASET DECLARE imputed3. MULTIPLE IMPUTATION y x_mar /IMPUTE METHOD=AUTO NIMPUTATIONS=5 MAXPCTMISSING=NONE /IMPUTATIONSUMMARIES MODELS /OUTFILE IMPUTATIONS=imputed3. DATASET ACTIVATE imputed3. REGRESSION /DEPENDENT y /METHOD=ENTER x_mar. CORRELATIONS /VARIABLES=y x x_mar /MISSING=PAIRWISE. /*Exercise /*read in example data from http://www.andrewamiles.com/teaching/ssrm-2018-missing-data.html /*look at patterns of missing data MULTIPLE IMPUTATION major_soc_cat skill_verbal party_lib party_cons party_ndp party_green party_none skill_math skill_science /IMPUTE METHOD=NONE /MISSINGSUMMARIES OVERALL VARIABLES (MAXVARS=25 MINPCTMISSING=10) PATTERNS. /*percent missing cases - see bar graph, bar 1 is percent cases with NO missing data COMPUTE mast=(mastery1 + mastery2 + mastery3)/3. EXECUTE. CORRELATIONS /VARIABLES=major_soc skill_verbal skill_math leftright utm_years swb srh srh_m mast skill_art skill_tech age /MISSING=PAIRWISE. COMPUTE nomissing = 0. IF NOT(sysmis(major_soc_cat) OR sysmis(skill_verbal) OR sysmis(skill_math) OR sysmis( skill_science) OR sysmis(party_lib) OR sysmis( party_cons) OR sysmis( party_ndp) OR sysmis(party_green)) nomissing = 1. EXECUTE. GENLIN nomissing (REFERENCE=FIRST) WITH leftright utm_years swb srh srh_m mast skill_art skill_tech age /MODEL leftright utm_years swb srh srh_m mast skill_art skill_tech age INTERCEPT=YES DISTRIBUTION=BINOMIAL LINK=LOGIT /PRINT SOLUTION. DATASET DECLARE imputed4. MULTIPLE IMPUTATION major_soc_cat skill_verbal party_lib party_cons party_ndp party_green party_none skill_math skill_science /IMPUTE METHOD=AUTO NIMPUTATIONS=40 MAXPCTMISSING=NONE /IMPUTATIONSUMMARIES MODELS /OUTFILE IMPUTATIONS=imputed4. DATASET ACTIVATE imputed4. GENLIN major_soc_cat (ORDER=ASCENDING) WITH skill_verbal skill_math skill_science party_lib party_cons party_ndp party_green /MODEL skill_verbal skill_math skill_science party_lib party_cons party_ndp party_green DISTRIBUTION=MULTINOMIAL LINK=CUMLOGIT /PRINT SOLUTION. COMPUTE outnomiss = 1. IF sysmis(major_soc_cat) outnomiss=0. EXECUTE. FILTER BY outnomiss. GENLIN major_soc_cat (ORDER=ASCENDING) WITH skill_verbal skill_math skill_science party_lib party_cons party_ndp party_green /MODEL skill_verbal skill_math skill_science party_lib party_cons party_ndp party_green DISTRIBUTION=MULTINOMIAL LINK=CUMLOGIT /PRINT CPS SOLUTION. FILTER OFF.