Delta 为基础的多重填补的 Sas code 和 SAP撰写

2024-09-17 15:06   上海  

Delta 调整后的模式插补基于称为非未来依赖性的假设(Kenward et al.2003National Research Council 2010)。


 L 表示观察到结果的最后一次访问,假设 L + 1 的缺失取决于 L + 1 之前的观测值和 L + 1 处可能的缺失值,而不是 L + 1 之后的未来缺失值。因此,在控制了 L + 1 和协变量之前的观测历史记录后,可以根据与观测到 YL+1 的分布的某种关系来指定缺失 YL+1 的分布。一种方法是假设试验组中缺失结果的平均值在结果恶化的方向上偏离了观察到的对应物的一定程度,但对照组的平均值在缺失值和观察值之间是相同的(Ratitch et al. 2013)。因此,可以使用各自治疗组中的观察值来估算每个治疗组中的缺失值,并且在估算后,试验组中的估算值在结果恶化的方向上增加或减少一定量,但对照组中的估算值保持不变。


使用 MNAR 的模式混合模型(PMM)分析假设,与继续研究的受试者相比,停止试验的受试者在停药后的平均疗效评分更差。停止试验的受试者的未观察到值继续研究的受试者之间的平均差(称为 delta)由用户指定。

假设试验组,伴发事件后缺失数据的均值(或比值)向量差于伴发事件前非缺失数据,差值为一个指定的参数,这个参数就称作delta, 相当于对缺失数据填补结果进行一定程度的惩罚。对照组, 伴发事件后缺失数据的均值向量与伴发事件前非缺失数据的相同。


Delta调整的模式插补可用作指定单个偏移量的独立分析,也可以用作应用合理范围内的多个偏移量的tipping point分析。当应用一系列偏移量时,将结论从支持试验组转变为支持对照组的偏移量称为“tipping point”。如果临界点的基本假设在临床上是合理的,那么 MAR 的结论是有问题的。

 

MNAR 语句与选项 ADJUST 一起使用时,允许针对观测值的子集调整插补变量,如果选择试验组作为观测值的子集,则试验组中的插补变量将偏离预先指定的量, 它允许实现Delta调整的模式插补。

主要有三种调整方法:

第一种则是每次访视数据都进行delta参数调整,此种调整方式即假设疗效会随着访视时间增长而逐渐变差。delta是个固定参数。

%macro adjfvis(in=,lastvis=,seed=,adjvar=,out=);

proc mi data=&in.(where=(lastvis>=&lastvis.)) out=temp seed=&seed.

nimpute=1

min = . . 30 30 30 30 30 30 30

max = . . 210 210 210 210 210 210 210;

by _imputation_;

class trt01pn region;

var trt01pn region y0-y6;

monotone reg(/details);

mnar adjust( &adjvar. / shift=1 adjustobs=(trt01pn='1'));

run;

 

data &out.;

set &in. (where=(lastvis<&lastvis.)) temp;

run;


proc sort data=&out.;by _imputation_;run;

%mend;

 

%adjfvis(in=monotone,lastvis=5,seed=1261,adjvar=y6,out=y6);

%adjfvis(in=y6,lastvis=4,seed=1262,adjvar=y5,out=y5);

%adjfvis(in=y5,lastvis=3,seed=1263,adjvar=y4,out=y4);

%adjfvis(in=y4,lastvis=2,seed=1264,adjvar=y3,out=y3);

%adjfvis(in=y3,lastvis=1,seed=1265,adjvar=y2,out=y2);

%adjfvis(in=y2,lastvis=0,seed=1266,adjvar=y1,out=y1);


第二种则是先在MAR假设下完成缺失数据填补后,再针对所有填补数据进行delta参数调整。

proc mi data=monotone out=temp seed=127 nimpute=1

min = . . 30 30 30 30 30 30 30

max = . . 210 210 210 210 210 210 210;

by _imputation_;

class trt01pn region;

var trt01pn region y0-y6;

monotone reg(/details);

run;


data imputed;

set temp;

array m(6) y1-y6;

if trt01pn=1 then do i=1 to 6;

if i> lastvis then m(i)=m(i)+1;

end;

run;


第三种为首次访视的参数调整,也就是仅针对首个访视的缺失值进行一次的delta参数调整,后续访视的缺失值则是根据第一次已经调整后的数据进行建模与填补,而不会再进行delta参数调整。

%macro adjfvis(in=,lastvis=,seed=,adjvar=,out=);

proc mi data=&in.(where=(lastvis>=&lastvis.)) out=temp seed=&seed.

nimpute=1

min = . . 30 30 30 30 30 30 30

max = . . 210 210 210 210 210 210 210;

by _imputation_;

class trt01pn region;

var trt01pn region y0-y6;

monotone reg(/details);

mnar adjust( &adjvar. / shift=1 adjustobs=(trt01pn='1'));

run;

 

data &out.;

set &in. (where=(lastvis<&lastvis.)) temp;

run;


proc sort data=&out.;by _imputation_;run;

%mend;

 

%adjfvis(in=monotone,lastvis=5,seed=1261,adjvar=y6,out=y6);

%adjfvis(in=y6,lastvis=4,seed=1262,adjvar=y5,out=y5);

%adjfvis(in=y5,lastvis=3,seed=1263,adjvar=y4,out=y4);

%adjfvis(in=y4,lastvis=2,seed=1264,adjvar=y3,out=y3);

%adjfvis(in=y3,lastvis=1,seed=1265,adjvar=y2,out=y2);

%adjfvis(in=y2,lastvis=0,seed=1266,adjvar=y1,out=y1);


SAP 描述模板和Sas code:

1.MI with marginal delta adjustment of MAR-based imputed values, using a joint imputation model for repeated measurements

MI assuming MAR using a joint imputation model for repeated measurements” to describe a base imputation model.

A value of δ will be added to all imputations in the ADJUSTED arm(s) prior to analyzing the multiply imputed data, with values in table {X}. This approach assumes that the marginal mean of imputed subject measurements is worse by some amount at each time point after discontinuation [or initiation of rescue therapy] compared to the marginal mean of subjects with observed data at the same time point.]

Withdrawal before Visit

Delta ({place units here}) added at Visit

2

3

4

5

2

1

2

3

4

3

*

1

2

3

4

*

*

1

2

5

*

*

*

1

Table {X}: Delta values at each visit for each withdrawal pattern.

{Note that the values in this table can be negative if smaller values represent poorer outcomes.}    

2.MI with [conditional/marginal] delta adjustment of MAR-based imputed values, using sequential multiple imputation

Mean changes from baseline in MEASURE1 will be analyzed based on data observed while the subject remains on study as well as data imputed using multiple imputation (MI) methodology for time points at which no value is observed.

Multiple imputation will be performed using {software, version}.  Intermittent (non-monotone) missing data will be imputed first based on the missing-at-random (MAR) assumption and a multivariate joint Gaussian imputation model using Markov chain Monte Carlo (MCMC) method within each treatment arm. {Describe details similar to those in MAR-based MI above.}.

The remaining, monotone missing data will be imputed as follows:  For imputation of values in NOTADJUSTED arm(s), multiple imputation under the MAR assumption will be used.  Otherwise, it will be assumed that subjects who discontinue the study early would have, on average, efficacy outcomes after discontinuation that are worse by some amount δ compared to otherwise similar subjects with observed data in their treatment arm (i.e., compared to a value which would have been assumed under an MAR model).

Imputed values in ADJUSTED arm(s) will first be sampled from an MAR-based multiple imputation model and then δ-adjusted as described below.  MAR-based imputations for monotone missing data will be generated using sequential regression multiple imputation, where a separate regression model is estimated for imputation of each variable (i.e., measurement at each time point). Each regression model will include explanatory variables for treatment, {list of baseline covariates,} and all previous (Baseline, Visit x,…,y) values of MEASURE1.    

No rounding or range restrictions will be applied to imputed continuous values.

[For marginal adjustment with a common delta at each time point: MAR-based imputations will be generated for MEASURE1 at each time point, and then a value of δ = {∆} will be added to all imputed values in the ADJUSTED arm(s) prior to analyzing multiply imputed data. This approach assumes that the marginal mean of imputed subject measurements is worse by δ at each time point after discontinuation [or initiation of rescue therapy] compared to the marginal mean of subjects with observed data at the same time point.]

[For marginal adjustment with time-dependent delta: MAR-based imputations will be generated for MEASURE1 at each time point, and then a value of δj = Cj  ͯ {∆} will be added to all imputations in the ADJUSTED arm(s) prior to analyzing multiply imputed data, where Cj = {list values} are multiplicative factors which modify the magnitude of adjustments depending on time since discontinuation (where j=1, 2, … represents the time point after premature discontinuation in chronological order). This approach assumes that marginal means of imputed subject measures are worse by δj after j visits post discontinuation [or initiation of rescue therapy] compared to the marginal mean of subjects with observed data at the corresponding time point.] {Provide a table summarizing delta adjustment at each visit as in “Table {X}” of the previous section.}    

[For conditional adjustment with the same delta at each time point:MAR-based imputations will be generated for MEASURE1 sequentially at each time point. A value of δ = {∆} will be added to all imputations in the ADJUSTED arm(s) at a given time point prior to imputing data at the next time point.  Delta-adjusted imputed values will be used as values of explanatory variables when generating imputed values from the MAR-based model for the next time point. As a result, the magnitude of adjustment at each time point after discontinuation will be equal to δ plus some cumulative amount from previous adjustments proportional to the correlations among repeated measurements.  This approach assumes that the subject’s outcome worsens by δ within any given observation interval (between study time points) after discontinuation, relative to the mean of similar subjects with observed data, conditional on baseline variables and on the subject’s previous post-baseline values, either observed or imputed-and-adjusted.]    

Sequential MI macro: assume MAR, impose delta +1.5 each post-withdrawal visit.

%delta_pmm(datain=diapsi

,trtname=trt

,subjname=patient

,visname=visit

,poolsite=poolinv

,basecont=%str(basval)

,baseclass=%str()

,postcont=%str(hamdtl17)

,postclass=%str()

, seed=34535499

,nimp=1000

,deltavis=%str(all)

,deltacont=1.5

,deltacontarm=2

,deltacontmethod=meanabs

,favorcont=low

,primaryname=hamdtl17

,analcovarcont=%str(basval)

,analcovarclass=%str(poolinv)

,trtref=1

,analmethod=ancova

,repstr=

,dataout=PSI2013_SMAR_datafull

,resout=PSI2013_SMAR_results

,fulltrtbytime=Y

,lsmopt=%str(atBasval=&Meanbase)

);

[For conditional adjustment with delta applied only at the first visit after discontinuation/initiation of rescue: MAR-based imputations will be generated for MEASURE1 sequentially at each time point. A value of δ = {∆} will be added to the imputations in the ADJUSTED arm(s) at the first subject’s visit after early discontinuation from the study. These delta-adjusted imputed values will be used as values of explanatory variables when imputing values from the MAR-based model for the next time point. This approach assumes that the subject’s outcome worsens by δ within the first observation interval (between study time points) after discontinuation [or initiation of rescue therapy], relative to the mean of similar subjects with observed data, conditional on baseline variables and on the subject’s previous post-baseline values. No direct delta adjustment will be performed for subsequent time points, but the initial δ-worsening will be propagated proportionally to the correlations among repeated measurements as estimated by the MAR-based imputation model.] {Provide a table summarizing delta adjustment at each visit as in “Table {X}” of the previous section.}

{Describe number of imputation, random seeds, analysis model, and pooling as for MAR-based MI above.}

Sequential MI macro: assume MAR, impose delta +5 on single visit

%delta_pmm(datain=diapsi

,trtname=trt

,subjname=patient

,visname=visit

,poolsite=poolinv

,basecont=%str(basval)

,baseclass=%str()

,postcont=%str(hamdtl17)

,postclass=%str()

, seed=34535499

,nimp=1000

,deltavis=%str(first)

,deltacont=5

,deltacontarm=2

,deltacontmethod=meanabs

,favorcont=low

,primaryname=hamdtl17

,analcovarcont=%str(basval)

,analcovarclass=%str(poolinv)

,trtref=1

,analmethod=ancova

,repstr=

,dataout=PSI2013_SMAR_datafull

,resout=PSI2013_SMAR_results

,fulltrtbytime=Y

,lsmopt=%str(atBasval=&Meanbase)

);

Take home message:

1.Tipping point是Delta调整的特例,www.missingdata.org.uk也有%delta_and_tip的Marco

2.Delta 调整也可以应用于二元/分类结果,即根据完成者与非完成者回答的假设优势比改变 MAR 插补类别。也可应用于 time to event。      

 

3.MNAR 下, Delta 为基础的多重填补可以与对照为基础的多重填补一起在 pattern mixture model(PMM)中进行。   

 

4.MNAR的SAP模板可以在MAR下稍加改动,或者直接按照Sas逻辑撰写。

5.GSK的five Macro中,%delta_pmm和%cbi_pmm对应基于 delta 调整的PMM以及基于对照的PMM,但不适用于非正态数据和time to event数据

参考文献:

http://www.missingdata.org.uk-SAP Text_Describing_analyses_Final_2016-08-11   

 

    

流行病学与卫生统计学
Pivot数据交流平台,每周分享临床试验研究设计、实施、统计等相关信息。
 最新文章