无需VBA的Excel患者级健康经济建模:提升卫生技术评估准确性的创新教程
【字体:
大
中
小
】
时间:2025年10月10日
来源:PharmacoEconomics 4.6
编辑推荐:
为解决HTA(卫生技术评估)中Excel队列模型难以捕捉患者异质性导致的偏倚问题,研究人员开发了基于LAMBDA和REDUCE函数的无VBA患者级离散事件仿真(DES)方法。该研究实现了4秒内完成万例患者模拟,与VBA模型结果一致且显著优于传统DICE方法,为HTA决策提供了更透明、高效的技术路径。
在卫生技术评估(Health Technology Assessment, HTA)领域,成本效益模型长期以来依赖于微软Excel中的队列水平模型。尽管这种方法因电子表格软件的普及和计算负担较轻而被广泛接受,但其在捕捉患者异质性和跟踪个体病史方面存在明显局限。当治疗效果因患者特征不同而存在显著差异时,队列模型的简化假设可能导致结果偏倚,进而影响HTA决策的准确性。例如,英国国家卫生与护理卓越研究院(National Institute for Health and Care Excellence, NICE)等技术评估机构在评审过程中曾多次指出此类模型在临床合理性上的不足。
为什么在决策错误可能影响人群健康结果的背景下,HTA利益相关方仍倾向于使用准确性较低的队列模型?答案可能在于Excel软件的普及性和历史功能限制。相对于基于代码的编程语言(如R),Excel电子表格中的逻辑和计算被视为更易访问和透明,尽管复杂计算可能变得难以审查。此外,制药公司作为HTA申请中成本效益模型的主要委托方,有时因内部软件使用限制而要求供应商或内部团队仅使用Excel进行分析。因此,Excel仍然是HTA建模的首选软件,而迄今为止,在Excel中可访问的建模基本上意味着队列水平建模。
此前,曾有研究尝试通过离散集成条件事件(Discretely Integrated Condition Event, DICE)方法将HTA模型类型扩展到队列水平之外,但该方法与之前尝试在标准电子表格软件中构建患者级离散事件仿真(Discrete-Event Simulation, DES)或离散时间仿真(微模拟)的方法存在相同的关键限制:执行时间过慢。在2017年NICE技术评估中,DICE方法的应用因运行时间问题遭到证据审查组(现称为外部评估组)的批评,并在评估中期被迫使用VBA代码重新实现模型以提升速度。这类模型运行缓慢的原因在于每个计算点都需要VBA与Excel电子表格交互,这在需要为足够大的模拟样本生成稳定的概率平均结果时变得不切实际。
然而,Excel功能的一些最新发展可能为更高效的患者级HTA模型打开了大门。Excel 365包含了以前不可用的动态数组函数,这些函数非常适合在无需VBA的情况下高效指定患者级HTA模型。值得注意的是,2021年引入的LAMBDA函数允许用户在Excel单元格中定义自定义函数,而无需依赖VBA或外部脚本支持。将LAMBDA与Excel 365的另一函数REDUCE结合使用,可以同时计算患者级结果,正如本教程所展示的。
鉴于这些新功能的相对新颖性,它们在构建经济模型中的应用仍然有限。虽然新Excel函数在健康经济模型中的应用的一般方面已有所传播,但据我们所知,此前没有此类功能在为HTA提交提供信息的模型中的应用。我们假设HTA流程中的关键利益相关者可以访问最新的Microsoft Office软件。通过针对性检索,我们发现此前没有使用LAMBDA函数的经济模型例子:在MEDLINE(通过PubMed)中使用“lambda”和“Excel”作为搜索词仅返回一条结果,且与我们的方法无关。
因此,本教程旨在提供逐步指导,说明如何在Excel中实现无VBA的患者级模型,并使用参考案例DES作为案例研究。该教程面向熟悉在Excel中构建健康经济模型的用户。本文的其余部分包括三个部分:第一部分描述模型的设计,并提供逐步的实施说明;第二部分比较复制练习的关键结果,包括运行时间和准确性;第三部分讨论该方法在HTA应用中的优势和限制,考虑潜在影响和未来研究方向。
研究人员通过使用LAMBDA、REDUCE、LET等函数在Excel中构建了一个患者级的离散事件仿真模型,该模型模拟了患者随时间发生的健康事件(如椎体骨折、髋部骨折和全因死亡),并累计计算质量调整生命年(Quality-Adjusted Life Years, QALY)和成本。模型利用动态数组工具(如VSTACK和HSTACK)实现状态迭代更新,并通过高级公式环境(Advanced Formula Environment, AFE)提升公式可读性和管理效率。该方法避免了VBA代码的使用,仅依赖Excel内置函数完成所有计算。
模型结构基于NICE决策支持单元(Decision Support Unit, DSU)技术支持文档15中描述的框架,模拟单个假设患者随时间经历的可能健康事件序列。每次迭代中,模型评估一组临床结果的首次发生时间,更新患者的健康和经济状态,并累计计算QALY和成本。仿真持续直到处理死亡事件。患者状态表示为行向量,包含当前时间、累计和折现QALY、累计和折现成本、椎体或髋部骨折发生标志、年度累计成本(如髋部骨折后的持续成本)以及死亡标志。仿真从患者存活且未发生任何骨折的初始状态开始,该状态记录为事件历史矩阵的第一行。后续状态通过迭代生成并附加到矩阵中。
模型使用Excel的REDUCE函数实现事件历史的递归累计。每次迭代中,仿真提取历史矩阵中的最新行,并评估患者是否存活。如果存活,则确定下一个事件,使用processEvent函数更新状态,并通过VSTACK附加新行。该过程持续直到患者死亡或达到用户定义的迭代次数上限。模型随后返回完整历史或总结性结果(如总QALY、总成本和死亡状态)。事件时间的随机生成通过用户定义的LAMBDA函数实现,这些函数模仿标准概率分布。每个模拟患者需要一组唯一的均匀随机抽样值,这些值作为固定输入传递以确保确定性复制。
具体而言,两个随机值用于抽样椎体骨折时间,两个用于髋部骨折时间,一个用于生存。这些随机抽样可以外部生成或使用Excel的RAND()函数生成,通常以表格形式组织,每行对应一个模拟患者。runSim函数构成仿真模型的核心引擎,它初始化患者状态,迭代应用processEvent函数随时间演变状态,并根据输出的详细程度设置返回最终结果的总结或完整的事件历史。
processEvent函数确定下一个发生的事件(椎体骨折、髋部骨折或死亡),使用适当的处理程序更新患者状态,并返回代表更新后状态的新行。该函数作为仿真的决策组件,接收患者当前状态以及所有相关事件时间和模型参数作为输入。函数首先根据抽样时间确定三个可能事件中哪个最先发生:椎体骨折、髋部骨折或死亡。一旦确定最早事件,函数调用相应的事件处理程序处理临床转变,并计算对患者健康和经济结果的后续变化,然后返回包含更新时间、累计QALY、总成本以及反映事件发生的二进制标志的新状态向量。
事件处理程序包括椎体骨折处理程序、髋部骨折处理程序和死亡处理程序。椎体骨折导致一次性成本和暂时的健康效用降低。事件在指定时间发生,模型计算自先前状态以来产生的QALY和成本,使用连续折现。髋部骨折导致效用降低和年度持续成本(如护理成本)的开始,并增加患者的死亡概率。处理程序处理这些效应并相应更新状态。死亡处理程序通过计算最后记录时间点和死亡时间之间产生的效用和持续成本,最终确定单个患者的仿真。这些值使用连续折现计算,与其他事件处理程序中使用的方法一致。处理死亡事件后,患者状态通过将死亡标志设置为TRUE来更新,这表示仿真循环的终止。
健康经济模型通常应用基于时间的折现以反映未来健康效益和成本的减少现值。本仿真对QALY和货币成本均应用连续折现。所有函数在Excel中定义为命名的LAMBDA函数,并返回合并到演变患者状态向量中的标量值。
模型复制和比较结果显示,基于LAMBDA的Excel方法实现了与原始VBA实施、DICE方法和R代码实施一致的结果。在10,000名模拟患者中,成本和QALY结果高度一致,仅由于随机变异存在微小差异。运行时间方面,LAMBDA方法需约4秒,仅次于VBA模型的1.3秒,显著快于DICE方法的25分钟。R实施需6.8秒,但未进行速度优化。值得注意的是,通过硬编码与VBA模型相同的随机数流,LAMBDA模型实现了与VBA模型完全相同的结果。
本研究未生成用于概率敏感性分析(Probabilistic Sensitivity Analysis, PSA)的二阶概率结果,但实施PSA仅需将现有的逐行模拟扩展到包括参数输入的额外抽样。总运行时间将随内部和外部PSA循环的乘积线性缩放,反映模拟患者总数和指定的PSA迭代次数。
讨论部分指出,本教程展示了如何在Excel电子表格逻辑中实施患者级成本效益模型,使用Excel 365功能实现无需VBA代码的高效计算。示例使用了先前在《PharmacoEconomics》上发布的自由可用DES,允许感兴趣的读者在R代码、VBA代码、Excel中的DICE方法以及本教程描述的无VBA框架中比较和交互模型。
该方法的关键优势在于消除了在Excel电子表格逻辑中执行简单患者级模型与在VBA代码中执行的显著运行时间差异。对于负责构建和审查HTA成本效益模型的实践健康经济学家,该方法可能消除更广泛考虑更灵活模型类型的关键障碍。此外,向学生和更广泛受众学习和教授成本效益建模的障碍可能减少,并且通过潜在的透明度增益,质量保证可能提高。当然,学习本示例中使用的技术和功能仍存在一些障碍;所呈现的公式并非标准公式,可能对某些用户而言与VBA代码一样陌生。此外,这是一个相对简单的应用;更复杂的模型可能存在更大的透明度障碍。然而,当仅处理原生Excel而非带有VBA代码的Excel时,普通HTA成本效益模型利益相关者克服这些障碍可能更容易实现。
使用Excel函数实施DES和微模拟计算的能力有可能改进为HTA决策提供信息的成本效益分析,这可能最终减少HTA决策错误。例如,在为NICE HTA提交提供信息的眼科疾病治疗模型中,尽管队列级成本效益建模导致临床合理性有限的假设,但存在既定的先例。在一种治疗黄斑水肿导致视力障碍的技术的评估中,提交的分析因假设随时间固定的视力而受到批评。本论文中概述的发展可能降低未来向NICE和其他HTA机构提交的眼科技术中准确建模的障碍。
十多年来,一直有呼声要求成本效益模型在R中构建而非Excel。引用的好处包括能够在同一环境中运行试验数据的统计分析和模型成本效益,以及这可以带来的效率增益,特别是在新发布的临床试验数据切割时,以及开源软件的透明度好处。尽管如此,Excel仍然是HTA模型几乎普遍的软件选择,部分原因是行业对基于脚本的编程语言的熟悉度有限。最近的利益相关者焦点小组报告得出结论,R在HTA中缓慢采用的主要原因包括人力资源限制(培训有限、优先级、协作和变革阻力)、机构对R提交的接受/指导不明确以及关于包和模型结构的跨机构标准和建议沟通薄弱。Excel能力 advancements highlighted by this tutorial do not address all limitations of Excel relative to R (e.g., version control, capacity for statistical analysis), but they may quieten the debate for some use cases.
本案例研究存在局限性。新方法需要使用2021年或之后构建的Excel 365版本,这可能并非所有潜在用户都常规可用。如前所述,并且根据原始NICE DSU TSD 15模型,我们仅重新创建了确定性结果,尽管我们指出这也可以在没有VBA代码的情况下实现,并且根据我们的经验,对概率运行时间的影响应通过简单缩放预测,尽管我们承认历史上Excel在计算超过一定阈值时遇到困难。虽然我们将模型作为补充材料公开提供,但我们的案例研究特定于先前发布的DES。本教程未涵盖其他成本效益模型类型,尽管理解本文描述的函数和原理后,将LAMBDA、REDUCE和我们使用的其他函数应用于微模拟结构或更典型的队列级模型类型应该是可实现的。如上所述,最近已经传播了使用此类Excel 365功能在单个单元格公式中捕获整个马尔可夫轨迹的方法。
结论部分强调,本教程提供了关于如何使用Excel 365功能在Excel中实施先前发布的DES而无需VBA的逐步指导。该功能的更广泛使用可能会扩大用于解决HTA决策问题的成本效益模型类型,并有可能通过此以及潜在的透明度好处改进HTA决策。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号