数据缺失是纵向临床试验中的常见问题。临床试验中使用的主要分析通常依赖于随机缺失 (MAR) 的不可检验假设,并且需要在合理假设下进行非随机缺失 (MNAR) 的敏感性分析,以检查从主要分析中获得的统计推断的稳健性。使用 pattern-mixture models (PMM) 的多重插补被广泛用于在 MNAR 假设下实施敏感性分析。两个 MNAR 假设,基于对照的模式插补和 delta 调整的模式插补被认为是临床上合理的、透明的且易于实施的。SAS® 版本 9.4 PROC MI 提供了一个 MNAR 语句,其中包含两个选项 MODEL 和 ADJUST,可以方便地实施这两个假设。MNAR 语句与 MONOTONE 语句一起使用,用于处理单调缺失数据,与 FCS 语句一起使用,用于处理任意缺失数据。本文讨论了使用 MNAR 语句在 PMMs 框架内纵向临床试验数据中 MNAR 假设下实施的敏感性分析。
在纵向临床试验中,数据缺失是一个常见问题,可能导致统计功效的损失和估计的偏差。缺失数据以两种类型的缺失模式存在:单调缺失和非单调缺失。对于单调缺失模式,如果在某个受试者的特定访视中未观察到结果,则不会在该受试者的所有后续访视中观察到该结果。单调缺失是由于患者在完成研究之前退出研究造成的,是纵向临床试验数据缺失的主要来源。患者退出在临床试验中很常见,原因有很多,例如不良事件、缺乏疗效、死亡、搬迁或申办者决定。非单调缺失模式也称为间歇性缺失,其中未观察到的结果之后可以有观察到的结果。非单调缺失是由于患者跳过就诊但再次就诊或偶现测量失败等原因造成的。在精神病学临床试验中,终点是总分与问卷中几个单独项目分数的总和,患者可能会忘记或选择不回答某些单个项目,从而导致总分缺失。非单调缺失的另一个来源是由于为准备分析而进行的数据操作。如果我们通过窗口化研究日(通常定义为评估日期和首次给药日期之间的距离)而不是使用实际名义访问来使用分析访问来分析数据,则访问的值可能会被排除在外,从而导致该访问的值丢失。与单调缺失相比,非单调缺失的数量较少。同时具有单调和非单调缺失模式的数据集被称为具有任意缺失数据模式。
缺失数据机制,表达导致缺失数据的过程,分为三类(Little 和 Rubin,2002):完全随机缺失 (MCAR)、随机缺失 (MAR) 和非随机缺失 (MNAR)。当结果缺失的概率仅仅是由于偶然性,与观察到或未观察到的数据无关时,就会发生MCAR。MCAR 的缺失数据可以被视为完整数据的随机样本,并且完整数据上使用的统计方法可以用于MCAR 的数据,而不会影响统计估计和推理。然而,MCAR 在实践中通常是一个不切实际的强假设。在 MAR 的情况下,结果缺失的概率取决于观察到的数据,而不是缺失结果本身。MAR 通常被认为是可忽略的缺失,因为描述缺失数据机制的参数和要估计的参数是不同的——这一条件在实践中不太可能被违反。MAR 可忽略的含义是缺失数据机制可以忽略,并且不必在基于最大似然的分析中建模。MAR 是不可测试的,也可能不合理。当结果缺失的概率取决于至少一个未观察到的结果时,就会发生 MNAR。临床试验中的许多情况都可能导致 MNAR。例如,如果患者因未记录的恶化结果而停止研究,则产生的缺失数据与至少一个未观察到的结果相关,因此是 MNAR。许多用于分析纵向临床试验数据的标准统计方法都需要 MAR。如果主要分析,例如使用 PROC MIXED 的混合模型重复测量 (MMRM))依赖于 MAR 的假设,则需要考虑各种 MNAR 情景的敏感性分析来测试统计推断相对于偏离 MAR 假设的稳健性。如果在合理的 MNAR 假设下推断能站的住脚,则结果被认为是稳健的;否则,结果是值得怀疑的。
已经提出了两个经典的建模系列来实现 MNAR 假设:模式混合模型 (PMM) 和选择模型(Little 和 Rubin,2002 年;国家研究委员会,2010 年)。此外还有共享参数模型。在随机临床试验中,MNAR 假设对研究人员和临床医生透明非常重要。PMM 将结果和缺失的联合概率分布表示为缺失数据模式的概率分布与给定每个缺失数据模式的响应的条件分布的乘积。在每个缺失数据模式中,可以通过对缺失数据施加假设来显式指定缺失值的未知分布,因此 PMM 的优势是假设更透明,临床医生更容易获得,更适合插补。制定被认为是临床上合理的MNAR 假设的两种常见策略是基于对照的模式插补(Little 和 Yau,1996 年;O'Kelly 和 Ratitch,2014 年;Ratitch et al., 2013) 和 delta 调整模式插补 (O'Kelly 和 Ratitch, 2014;Ratitch et al., 2013)。两种方法都更加保守,旨在减少实验组和对照组之间的差异。
PMM 表示给定解释变量的结果和缺失模式的联合概率分布,作为缺失数据模式的概率分布与给定每个缺失数据模式的结果的条件分布的乘积,如下式所示(国家研究委员会,2010;Ratitch et al., 2013),其中 Y 表示结果向量,Yobs 代表观察到的结果,Ymis 代表缺失的结果;R 是缺失数据指示符,如果观察到 Y,则取值 0,如果没观察到 Y,则取值 1;X 表示治疗组和基线协变量,例如年龄和性别,这些协变量在随机化之前收集,并在模型拟合中得到充分观察和调节。公式如下:
[Yobs |R, X] 表示观测数据的概率分布,[Ymis |Yobs , R, X] 表示给定观测数据的缺失值的未知分布;两者都以协变量 X 和由 R 表示的缺失数据模式为条件。由于缺失值的分布未知,PMM 被识别不足。处理未被充分识别的 PMM 的一种方法是通过指定与观测数据的关系(例如均值差异)对缺失数据施加某些假设。可以执行多次插补,以根据观测数据使用多组合理值填充缺失值。插补值可以针对 MNAR 假设进一步调整。
对于 MNAR,在对观察到的数据进行调节后结果缺失的概率取决于应该获得的未观察到的结果。由于未观察到缺失值且无法验证缺失值,因此需要假设来估算缺失值,并且可能存在无数的 MNAR 假设。PMM 框架中的两个MNAR 假设,即基于对照的模式插补和 delta 调整,由于临床上合理、透明且易于实施而获得广泛接受和使用。基于对照的模式插补最初由 Little R 等人(Little 和 Yau,1996 年)提出,基于“意向性治疗”模型的想法,该模型根据患者在退出后接受的实际治疗和剂量来估算缺失值,探索的假设之一是drop-out后恢复为 control group。因此,假设在退出后,试验组中未观察到的值遵循对照组中观察到的值的路径。基于这一假设,仅使用对照组中的观测值来推导出参数的后验分布,从中估算对照组和实验组中的缺失值。这种方法是保守的,因为它倾向于减少实验组和对照组之间的差异,但不是非常保守,因为它仍然允许通过使用试验组中的先验观察值作为预测因子来产生结转效应。
MNAR 语句中的选项 MODEL 允许指定用于对缺失值分布进行建模的观测子集。基于对照的模式插补是通过指定对照组作为观察的子集来实现的。基于对照的模式插补是通过指定对照组作为观察的子集来实现的。
delta 调整后的模式插补基于称为“非未来依赖性”的假设(Kenward et al.,2003, National Research Council, 2010)。
设 L 表示观察到结果的最后一次访问,假设 L + 1 的缺失取决于 L + 1 之前的观测值和 L + 1 处可能的缺失值,而不是 L + 1 之后的未来缺失值。因此,在控制了 L + 1 和协变量之前的观测历史记录后,可以根据与观测到 YL+1 的分布的某种关系来指定缺失 YL+1 的分布。一种方法是假设试验组中缺失结果的平均值在结果恶化的方向上偏离了观察到的对应物的一定程度,但对照组的平均值在缺失值和观察值之间是相同的(Ratitch et al., 2013)。因此,可以使用各自治疗组中的观察值来估算每个治疗组中的缺失值,并且在估算后,试验组中的估算值在结果恶化的方向上增加或减少一定量,但对照组中的估算值保持不变。已经提出了这种方法的三种变体。第一个变体是 delta 调整后的模式插补仅应用于结果缺失的第一次访问,并且调整后的值用作预测因子来插补后续不会调整的缺失值。在这种方法中,恶化效应通过相关性传播到以后访视的估算结果。第二种变体是在每次访问时应用调整,并将调整后的值用作预测因子来插补后续的缺失值。第三种变体是,在 MAR 假设下估算所有缺失值后,调整将应用于每次访问。增量调整的模式插补可用作指定单个偏移量的独立分析,也可以用作应用合理范围内的多个偏移量的tipping point分析。当应用一系列偏移量时,将结论从支持试验组转变为支持对照组的偏移量称为“tipping point”。如果临界点的基本假设在临床上是合理的,那么 MAR 的结论是有问题的。
MNAR 语句与选项 ADJUST 一起使用时,允许针对观测值的子集调整插补变量,如果选择试验组作为观测值的子集,则试验组中的插补变量将偏离预先指定的量, 它允许实现增量调整的模式插补。
MNAR 语句与 MONOTONE 语句一起处理单调缺失模式,与 FCS 语句一起处理任意缺失模式。纵向临床数据中的缺失模式是任意的,有少量间歇性缺失,大部分是单调缺失。最常见的策略是在 MAR 假设下使用马尔可夫链蒙特卡洛 (MCMC) 来填充少量间歇性缺失值,从而产生具有单调缺失模式的中间数据。在数据变成单调缺失模式后,可以应用 MONOTONE 语句,并且可以一起使用 MNAR 语句来实现 MNAR 假设,选项 MODEL 用于基于对照的模式插补,选项 ADJUST 用于增量调整模式插补。
此方法存在多个限制。以缺失模式为条件,间歇性缺失通常假设为 MAR。基本原理是,由于受试者仍在接受治疗,因此缺失值的分布应遵循观测值。然而,将间歇性缺失视为 MAR 缺乏理论支持,需要进一步检查该假设的适当性。即便如此,一些偏离 MAR 不应因为少量间歇性缺失而危及结果的有效性。此外,由于多变量正态假设,MCMC 更适合插补连续结果。然而,当缺失信息不大时,MCMC 对多元正态假设的小偏离是稳健的。要插补并被视为分类变量的分类响应应使用数值编码;如果需要将分类变量作为预测因子包含在插补模型中,一种常见的做法是将分类变量编码为多个虚拟变量,并使用虚拟变量作为预测变量(O'Kelly 和 Ratitch,2014)。
另一种策略是将 MNAR 语句与完全条件规范 (FCS) 一起使用,它可以处理单调和非单调缺失模式。与单调缺失模式的单调方法类似,FCS 指定了一系列按顺序插补变量的单变量模型,因此允许对插补模型中的每个插补变量进行不同类型的响应和不同的模型。FCS 涉及两个阶段,称为填充阶段和插补阶段。在填充阶段,最初通过从给定先前变量的观察结果的条件分布中随机抽取来填充缺失值。在插补阶段,缺失值从给定 VAR 语句中的其余变量,从观察到的结果的后验分布中提取。插补阶段是一个迭代过程,在多次迭代后使用插补值来实现平稳分布。变量按照 VAR 语句中指定的顺序按顺序插补。用于推导后验分布的观测值包含观测到的响应变量,协变量可以是观测或填充(填充阶段)或插补(插补阶段)。
尽管结果通常被认为是稳健可靠的,但 FCS 的理论基础需要更多的验证。此外,当与 MNAR 语句一起使用时,间歇性缺失值将与单调缺失值一起在 MNAR 的假设下进行估算。
为了解释缺失值的不确定性,MI 重复多次,从而生成完整数据的多个版本,每个版本中的观测值保持不变,并且由于随机抽取,插补值不同。根据相对效率、功效、标准误差和估计系数的 p 值,建议的插补次数从 5 到100 不等(参见 SAS/STAT® 14.1 用户指南,2015年的评论)。非正式验证插补数量是否足够的一种方法是在更改插补数量或随机种子时检查估计结果的稳定性(O'Kelly和 Ratitch,2014 年)。有人建议将插补数量增加到数千个可以稳定关于更改随机种子的估计结果,并且结果更接近使用等效模型的最大似然估计,同时不会给现代统计应用程序带来技术困难(O'Kelly 和 Ratitch,2014)。此外,还提供了选项 MIN、MAX 和 ROUND,以使插补值与观测值更加一致。MIN 和 MAX 限制插补值的范围,当插补值超出指定范围时,该过程将重绘另一个值。将插补值限制在指定范围内可以避免生成不可能且无意义的值,但也可能会带来偏差。当结果采用大范围的离散值并在分析中被视为连续变量时,通常不建议使用 ROUND;然而,在使用 MCMC 进行部分插补以实现分类变量的单调缺失模式的情况下,插补值应四舍五入(O'Kelly 和 Ratitch,2014年)。
生成多个完整的数据集后,使用与初次分析相同的方法,例如使用 PROC MIXED 的 MMRM,分别分析每个数据集。分析结果,包括来自每个插补数据集的估计值和相关标准误差,使用 Rubin 规则(Little 和Rubin,2002)组合成一个具有标准误差的估计值,该规则由SAS 中的 PROC MIANALYZE 直接实施。单点估计是从每个插补数据集获得的参数估计的平均值。总体方差包括插补内方差和插补间方差。内插补方差是数据集中方差的平均值;插补间方差是跨数据集的参数估计值的样本方差。得出总体方差的公式是 “ Varwithin + (1 +1/M ) VarBetween ”,其中 M 是插补数据集的数量。点估计值和总体方差可用于构建t 统计量,用于关于估计参数的假设检验.
为了说明,模拟了一个类似于典型随机精神分裂症临床试验的数据集。主要疗效终点是试验组和对照组之间阳性和阴性症状量表 (PANSS) 总分在从基线到第 6 周的平均变化方面的差异。该数据集名为“NON_MONO”,包含 380 个观测值和以下变量:USUBJID、TRT01PN、REGION、Y0、Y1、Y2、Y3、Y4、Y5 和 Y6。变量 USUBJID 是唯一的受试者 ID。变量 TRT01PN 取值 1 和 0,其中 1 表示试验组,0 表示对照组。变量 REGION 采用值 1、2 和 3,它们表示三个不同的区域。Y0 是基线 PANSS 总分,Y1 到 Y6 对应于从第 1 周到第 6 周收集的 PANSS 总分。主要分析是 MMRM,PANSS 总分从基线到第6 周的变化作为响应变量,治疗组、区域、PANSS 总分的基线值、访视、基线值通过访视交互作为固定效应。使用 PROC MIXED 进行初步分析,假设 MAR。在 MNAR 的假设下进行敏感性分析,以测试统计推断对偏离 MAR 的稳健性。以下陈述用于检查数据的缺失模式:
proc mi data=non_mono nimpute=0;
var trt01pn region y0-y6;
ods output missPattern=pattern;
run;
通过指定 NIMPUTE=0,PROC MI 不会插补缺失值,而只显示数据的缺失模式。VAR 语句按为其创建缺失模式的顺序指定变量。缺失的模式可以使用 ODS OUTPUT 语句输出为 SAS 数据集。
该过程创建了输出 1,如下所示。完全观察到协变量 TRT01PN 和 REGION。完全观察到基线结果 Y0,部分观察到基线后结果 Y1 至 Y6。数据中存在非单调和单调缺失模式的混合,其中大多数是单调缺失模式。
输出 1 显示了数据“NON_MONO”的缺失数据模式
输出 1.PROC MI NIMPUTE=0 语句的输出
以下语句调用 MCMC 程序并指定 IMPUTE=MONOTONE,以在 MAR 假设下将任意缺失模式转换为单调缺失模式:
proc mi data
= non_mono out = monotone nimpute = 1000 seed = 123
min = . . . 30 30 30 30 30 30 30
max = . . . 210 210 210 210 210 210 210;
var trt01pn regn1 regn2 y0 y1 y2 y3 y4 y5 y6;
mcmc chain = multiple impute = monotone;
run;
PROC MI 读取数据集 “NON_MONO”并生成数据集 “MONOTONE”。VAR 语句按创建单调缺失模式的顺序指定协变量和结果。REGION 是一个具有三个级别的分类变量,因此使用创建两个虚拟变量,REGION=3 用作参考组。选项 NIMPUTE 将插补次数指定为 1000,这将创建 1000 个单调缺失数据副本,并自动创建一个值为 1 到 1000 的索引变量 _IMPUTATION_ 来区分数据集的每个副本。选项 MIN 和 MAX 中指定的数字对应于VAR 语句中的变量。由于 TRT01PN 和REGN1 和 REGN2不需要插补,因此被指定为这些变量的时间段没有应用限制。检查数据集“MONOTONE” 的缺失模式,在输出 2显示.
输出 2.数据集 'MONOTONE' 的单调缺失模式
以下两个代码片段实现了基于对照的模式插补,并且是等效的:
proc mi data=monotone out=imputed1 seed=124 nimpute=1
min = . . 30 30 30 30 30 30 30
max = . . 210 210 210 210 210 210 210;
by _imputation_;
class trt01pn region;
var region y0 y1 y2 y3 y4 y5 y6;
monotone reg(/details);
mnar model(y1 y2 y3 y4 y5 y6/ modelobs= (trt01pn='0'));
run;
proc mi data=monotone out=imputed2 seed=124 nimpute=1
min = . . 30 30 30 30 30 30 30
max = . . 210 210 210 210 210 210 210;
by _imputation_;
class trt01pn region;
var region y0 y1 y2 y3 y4 y5 y6;
monotone reg(/details);
mnar model(y1/ modelobs= (trt01pn='0'))
model(y2/ modelobs= (trt01pn='0'))
model(y3/ modelobs= (trt01pn='0'))
model(y4/ modelobs= (trt01pn='0'))
model(y5/ modelobs= (trt01pn='0'))
model(y6/ modelobs= (trt01pn='0'));
run;
MONOTONE 和 MNAR MODEL 语句用于按 VAR 语句中列出的顺序插补缺失的结果。处理变量 TRT01PN 在 CLASS 语句中,但未作为模型效应包括在内。MODELOBS= (TRT01PN='0') 表示仅使用对照组来推导插补模型。变量 Y1、Y2、Y3、Y4、Y5 和 Y6 在 MODEL 语句后指定,这意味着从 Y1 到 Y6 的所有 6 个结果都将使用对照组的观察值进行估算。如果在 MODEL语句中省略并在 VAR 语句中指定,则将使用两个治疗组的观察值估算结果值。Y1 到 Y6 可以像在第一个代码片段中一样在单个 MODEL 选项之后一起列出,也可以像第二个代码片段中一样使用多个 MODEL 选项单独列出。MONOTONE REG 指定 Y1-Y6 使用回归法进行插补。需要注意的是,在指定选项 MIN 和 MAX 时,尽管TRT01PN 未出现在 VAR 语句中,但第一个数字用于TRT01PN。由于 VAR 语句后列出了 8变量,因此指定了 9 min 和 max。数据集“MONOTONE” 已经包含 1000 个数据副本,因此,每个数据集只执行一次插补(用 “BY _IMPUTATION_ ”表示 “)。
以下语句说明了使用增量调整模式插补的插补:
proc mi data=monotone out=imputed seed=125 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(y1 / shift=1 adjustobs=(trt01pn='1'))
adjust(y2 / shift=1 adjustobs=(trt01pn='1'))
adjust(y3 / shift=1 adjustobs=(trt01pn='1'))
adjust(y4 / shift=1 adjustobs=(trt01pn='1'))
adjust(y5 / shift=1 adjustobs=(trt01pn='1'))
adjust(y6 / shift=1 adjustobs=(trt01pn='1'));
run;
要插补的变量在 VAR 语句中列出。需要调整的变量在 MNAR ADJUST 语句中指定。默认情况下,ADJUST 选项中指定变量的所有插补观测值都将进行调整,通过使用子选项 ADJUSTOBS 指定分类变量的子级,调整将应用于由分类变量的子级确定的插补观测值子集。还应在 CLASS 语句中指定分类变量。有几个子选项可用于指定调整量,例如,对于插补连续变量,有子选项 SHIFT 用于添加常量,SCALE 用于乘以常量因子,SIGMA 用于添加模拟值。上面的代码将试验组中的插补结果 Y1 到 Y6 增加了 1 的值。调整应用于每次访视,直到研究结束,调整后的值用作预测因子来估算后续响应,这是 Ratitch 等人提出的第二个变体(Ratitch 等人,2013 年)。注意:处理变量 TRT01PN 在 CLASS 语句中指定,并且也作为模型效应包含在内。
Ratitch 等人提出的第一个变体仅将调整应用于每个受试者的试验组的第一个未观察到的结果,并且调整后的插补值用作预测因子来估算后续的缺失值。下面的语句说明了第一个变体:
%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);
Ratitch 等人提出的第三个变体在假设MAR 下估算所有缺失值后,在所有访问中将调整应用于实验组的插补值。
以下命令说明了第三种变体:
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;
除了 MONOTONE 语句外,MNAR 还可以与 FCS 语句一起使用。当与 ADJUST 选项一起使用时,调整将在 P phase应用,调整后的值将用作预测因子来估算 P phase中的其他变量。
以下语句使用 MNAR 和 FCS 语句实现基于对照的模式插补和增量调整模式插补:
proc mi data=non_mono out=imputed seed=128 nimpute=1000
min = . . 30 30 30 30 30 30 30
max = . . 210 210 210 210 210 210 210;
class trt01pn region;
var region y0 y1 y2 y3 y4 y5 y6;
fcs reg(/details);
mnar model(y1 y2 y3 y4 y5 y6/ modelobs= (trt01pn='0'));
run;
proc mi data= non_mono out=imputed seed=129 nimpute=1000
min = . . 30 30 30 30 30 30 30
max = . . 210 210 210 210 210 210 210;
class trt01pn region;
var trt01pn region y0-y6;
fcs reg(/details);
mnar adjust(y1 / shift=1 adjustobs=(trt01pn='1'))
adjust(y2 / shift=1 adjustobs=(trt01pn='1'))
adjust(y3 / shift=1 adjustobs=(trt01pn='1'))
adjust(y4 / shift=1 adjustobs=(trt01pn='1'))
adjust(y5 / shift=1 adjustobs=(trt01pn='1'))
adjust(y6 / shift=1 adjustobs=(trt01pn='1'));
run;
mnar 的 option 和 suboption 的指定方式与 MONOTONE 语句中的相同。由于 FCS 可以处理任意缺失模式,因此无需先将数据集转换为单调缺失模式,可以一步完成插补。使用与主要分析相同的方法分别分析每个插补数据集。插补后,数据集采用宽格式,其中不同的变量 (Y0-Y6) 表示在不同情况测量的结果。在使用 PROC MIXED 进行分析之前,需要将数据集转换为长格式,其中一个变量代表所有结果,具有不同的 AVISITN 值来区分不同的情况。
proc mixed data=imputed;
by _imputation_;
class region trt01pn(ref='0') usubjid avisitn;
model chg = region trt01pn avisitn trt01pn*avisitn base base*avisitn/ddfm=kr2;
repeated avisitn / subject=usubjid type=un;
lsmeans trt01pn*avisitn /pdiff cl;
ods output lsmeans=lsmeans diffs=diffs;
run;
BASE 为 Y0,CHG 是相对于基线的变化(Y1 - Y0 到 Y6 -Y0)。分析结果使用 ODS OUTPUT 语句存储为 SAS 数据集。每次访视的每个治疗组的最小二乘均值 (LSM) 输出到数据集“LSMEANS”。试验组和对照组每次就诊的 LSM 差异输出到数据集 “DIFFS” 中。
在最后一步中,将使用 PROC MIANALYZE 将从 PROC MIXED 程序获得的分析结果合并为具有标准误差的单个估计。代码如下:
proc sort data=lsmeans;by trt01pn avisitn _imputation;run;
proc mianalyze parms=lsmeans;
modeleffects trt01pn*avisitn;
ods output ParameterEstimates=lsm;
by trt01pn avisitn;
run;
proc sort data=diffs;by avisitn _imputation;run;
proc mianalyze parms=diffs;
modeleffects trt01pn*avisitn;
ods output ParameterEstimates=dif;
by avisitn;
run;
数据集 “LSMEANS” 和 “DIFFS” 使用 PARMS 选项传递给 PROC MIANALYZE 进行组合。MIANALYZE 过程读取变量 EFFECT 中包含的效应名称、变量 ESTIMATE 中包含的估计值、变量 STDERR中包含的标准误差,并通过变量 _IMPUTATION_ 区分每个插补。语句 MODELEFFECTS 要分析的效果是按访视交互项 TRT01PN*AVISITN 进行治疗。BY 语句用于确保每次访视每个治疗组组合 LSM,并且每次访视组合治疗组之间 LSM 的差异。使用 ODS 语句将结果输出到数据集 “LSM” 和 “DIF”。
在纵向临床试验数据中,数据缺失是不可避免的,并且主要分析通常在 MAR 的假设下进行。各种 MNAR 情景下的敏感性分析是监管假设要求的。SAS® 版本 9.4 PROC MI 提供了一个 MNAR 语句,具有两个选项 MODEL 和ADJUST,它使用模式混合模型的多重插补方便地实现敏感性分析。MNAR 语句可以与 MONOTONE 语句一起使用来处理单调的缺失数据模式,与 FCS 语句一起使用来处理任意缺失数据模式。在本文中,讨论了使用 MNAR 语句实现敏感性分析的方法,并介绍了 SAS 代码。
SAP 模板:
Control-based Pattern-Mixture Model (PMM)
A control-based Pattern-Mixture Model (PMM) will be used to explore the possibility of data missing not at random (MNAR) for subjects who discontinued the study. For subjects who discontinued the study without any further follow-up data, their missing values after study discontinuation will be imputed under the assumption that their outcome would be the similar to those in the placebo group with similar background characteristics. For subjects who did not discontinue the study, their intermittent missing values will be imputed based on the MAR assumption. Multiple imputation will be used to account for uncertainty in the imputation process and results from the imputed datasets will be combined using Rubin’s method. Further details are provided below.
The covariates and baseline characteristics which can be predictive of the response will be included in a multiple imputation procedure (SAS PROC MI) and will include the following:
Baseline value of efficacy measurement (continuous)
Observed value of efficacy measurement at V1 (continuous)
Observed value of efficacy measurement at V2 (continuous)
Observed value of efficacy measurement at V3 (continuous)
Observed value of efficacy measurement at V4 (continuous)
Observed value of efficacy measurement at V5 (continuous)
Observed value of efficacy measurement at V6 (continuous)
1.Intermittent missing data will be imputed using MCMC methods, assuming MAR, within each treatment group. SAS PROC MI will be utilized for this step using the MCMC impute=monotone option. A total of 100 datasets will be created. These datasets will be utilized in Step #2.
2. The remaining missing values with a monotone missing data pattern will be imputed in this step. Control-based PMM imputation will be performed. With this imputation model, the missing efficacy measurements in the active group will not be constructed from the observed data in the active group but rather from the observed data in the placebo group. We will also use this model to impute missing efficacy measurements in the placebo group. The MNAR statement in SAS PROC MI will be used to impute missing values under the aforementioned assumptions. This will be performed for the 100 datasets. After this step, the 100 datasets will be fully imputed.
3. A total of 100 fully imputed datasets will be created (M=100). Since multiple imputation is a stochastic method, slight differences in output can be expected for different initial states of the random number generator. The seed numbers will be identified in the SAS programs to allow for reproducibility.
4. After the missing data imputation is completed using the above steps, absolute change/percentage change values will be calculated in each of the imputed datasets at each visit.
5. These 100 datasets will be analyzed using the MMRM for the primary efficacy endpoints.
6. Treatment effects (difference in LS means between treatments) from these 100 analyses will then be combined using Rubin’s Method via SAS PROC MIANALYZE procedure for each endpoint.
Modified control-based Pattern-Mixture Model (PMM)
A multiple imputation washout model will be utilized for the primary efficacy analysis V 6 endpoint. a modified control-based Pattern-Mixture Model (PMM) that will be used to explore the possibility of data missing not at random (MNAR) for subjects who discontinued the study early. For subjects who discontinued the study early, their missing values will be imputed under the assumption that their outcome would be similar to those in the placebo group with similar background characteristics. For subjects in the active group only missing V 6 values will be imputed. For subjects in the placebo group their missing values over all visits after early termination will be imputed based on the missing at random (MAR) assumption. Multiple imputation will be used to account for uncertainty in the imputation process and results from the imputed datasets will be combined using Rubin’s method. Further details are provided below.
The covariates and baseline characteristics which can be predictive of the response for the subjects in the active group who completed all doses and have data present at V 7(considered to have completed the study) will be included in a multiple imputation procedure (SAS PROC MI) and will include the following:
Baseline value of efficacy measurement (continuous)
Observed value of efficacy measurement at V 6 from the active group(continuous)
The covariates and baseline characteristics which can be predictive of the response for the remaining subjects in the active group will be included in a multiple imputation procedure (SAS PROC MI) and will include the following:
Baseline value of efficacy measurement (continuous)
Observed value of efficacy measurement at V 6 from the placebo group (continuous)
The covariates and baseline characteristics which can be predictive of the response for the placebo group will be included in a multiple imputation procedure (SAS PROC MI) and will include the following:
Baseline value of efficacy measurement (continuous)
Observed value of efficacy measurement at V 1 (continuous)
Observed value of efficacy measurement at V 2 (continuous)
Observed value of efficacy measurement at V 3 (continuous)
Observed value of efficacy measurement at V 4 (continuous)
Observed value of efficacy measurement at V 5 (continuous)
Observed value of efficacy measurement at V 6 (continuous)
Observed value of efficacy measurement at V 7 (continuous)
1.Intermittent missing data in the placebo treatment group will be imputed using MCMC methods, assuming MAR. SAS PROC MI will be utilized for this step using the MCMC impute=monotone option. A total of 100 datasets will be created. These datasets will be utilized in Step #2.
2.The remaining missing values in the placebo group with a monotone missing data pattern will be imputed in this step. Missing data will be imputed assuming data are MAR. Only subjects in the placebo group will be utilized in this step. SAS PROC MI will be used to impute missing values utilizing the monotone reg option. This will be performed for the 100 datasets. After this step, the 100 datasets will be fully imputed for the placebo treatment group. These datasets will be utilized in Step #3.
3.Subjects in the active group who received all 4 doses of study medication, have the V 6 value missing, and have evaluable data at V 7 will be included in this step. Missing values at V 6 will be imputed assuming data are MAR. Only subjects in the active group will be included in this step. Observed Baseline and V 6 data will be utilized to impute missing V 6 data utilizing SAS PROC MI. This will be performed 100 times to create 100 datasets that are fully imputed at V 6.
4. The remaining missing values at V 6 in the active group will be imputed in this step.Note that the subjects with imputed active V 6 data from Step #3 will not be utilized in this step. Control-based PMM imputation will be performed. With this imputation model, the missing efficacy measurements in the active group will not be constructed from the observed data in the active group but rather from the observed and imputed data in the placebo group at V 6. Baseline data will also be utilized in the imputation. The MNAR statement in SAS PROC MI will be used to impute missing values. This will be performed for the 100 datasets.
5. The imputed data from Step #3 will be combined with the imputed data from Step #4 to create 100 fully imputed datasets.
6. A total of 100 fully imputed datasets will be created (M=100). Since multiple imputation is a stochastic method, slight differences in output can be expected for different initial states of the random number generator. The seed numbers will be identified in the SAS programs to allow for reproducibility.
7. After the missing data imputation is completed using the above steps, absolute change/percentage change values will be calculated in each of the imputed datasets at each visit.
8. These 100 datasets will be analyzed using ANCOVA models with fixed effect of treatment group and baseline as a covariate for primary efficacy endpoint.
9. Treatment effects (difference in LS means between treatments) from these 100 analyses will then be combined using Rubin’s Method via SAS PROC MIANALYZE procedure for each endpoint.
Delta Shift Method
The Delta Shift Method is based on the observed distribution and shifts the observed means at the time points after dropout by a pre-specified value. In each pattern, the distribution of missing values conditional on observed values is based on the shifted means, and imputations are drawn from the modified distribution. This approach models a diminishing placebo effect after a subject drops out.
The sensitivity analysis will use different values for the shift parameter Δ. Delta will start with 0 and be increased by 0.1 points until the tipping point has been reached. The tipping point is defined as the delta that must be added in order to overturn conclusions from the primary analysis from statistically significant to statistically insignificant. Starting with 0 enables to evaluate MI under the MAR assumption.
The shift parameter is constant, i.e., the same shift parameter will be used for all treatment arms, for all times after dropout, and for all patterns. Based on this, the imputation step will be performed as follows:
a. Estimate M sets of parameters of the linear model. All M parameter datasets will be stored in an analysis dataset.
b. Generate M completed datasets using the M sets of parameters from step 1.
c. Modify the completed datasets by adding a shift Δ to each imputed value. All M imputed datasets will be stored in an analysis dataset.
All missing values will be imputed in the same way, i.e., no differentiation between intermittent missing values and missing values after dropout is made.
Take home message:
1.PMM中,Y和R在观测协变量X条件下的联合分布为p(Yo,Ym,R|X) = p(Yo,Ym|R,X)p( R | X) = p(Ym|Yo,R,X)p(Yo|R,X) p(R|X)。MNAR 假设中,不同p(R|X)模式下p(Ym|Yo,R,X)与p(Yo|R,X)的关系不总是相同的。换言之,缺失数据的分布与观测数据的分布是不同的。根据不同的p(R|X)模式以及缺失数据与观测数据的不同假设。目前常用的有基于 delta 调整的PMM以及基于对照的PMM,MNAR比较常用。
2.Li(2019)的FCS,比O'kelly(2011)的单调回归方法更加适用于任意缺失类型数据。
3.GSK的five Macro中,%delta_pmm和%cbi_pmm对应基于 delta 调整的PMM以及基于对照的PMM,但不适用于非正态数据和time to event数据。
4.基于Guideline on Missing Data in Confirmatory Clinical Trials,EMA认为PMM方法提供了更加灵活的框架。基于Panel on the Handling of Missing Data in Clinical Trials,与选择模型selection model相比较,FDA更加支持PMM方法。 欧洲药品管理局 指南和美国国家研究委员会 的 FDA 授权小组报告都强调根据关于缺失机制的明确假设仔细选择主要分析方法的重要性,而且还强调执行一系列敏感性分析的必要性,这些分析在不同假设条件下对主要分析的结果进行压力测试。
5.Pattern是一组与退出相关的具有相似特征的患者。比如基于退出时间,基于停药原因,基于治疗组。或基于上述任何一项的组合。
6.调用 MCMC 程序并指定 IMPUTE=MONOTONE,以在 MAR 假设下将任意缺失模式转换为单调缺失模式时,因为MCMC和Class不连用,MCMC只能用于定量,所以分类变量需要dummy。
7.基于 delta 调整的PMM以及基于对照的PMM的VAR语句中,后者因为没有治疗者效应,不需要加入。
8.LSM 的线性汇总,在 MMRM 的 PMM 下,方差估计需要 delta 近似法完成。
9.Select visit constrains在%patternmixture的Marco Itype中可以设置,如果用所有的available data, model是在MAR下;通常是MNAR下的NFMA(Non future missing value)。
10.对于Select identifiability constraints, Option MODELOBS=CCMV(complete case missing value restrictions) 或者MODELOBS=NCMV(nearest case missing value restrictions)可以在%patternmixture中Iconstraint实现,但2012年5月4日版本不支持available case missing data restriction (ACMV) 。
Sample call:
%patternmixture( Iconstraint=NCMV,
Itype=NFMV,
seedgen=8857954,
numberimputations=5,
YVAR=%STR(CHANGE),
MODEL=%STR(base treatment visit base*treatment base*visit treatment*visit base*treatment*visit),
classvars=%STR(treatment visit), id=,
MODEL2=%STR(base inv dgroup treatment visit dgroup*treatment base*treatment base*visit treatment*visit dgroup*treatment*visit base*treatment*visit),
classvars2=%STR(dgroup INV treatment visit),
othervars=%STR(base),
TITLE=%STR(Pattern Mixture Model Analysis),
FOOTNOTE=%STR() );
参考文献:
1.PharmaSUG2011 - Paper SP04
Implementation of Pattern-Mixture Models Using Standard SAS/STAT Procedures
2.PharmaSUG 2019 - Paper ST-103
SAS® V9.4 MNAR statement for multiple imputations for missing not at random in longitudinal clinical trials