多臂治疗规则的 Qini 曲线(Stefan Wager)
英文题目:
Qini Curves for Multi-Armed Treatment Rules
中文题目:多臂治疗规则的 Qini 曲线
单位:Stefan Wager
论文链接:
代码:GitHub - grf-labs/maq: Treatment rule evaluation via the multi-armed Qini
example:Qini curves: Automatic cost-benefit analysis • grf
摘要:Qini 曲线已成为评估数据驱动目标规则对治疗分配的好处的一种有吸引力的流行方法。我们提出了一种将Qini曲线推广到多个昂贵的处理效应,该机械臂量化了在不同预算水平下在单元和治疗臂之间最佳选择的值。我们开发了一种计算这些曲线的有效算法,并提出了基于自举的置信区间,这些置信区间在曲线上的任意点的大样本中精确。这些置信区间可用于进行假设检验,比较使用手臂的最佳组合和仅使用手臂子集的非目标分配规则(或忽略协变量的非目标分配规则)在不同预算水平下的治疗目标值。我们在模拟实验中展示了统计性能以及针对选举转折的治疗应用。
1简介
Qini 曲线最初是在营销文献中提出的 [Radcliffe, 2007],绘制了当我们改变预算时处理对治疗最响应的单位的平均策略效应。然后,我们可以通过评估在一系列不同预算级别进行的成本效益练习来量化治疗目标的价值。Qini 曲线已在各种实际应用中采用,以评估受资源约束的处理目标规则的经验性能。
二元处理下类似的指标的理论性质,以及曲线摘要下面积的扩展,最近受到了许多作者对统计文献中的关注,包括Imai和Li[2023, 2022],Sun等人[2021]和Yadlowsky等人[2021]。这些方法考虑了针对(可能代价高昂)二元干预分配的问题。在本文中,我们探索了对多个治疗组的场景的扩展,其中分配的好处和成本可能因单位而异。例如,低成本药物可能对一组人有益,但高成本药物可能对其中的一个子集更有益。通过两个臂的单独秦曲线分析此设置可以隐藏重要的效率权衡。对于特定的预算,最优策略可能需要为不同的人分配不同的药物;一个组的药物成本较低,另一个组的药物成本较高。确定将个体特征映射到几个治疗组之一的最佳治疗分配策略涉及解决约束优化问题。

我们开发了理论和统计框架,将Qini曲线扩展到我们有许多互斥且昂贵的处理的情况。我们表明,扩展到多个臂的秦i曲线保留了单个秦i的理想基于比率的解释治疗臂,不是确定最优分配的绝对成本,而是每个臂的增量效率。这意味着没有必要在相同的尺度上消除治疗效果和成本。如果收益与参与者集相对于成本的比率大于任何其他手臂和参与者集的相应比率,则将额外的预算单位分配给手臂和一组目标参与者(由其特征定义)。

图1:单臂治疗策略(虚线)的Qini曲线和多臂策略(实线黑线)的Qini曲线,使用第4节中描述的合成数据。增益定义为零成本控制的平均值。蓝线是仅考虑手臂 1 的平均治疗效果的秦曲线(因为手臂 2 具有负估计的平均治疗效果,所以它的平均值留在图中)。在0.5的预算下,忽略协变量的策略通过将每个单元分配给手臂1,获得了等于0.2(标准误差0.07)的平均治疗效果的增益。使用协变量信息针对同一臂的目标的策略获得了0.6的增益(标准误差0.06);这种增益已经在0.3的预算下实现;在这个预算中,可以将所有估计值高于无成本控制的单位。将最优臂分配给最响应单元的策略产生 0.8 的增益(标准误差 0.0)。
为了直观地了解秦i对多个臂的推广,回想一下,单个臂的Qini曲线是评估策略诱导的治疗规则的评估指标。使用单个治疗组,为简单起见,每个单元分配成本相同,最优策略是根据条件平均治疗效果的降序分配治疗。鉴于这些治疗效果的估计,传统的Qini曲线绘制了根据个体估计的治疗效果优先分配治疗的估计值。图 1 显示了 Qini 曲线的示例,如虚线。例如,如果我们只能使用手臂 1 并且总预算为 0.2,那么我们可以获得 0.52 的增益;而如果我们只能使用手臂 2,则相同的预算会产生 0.56 的估计增益。请注意,一旦我们传递了 0.3 的支出水平,手臂-1 Qini 曲线平台——这是因为,一旦我们已经达到了这个支出使用手臂 1 的水平,我们已经对被认为从中受益的所有单元给予治疗,因此无法通过增加支出获得进一步的收益。
图 1 中单个治疗臂的 Qini 曲线易于计算,因为底层策略会导致优先规则,该规则涉及按照估计的条件平均治疗效果顺序对单元进行排序。计算多臂策略的最优分配更加复杂,因为它涉及解决跨多个臂的约束成本效益问题。我们表明,尽管潜在的多臂策略更加复杂,但它们仍然产生了一个诱导处理规则,可以用秦曲线进行评估,就像单臂情况一样。图 1 中的实线黑线显示了估计的多臂策略的 Qini 曲线,并强调由于不同的臂可以更好地用于不同的组,因此目标使不同的臂能够分配给适合不同子组的成本效益分析。例如,预算为 0.2,我们现在可以获得 0.68 的增益,这比我们单独使用任何一个手臂所能获得的要好。
由于两个原因,将额外的手臂纳入两个改进(即提高)秦曲线。首先,即使在没有针对性的情况下,扩大预算也会导致更大的手臂使用,平均而言效率较低(收益成本较低的比率),但相对有益。其次,目标允许识别特别受益于可能平均表现不佳的手臂的子组,因此在没有目标的情况下不会优先排序。
我们描述了最优的多臂策略,表明在扩大预算时,最优分配选择单元以根据增量效益成本比最高的位置接收更有效的处理。我们进一步展示了如何,对于单元的给定特征,最优策略可以通过一组预算阈值来表征,其中单元的分配更改为更有益但效率较低的手臂。我们提出了一种有效的算法来估计Qini曲线基础上的多臂策略的解路径,该算法有效地分配初始预算,然后利用我们的理论表征将增量支出分配给最增量高效的单元。
我们的主要理论结果通过估计的多臂策略值的中心极限定理来量化秦曲线上点的不确定性。结果估计条件平均治疗效果(在控制上)和给定的预期成本,但解释了从近似每个级别预算的最佳分配以及估计该分配的策略值的不确定性。中心极限定理可用于估计给定预算下两条Qini曲线之间的差异,例如,替代治疗效果估计器引起的替代Qini曲线,或针对治疗臂子集估计的Qini曲线,或不针对目标。
所提出方法的开源软件实现可在 github.com/grflabs/maq 获得。
example
仅实现了核心 MAQ 求解器功能(点估计和解路径的置信区间)
https://github.com/grf-labs/maq/tree/master/python-package
2最优多臂治疗分配的解决方案路径
为了表征最佳多臂治疗分配,我们在潜在结果框架下运行 [Imbens and Rubin, 2015]。

2.1 描述最优策略
3 The Qini Curve for Multi-Armed Policies
policy选取
实验后依旧可以评估 // 需要随机数据
干预不一样要剔除

计算解路径和值。有了估计 Q(B) 所需的所有部分,算法 1 概述了为多臂策略计算 Qini 曲线所需的所有组件的伪代码,从估计条件平均治疗效果和训练集上的成本开始。有了这些,以及适当的评估分数,算法 2 用伪代码形式化了图 3 背后的直觉,用于计算诱导的多臂策略,并直到某个最大预算级别 Bmax。


3.1确定曲线的中心极限定理
4模拟实验
有多种策略可用于估计可以扩展到多臂设置的条件平均治疗效果τ (Xi)。一些流行和灵活的方法是所谓的元学习器,它采用旨在预测的机器学习算法,相反目标是反事实差异,示例包括 Kennedy [2020]、K̈unzel 等人。 [2019] 和 Nie 和 Wager [2021]。这些方法针对数量 E [Yi(1) − Yi(0) | Xi = x],其中 Yi(1) 是治疗臂的潜在结果,Yi(0) 是控制臂的潜在结果。为了用这些策略估计多臂治疗效果,可以采用一对一编码,如果分配第 k 个臂,则定义 Wi 为 1,否则为 0。另一种方法是直接针对向量值参数 τ (Xi)。在经验插图中,我们使用基于 R-learner [Nie and Wager, 2021] 的基于森林的 [Athey et al., 2019] 多臂治疗效果估计器,可在 R 包 grf [Tibshirani et al., 2023, R Core Team, 2022] 中通过函数多臂因果森林获得,该森林具有内置功能以产生多臂评估分数 (12)。这种方法直接使用以下森林加权损失来估计 τ (Xi)。
grf: Generalized Random Forests, 2023.
URL https://github.com/grf-labs/grf. R package version 2.3.0.】
使用机器学习估计异质治疗效果的元学习器
Metalearners for estimating heterogeneous treatment effects using machine learning
Offline Multi-Action Policy Learning: Generalization and Optimization
离线多动作策略学习:泛化和优化
我们将已知且等于单位可观测预处理协变量Ci(1) = Xi1, Ci(2) = 2Xi2的成本视为已知且等于单位可观测预处理协变量Ci(1) = Xi1, Ci(2) = 2Xi2。用噪声N (0, 4)观察到结果。
为了研究多臂秦曲线上点的实际推理特性,使用灵活的非参数估计器,我们计算 Q(B) 的 95% 置信区间的覆盖率。我们首先固定一个在n = 10000的训练集估计的ˆτ(·)函数。我们考虑Qini曲线上10个点B = {0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.4,0.45,0.5},然后在大小为n = {1000,2000,5000,10000}的测试集上计算策略ˆπB,估计双鲁棒分数bΓ,然后使用自举标准误差计算估计Q(B)的覆盖率。表 1 中的结果表明该过程在 1000 次蒙特卡洛重复中的平均经验覆盖率。
数据集
在本节中,我们将我们的方法应用于 2006 年 8 月初选中的投票数据集。该数据集最初由Gerber等人(2008)收集,以研究人们投票的动机。我们在本节中的目标是将此数据集应用策略学习算法并说明一些有趣的发现。
数据集描述:我们首先快速描述数据集,只关注与我们当前的策略学习上下文相关的方面。该数据集包含 180002 个数据点(即 n = 180002),每个数据点对应于不同家庭中的单个选民。选民跨越密歇根的整个状态。我们使用的选民特征有 10 个:出生年份、性别、家庭规模、城市、g2000、g2002、g2004、g2000、p2002、p2004。前 4 个特征是自我解释的。接下来的三个特征是选民分别在 2000、2002 和 2004 年投票支持一般选举的结果:如果选民进行投票,则记录 1,如果选民没有投票,则记录 0。最后三个特征是选民在 2000 年、2002 年和 2004 年是否投票给主要的结果。正如 Gerber 等人指出的那样。
(2008),这 10 个特征通常用作协变量来预测单个选民是否会投票 9。总共有五个动作,如下:
无事:没有执行动作
。Civic:在初选之前,带有“你的公民义务吗”的字母被电子邮件给家庭。
监控:在主要选举之前,将带有“您正在研究”的字母电子邮件给家庭。收到这封信的选民被告知他们将观察他们是否投票在该选举中。
自历史:选民过去投票记录的字母以及居住在同一家家庭的其他选民的投票记录在主选举之前被邮件给家庭。这封信还表明,一旦选举结束,选民是否被投票的后续信将被发送到家庭。
邻居:一个带有该选民投票记录的信,居住在同一个家庭的选民,这个家庭的邻居的选民在主选举之前被电子邮件给家庭。这封信还表明“您的所有邻居都能够看到您的过去投票记录”,并且将发送后续信件,以便该选民投票在即将到来的选举中是否会成为邻居之间的公共知识。

5 治疗靶向策略的假设测试

图 4a 提供了Qini 曲线可以看的程式化示例,在这种情况下,基于主题特征的目标有好处,可用的处理臂有 3 个(加上控制)。对于固定的花费点和策略,数量 Q(B) - Q(B) 测量剩余行之一之间的垂直差异,表示。一个基线策略,使用所有或只有一个手臂而不针对目标。由于这个距离是正的,它表示基于主题特征的目标的好处。
图 4b 说明了成本曲线如何查看存在(根据预算)的场景,这是在单个手臂上使用最佳手臂组合的好处。例如,在 B = 2 时,差异 Q(B) - Q1(B) 是红线和蓝线之间的垂直差异,并表明在所有可用臂中最佳选择可以比仅使用手臂 1 的目标产生约 1.5 的增益增加。
6 应用:选举转出的处理目标
Gerber等人[2008]通过邮件各种形式的字母,进行了多臂随机对照试验,研究了2006年美国初选中选民转出的社会决定因素。180 002 户被随机分配一个 K = 4 个治疗组,其中手臂 1(“Civic”)告诉接受者做他们的公民义务和投票。Arm 2(“Hawthorne”)通知接收者他们决定投票或不被监控。ARM 3(“Self”)通知接收者他们和相似的家庭过去的投票历史,手臂 4(“Neighbors”)将让接收者的邻居知道他们的投票历史。对照组没有字母。感兴趣的结果是家庭中的一个人是否在即将到来的一次选举中投票。Gerber等人[2008]发现,发送“邻居”字母是增加选民转出最有效的,几乎没有异质性的证据。
参考
- 云讲堂预告 | 吴韩:多臂治疗规则的 Qini 曲线 - 统计之都 - 瓦斯阅读
- 【转】增益模型营销逻辑再理解_qini curve_Just Jump的博客-CSDN博客
- [因果推断] 增益模型(Uplift Model)介绍(三)_奇思闻影的舒克与贝克的博客-CSDN博客
相关文章:
多臂治疗规则的 Qini 曲线(Stefan Wager)
英文题目: Qini Curves for Multi-Armed Treatment Rules 中文题目:多臂治疗规则的 Qini 曲线 单位:Stefan Wager 论文链接: 代码:GitHub - grf-labs/maq: Treatment rule evaluation via the multi-armed Qini …...
NOSQL之Redis配置及优化
目录 一、关系型数据库 二、非关系型数据库 三、关系型数据库和非关系型数据库区别 1、数据存储方式不同 2、扩展方式不同 3、对事务性的支持不同 四、Redis简介 五、Redis优点 (1)具有极高的数据读写速度 (2)支持丰富的…...
植物一区HR | 植物生理组+转录组:揭示豆科植物响应干旱胁迫机制
PlantArray 植物高通量生理学表型监测系统 是一套以植物生理学为基础的高精度,高通量,自动化表型监测系统,集合实验设置、数据分析、决策工具于一身,能够高通量实时动态监测并进行全天候生理及环境参数采集,是进行植物…...
TCP粘包问题
TCP粘包问题 TCP粘包问题造成TCP粘包的原因发送方原因接收方原因 如何处理TCP粘包发送方接收方应用层 为什么UDP没有粘包问题 TCP粘包问题 TCP粘包就是指发送方发送的若干包数据到达接收方时粘成了一包,从接收缓冲区来看,后一包数据的头紧接着前一包数据…...
QT【day1】
登录框: #include "mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {//窗口设置this->setFixedSize(600,600); //大小this->setWindowTitle("MUMU"); //文本内容this->setWindowOpacity(0.8); //透…...
【Golang】Golang进阶系列教程--为什么 Go 不支持 []T 转换为 []interface
文章目录 前言官方解释内存布局程序运行中的内存布局通用方法 前言 在 Go 中,如果 interface{} 作为函数参数的话,是可以传任意参数的,然后通过类型断言来转换。 举个例子: package mainimport "fmt"func foo(v inter…...
两数相加 II——力扣445
题目描述 法一 栈 本题旨在从后往前加,为了逆序处理所有数位,利用栈,把数字压入栈中,再依次取出相加,注意进位!进位是/10,另外需要注意栈的常用函数,push()、pop()、top()࿰…...
js获取上传视频的封面第一帧
代码如下:粘贴到这个在线编辑器里,可以测试效果。 菜鸟教程在线编辑器 <div><div style"flex: 1;border: 1px solid #999; position:relative;color: #333;background-color:#FFF2B8;"><span style"position: absolute…...
Nginx 高可用负载均衡(三种模式)
一、nginx普通集群负载均衡 1、安装keepalived (1)下载 https://www.keepalived.org/download.html(2)解压 tar -zxvf keepalived-2.0.18.tar.gz(3)使用configure命令配置安装目录与核心配置文件所在位置: ./configure --prefix/usr/local/keepalived --sysconf/e…...
Linux tail命令
在Linux中,tail命令用于查看文件的末尾内容。它可以显示文件的最后几行,默认情况下显示最后10行。 以下是一些常见的使用方式和示例: 显示文件的最后10行: tail filename将会显示名为filename的文件的最后10行内容。 显示文件…...
【屏幕适配发展介绍 Objective-C语言】
一、接下来,我们花一天时间,给大家介绍这个屏幕适配 1.那么,屏幕适配,是什么意思啊 我们说,写程序的时候,我们有时候要做 1)系统适配 2)屏幕适配 1)系统适配:是指的你写的这个代码,在iOS6、iOS7、iOS8,在不同的iOS系统下,是不是运行的效果,一致吧 这个指的是…...
linux中ls命令详解
ls 显示目录内容列表 补充说明 ls命令 就是list的缩写,用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。 语法 ls [选项] [文件名...][-1abcdfgiklmnopqrstuxABCDFGLNQRSUX…...
大盗阿福(记忆化搜索板子)
提供核心代码:(经典的记忆化搜索套路) int dfs(int pos){if(f[pos]!-1) return f[pos];//记忆化if(pos>n) return 0;//边界,越界int sum0;//模板int f10,f20;f1dfs(pos1);f2dfs(pos2)w[pos];summax(f1,f2);//模板f[pos]sum;//模…...
打卡力扣题目八
#左耳听风 ARST 打卡活动重启# 目录 一、问题 二、解题方法一 三、解题方法二 四、两种方法的区别 关于 ARTS 的释义 —— 每周完成一个 ARTS: ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一…...
matlab使用教程(5)—矩阵定义和基本运算
本博客介绍如何在 MATLAB 中创建矩阵和执行基本矩阵计算。 MATLAB 环境使用矩阵来表示包含以二维网格排列的实数或复数的变量。更广泛而言,数组为向量、矩阵或更高维度的数值网格。MATLAB 中的所有数组都是矩形,在这种意义上沿任何维度的分量向量的长度…...
用HTML写一个简单的静态购物网站
实现代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>购物网站</title> &l…...
如何在go中实现程序的优雅退出,go-kratos源码解析
使用kratos这个框架有近一年了,最近了解了一下kratos关于程序优雅退出的具体实现。 这部分逻辑在app.go文件中,在main中,找到app.Run方法,点进入就可以了 它包含以下几个部分: App结构体:包含应用程序的配置选项和运行时状态。 …...
Appium+python自动化(二十八)- 高级滑动(超详解)
高级溜冰的滑动 滑动操作一般是两点之间的滑动,这种滑动在这里称其为低级的溜冰滑动;就是上一节给小伙伴们分享的。然而实际使用过程中用户可能要进行一些多点连续滑动操作。如九宫格滑动操作,连续拖动图片移动等场景。那么这种高级绚丽的溜…...
github token使用方法
git remote set-url origin https://<githubtoken>github.com/<username>/<repositoryname>.git 在私有仓库的HTTPS的url上加入<githubtoken>即为token url,可以免ssh key登录...
Spring属性注解对配置项名称的自动转换
一、前言 在Spring中,我们经常需要将配置文件中的属性值注入到Java类中。Spring提供了两个主要的注解来实现这一功能:Value 和 ConfigurationProperties。其中 ConfigurationProperties支持将配置项名称与Java类中的属性名进行自动转换,包括…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
