一个使用动态随机的例子
本课提供了在Viedoc Designer,Viedoc Admin和Viedoc Clinic中配置动态随机化的例子。它还说明了用于为受试者分配治疗的算法,以及如何执行计算。
简介
关于随机服务
Viedoc支持随机。受试者可被以下方式随机:
- 静态随机 随机基于随机表
- 动态随机 (Pocock and Simon):随机基于算法
动态随机能保证受试者在治疗组的分布更均匀,基于会影响治疗组效果的预后因子。
在Viedoc中,两种随机方式的配置是类似的。主要的区别是:静态随机中会有一张列表(随机号,治疗组等)-随机表是由用户创建并且上传的,而动态随机是由系统基于算法创建出的随机表而分配药物给受试者。
您可单独上传一张分配列表将实验药品分配给受试者。当受试者随机后,Viedoc可以以此通知临床用户将哪些药品给哪些受试者。分配列表最常见的使用是在双盲试验中。上传分配列表与静态和动态随机的配置类似。
术语
术语 | 定义 |
---|---|
RTSM | 随机化和试验药物管理系统 |
盲态角色 | 角色不知道受试者的的用药组别。临床实验中大多数角色都是盲态的。 |
非盲统计师 |
Viedoc Admin中配置随机模块的系统角色。 非盲统计师可以查看到受试者的用药组,因此这个用户不应该在研究中有任何角色。一个非盲统计师不可有进入研究中承担任何盲态角色。 |
随机列表 | 随机列表中是用于分配受试者用药组的列表。随机表中会显示所有可用的随机号,当随机开始后(第一个受试者被随机),随机列表中会显示受试者被分配到哪个组别。 |
分配列表 | 分配列表用于给受试者分配研究药品。分配列表会显示所有可用的药品。当随机完成后,分配列表会显示受试者药品的分配。高级分配功能可有以下方式设置分配列表:
|
范围 |
定义可用随机号或选择药品的范围。以下可供选择:
|
权重(预后因子) |
影响受试者分组的因素,而这个作为随机受试者的输入属性比如性别或年龄。Viedoc支持下拉,单选,数值或字符作为权重。 |
结果 | 随机服务的结果,比如受试者的治疗组。 |
盲态结果 | 随机服务的结果,这个结果必须是盲态的直到受试者被揭盲或者某个受试者的紧急揭盲。这个结果在EDC里除了非盲统计师在Admin里可以看到,其他用户都不可以查看到这个信息,直到有用户在Viedoc Clinic中对受试者做了紧急揭盲(可见Viedoc Clinic中的紧急揭盲随机化,分配和紧急揭盲)。 |
流程
在Viedoc Designer,Admin中配置随机并在Clinic中执行。下图根据不同类型的分配描述了操作步骤和有权限的角色:
- 您可选择在随机的同时完成分配,这都可以在同一张表单上完成。这种情况下,该表单会被锁定(因此当用户在Viedoc Clinic中随机后该表单无法编辑)。
下图描述了该方式的流程: - 随机也配置高级分配功能 - 您可以在配置分配药物的表单时更加灵活:
- 分别配置随机和分配的表单,在流程中把这两步分开
- 可在研究中的不同访视中有多个分配药物
- 可在系统中取代已完成的分配
- 可撤销之前的分配
下图描述了该方式的流程:
This is a single-sourced file that should have the following content:
Introduction to randomization
若您需要更多信息,请查看:
- 在Viedoc Designer中的RTSM Settings
- 在Viedoc Admin中的配置一个静态随机
- 在Viedoc Admin中的配置一个动态随机
您也能在以下课程中查看到配置动态随机的例子:
您还能在我们的视频教:
一个实例的描述
让我们考虑以下情况:我们进行一项试验,比较三种治疗组:A,B和C。我们希望将患者随机分配给这些治疗方法,并且希望将治疗方法A分配50%,而治疗方法B和C分别占25%。可能影响治疗效果的预后因素是受试者的性别(男性或女性)和受试者的年龄(<= 30或> 30),我们希望在随机分配中取得平衡。我们认为,对于受试者的性别而言,平衡比对受试者的年龄更为重要,因此我们在要素性别上设置了较高的因素权重。
总结:
- 三个治疗组:A,B和C。
- A:B:C的分配比例= 2:1:1
- 两个因素:性别(男性或女性)和年龄(<= 30或> 30)
- 因素权重:性别2,年龄1。
流程
Viedoc Designer中完成的操作
在Viedoc Designer设置表单
在这个随机的例子中,我们使用两个表单:
- 添加受试者表单 - 包括两个字段:
- 性别
- 年龄
- 治疗组表单(随机表单)- 包括以下三个字段:
- 性别 - 返回添加受试者表单的性别的值。
- 年龄- 返回添加受试者表单的年龄的值。
- 治疗组- 包含一个具有三个选项的代码列表:A,B和C。此项将由随机服务生成。
在Add_SUBJ的研究开始的事件中,将表单Add Subject添加到活动ACT1中。在活动ACT2中添加了Treatment表单:在Treatment event中分配治疗,这是第一个计划的访视。
请注意! 随机表单(此处称为Treatment)必须包含您打算用于分配的所有输入因素和结果。
提示!一旦保存在Viedoc Clinic中,就无法再编辑随机表格。在表单中添加一条提示消息,要求Clinic用户在对患者进行随机分组之前确保数据正确(请参见下图)。
提示!因为Treatment表单中的Treatment项是将由随机服务生成的字段,并且不应由Clinic用户填写,所以最好使它对诊所用户不可见,只要患者还未随机的。为了实现此目的,您可以将可见性条件设置为高级条件满足为真,即为TREAT!= null(当该项不为空时显示该项)。然后,Clinic用户在打开表单时看不到该字段。但是,一旦诊所用户单击随机化,随机化服务将给受试者分配治疗组,该项不再等于空并出现在表单上。
在这个例子中,随机化结果(治疗组)不是盲的。如果您决定设置盲的结果,则该字段也必须包含在随机表单中。盲态结果将永远不会显示给Clinic用户,在导出中将不可见,并且您无法设置可见性条件或基于盲结果来编辑检查。
在Viedoc Designer中设置随机
随机化映射是在Viedoc Designer中研究设计中的研究设置中设置的。 随机映射告诉Viedoc随机形式在哪里以及如何使用该形式上的变量。
我们将随机化设置如下:
- 我们为Treatment表单选择访视,活动和表单。
- 作为因素,我们在Treatment表单中选择Gender和Age项。
- 作为结果,我们在Treatment表单中选择Treatment字段。 此项将由随机服务生成。
有关如何在Viedoc Designer中设置随机映射的逐步说明,请看RTSM Settings。
设置随机映射后,需要发布研究设计以使随机生效。
Viedoc Admin中完成的操作
邀请用户担任Unblinded Statistician角色
研究经理需要邀请用户加入非盲统计师的角色。 非盲统计师角色应仅授予应该是非盲且不参与研究评估程序的用户,否则盲态数据将被打破。 在这项研究中,非盲统计师统计师永远都不可能扮演盲态角色。
有关如何为用户分配角色的分步说明, 请见管理用户。
在Viedoc Admin中配置动态随机化
注意! 随机化只能由分配了系统角色非盲统计师的用户来配置。
要进入随机化页面,请在Viedoc Admin中的RTSM字段中单击工具箱图标。
在此示例中,我们不使用分配,因此我们仅设置一个随机列表,如下所示:
- 我们将列表的范围设置为研究。
- 作为因素,我们选择Gender和Age。
- 作为结果,我们选择Treatment。
随机方法选择动态随机(Pocock/Simon随机算法)。
请注意!只有满足以下条件,才能选择动态随机方法:
- 仅选择一个结果
- 所选的输入因子以及结果都有一个代码列表(不能使用自由文本字段)。
我们将动态随机化配置如下:
- 作为变分法,我们选择值域(这是集合中最大值和最小值之间的差)。
- 我们将概率设置为800(相当于80%)。
- 在我们的示例中,在Gender因子中实现平衡比在Age因子中实现平衡更为重要,因此我们将Gender的权重设置为2,将Age设置为1。
- 因为我们希望为治疗组A分配50%,为治疗组B和C分别分配25%,所以我们将治疗组A的分配比设置为2,将治疗组B和C的分配比例设置为1。
- 作为随机项最大值(每张随机列表),我们最多输入50个随机项。
有关如何在Viedoc Admin中设置随机化的分步说明请见配置一个动态随机。
Viedoc Clinic中完成的操作
在Viedoc Clinic中随机一个受试者
当诊所用户在Viedoc Clinic中添加了一个受试者(即填写添加受试者卡表单)并打开Treatment表单时,Gender和Age的值会自动从添加受试者卡表单中填充。 单击随机化后,受试者将被分配到其中一个治疗组。
注意! 在对受试者进行随机化后,随机化形式(Treatment表单)变为只读。 这意味着,即使原始添加受试者表单中的Gender或Age值发生变化,Treatment表单中的任何字段也无法编辑。后台计算
本节说明了如何在每次随机分配新受试者时进行计算,以分配三种治疗方法(A,B或C)之一。
参考文献
以下文章介绍了在Viedoc中实现的动态随机方法的基础理论:
- Pocock S.J. and Simon R. Sequential treatment assignment with balancing for prognostic factors in the controlled clinical trial. Biometrics 1975;31:103-115.
- Miller E. Probability sharing in a modified Pocock-Simon method. 12th Int. Conf. of S.C.M.A Jun 22, 2005.
下一篇文章介绍了在Viedoc中实现的改进的Pocock and Simon方法中使用的Donald E. Knuth的减法随机数生成器算法:
- Donald. E. Knuth. The Art of Computer Programming, volume 2: Seminumerical Algorithms. Addison-Wesley, Reading, MA, second edition, 1981.
Concepts and terminology for dynamic randomization
下表列出了根据Pocock and Simon方法用于动态随机化的算法所基于的术语。
术语 | 描述 | 计算方法 |
---|---|---|
D | 一个因子的值集中的变化量 |
|
G | 所有因素之间的不平衡总量 | 通过将每个因子的D与因子权重相乘,然后对所有因子求和,得出G。 |
P (p) | 分配使不平衡最小化的可能性 |
分配使不平衡最小化的可能性。可能性决定了人们希望偏爱治疗组的程度,从而导致最小的失衡。 在随机化期间,基于概率截止值,计算每个治疗分配的概率P。此概率临界值(以下称为p)是统计师提供的介于0和1之间的静态十进制数。在Viedoc中,必须将概率截止值输入为x / 1000。因此,对于0.8(80%)的p,应该输入数字800。 在随机化期间,每种治疗的P分布如下:
|
随机数 | 0到1之间的随机数 | 使用Donald E. Knuth的减法随机数生成器算法生成。 |
随机种子 | 一个用于初始化随机数生成器的值 | 该值基于代表当前日期的刻度数。 |
流程
使用上述算法,为要随机化的每个新受试者计算频率表。 使用基于刻度数的随机种子代表当前日期,生成一个大于或等于0且小于1的随机数。 使用Ps和该随机数,选择治疗指标,从而为患者分配该治疗。
添加新受试者并应随机分配治疗后,将执行以下计算:
计算
一旦第一个受试者被随机化,就可以从Viedoc Admin下载随机列表。
将下载一个Excel文件,该文件具有以下三页:
- Configuration (1)- 总结因素和结果在随机中的代码列表。(随机化方法,变分法,概率,每个列表的最大随机项,因子权重和分配比)。
- Current distribution (2)- 当前根据不同因素获得用药组的已随机受试者。
- Slots (3)- 每一行是一个受试者:
- 随机化的详细信息:因素和结果,受试者详细信息,对受试者进行了随机化的诊所用户的用户详细信息(电子邮件地址)以及随机化的日期和时间,
- 应用算法的详细信息:变化方法,概率P,因子权重,分配比,每个列表的最大随机项,Gs(每个可能分配的不平衡总量),Ps(每个可能分配的概率P), 随机数(使用Donald E. Knuth的减法随机数生成器算法生成的0到1之间的随机数)和随机种子(用于表示当前日期的滴答数,用于初始化随机数生成器的值)。 参见下图。
让我们考虑添加的第一个受试者,看看如何执行第一组计算以分配随机治疗组。
分配表中的所有值(在图中用2表示)在起点处都等于0。我们正在添加性别=女性且年龄> 30的第一个受试者。为此,我们遵循工作流程为三种可能的结果(治疗)分别计算D,G和P。
我们将使用以下符号:
- 因素权重
- wG-性别素子权重= 2
- wA-年龄的素子权重= 1
- 分配比例
- rA-治疗A的分配比例= 2
- rB-治疗B的分配比= 1
- rC-治疗C的分配比= 1
- 方差
- dAM-治疗方差变量= A,性别=男性的变量
- dAF-治疗方差变量= A,性别=女性的变量
- dA(<=30) -治疗方差变量= A,年龄<= 30的变量
- dA(>30)-治疗方差变量= A,年龄> 30变量
- dBM,dBF, dB(<=30),dB(>30), dCM,dCF,dC(<=30), dC(>30) -治疗组B和C的方差变量,与上述治疗组A的方法相同。
我们从假设地分配三种治疗组中的每一种开始,并为每种分配计算方差。由于要添加的受试者是年龄> 30岁的女性,因此我们只需要计算这些因子值的方差即可。
- 假设将分配治疗组A,我们将1分配到分配表中,在治疗组A的行中,在“女性“列中,在“年龄> 30”列中。每个因子的方差计算如下,并由图像的最后一个表格说明:
- dAF = 1 / rA-0 = 1/2 = 0.5(添加了一个女性受试者,这使分布表中与“女性”列相对应的最大值= 1,而最低= 0)
- dA(>30) = 1 / rA-0 = 1/2 = 0.5(添加了一个年龄> 30的受试者,这使得分布表中对应于年龄> 30的列的最大值= 1,而最低的= 0 )
- 假设将分配治疗组B,我们在治疗组B的行中“女性”列和“年龄> 30”列中向分配表添加1。每个因素的方差:
- dBF = 1 / rB-0 = 1(添加了一个女性受试者,这使得分布表中与“女性”列相对应的最大值= 1,最低值= 0)
- dB(>30) = 1 / rB-0 = 1(添加了一个年龄> 30的受试者,这使得分布表中对应于“年龄> 30”列的最大值= 1,最低值= 0)
- 假设将分配治疗组C,我们在治疗组C的行中“女性”列和“年龄> 30”列中向分配表添加1。每个因素的方差:
- dCF = 1 / rC-0 = 1(添加了一个女性受试者,这使分布表中与“女性”列相对应的最大值= 1,最低值= 0)
- dC(>30) = 1 / rC-0 = 1(添加了一个年龄> 30的受试者,这使得分布表中对应于“年龄> 30”列的最大值= 1,最低值= 0)
然后,我们为三种可能的治疗方案中的每一种计算不平衡总量。这些是随机项表中表格中显示的值(图像中为3),用于Gs列中的第一项:
- GA = dAFwG + dA(>30)wA = 0.5*2 + 0.5*1 = 1.5
- GB = dBFwG + dB(>30)wA = 1*2 + 1*1 = 3
- GC = dCFwG + dC(>30)wA = 1*2 + 1*1 = 3
然后,我们为三种可能的治疗分配中的每一种计算概率(P)。在我们的示例中,我们将概率(p)设置为0.8。 G最低(在我们的情况下为A)的治疗组将获得概率(P)为p(在我们的情况下为0.8)。剩余的治疗任务将分割剩余的概率。这些是在“插槽”表中的表(图像中为3)中显示的值,用于第一个条目的“ Ps”列:
- PA = 0.8(因此涵盖了所有大于或等于0且小于0.8的值)
- PB = 0.1(因此涵盖了所有大于或等于0.8且小于0.9的值)
- PC = 0.1(因此涵盖了所有大于或等于0.9且小于1的值)
然后,我们使用Donald E. Knuth的减法随机数生成器算法生成一个介于0和1之间的随机数,并基于基于刻度数的随机种子值来表示当前日期。对于第一个条目,此数字显示在随机列表的表中(图像中为3),在“随机”列中,在我们的示例中为Random = 0.934 ...考虑每个治疗分配的概率以及随机数,如图所示,治疗C将分配给第一个受试者。