This is a continuation of the previous article, Tipping Point Analysis in Multiple Imputation Using SAS. In the last post, we talked about the tipping point analysis in monotone imputation, but how to implement TPA in MCMC imputation since the `MNAR`

statement can only support the shift adjustment in monotone and FCS.

Before that, let's have a look at the process of imputation and shift adjustment in the monotone method. By default, the missing values are imputed sequentially in the order specified in the VAR statement. For example, the following `MI`

procedure uses the regression method to impute each variable by its previous variables, which means variable `week8`

is imputed by effects from `basval`

to `week6`

, and variable `week6`

is imputed by effects from `basval`

to `week4`

. The variable `basval`

is not imputed since it is the leading variable in the `VAR`

statement. And you can also specify difference imputation methods in monotone statement for each variable, more details can be found in the SAS documentation

```
proc mi data=low1_wide seed=12306 nimpute=10 out=imp_mnar2;
class trt;
by trt;
var basval week1 week2 week4 week6 week8;
monotone reg;
mnar adjust (week8 / shift=-1 adjustobs=(trt='1'));
mnar adjust (week8 / shift=1 adjustobs=(trt='2'));
run;
```

According to above logic, I feel we can manually add shift values instead of `MNAR`

statement in the MCMC imputation by following the steps.

- Assuming the missingness pattern is arbitary rather than monotone, the MCMC full-data imputation approach is selected.
- Get the imputed datasets and find out where the missing data is in the original dataset, such as the location of the subject and visit.
- Adjust the
`week8`

variable with the shift values, for each treatment (if needed).

I have tested the logic by comparing the results of the `MNAR`

statement against manual adjusting. That is identical, so use the SAS code as shown below for MCMC imputation.

```
proc mi data=low1_wide seed=12306 nimpute=10 out=imp_mcmc;
mcmc impute=full niter=1000 nbiter=1000;
by trt;
var basval week1 week2 week4 week6 week8;
run;
proc sort; by patient _imputation_; run;
proc sort data=low1_wide
out=low1_wide_w8(keep=patient week8 rename=(week8=w8));
by patient;
run;
data imp_mcmc_shift;
merge imp_mcmc low1_wide_w8;
by patient;
if missing(w8) then do;
if trt='1' then week8=week8-1;
else if trt='2' then week8=week8+1;
end;
drop w8;
run;
```

As for the FCS approach, if you want to get the exact shift value, this article (Application of Tipping Point Analysis in Clinical Trials using the Multiple Imputation Procedure in SAS) would be helpful.