我正在尝试进行多种治疗的隆起建模。我遇到了这个套件,该套件可以对单个治疗执行升压建模。
https://github.com/wayfair/pylift
但是我想扩大范围以进行多种治疗。有没有办法做到这一点
答案 0 :(得分:0)
一个警告:我还没有测试过,但是从理论上讲应该是合理的。
您可以添加一项功能(为了方便起见,将其称为x
),该功能可以指示要显示的治疗方式,并且可以:
x
的每个不同值处都有一行。例如,如果您在对照组,但您有2种治疗方法,因此A
,x
和1
有两个值,您将复制对人2
的观察结果,因此您对{ {1}}和另一个A
。然后调整您的目标函数或“转化结果”政策(如果您使用的是此方法)以纠正由此产生的偏见(以下更多详细信息)。x=1
的可能值中的值随机分配给控制行。如果您不执行这些操作之一,则您的模型将无法使用此功能进行拆分。
如果您执行(1),则需要通过修改目标功能或调整“转化结果”的政策值来解决由于拥有更多控制组成员而造成的偏差。
如果您使用的是“转换结果”方法,则相当于只设置x=2
,其中x
是您正在考虑的治疗次数(转换后的结果定义为{{1} }。在p=1/(1+N)
中,这相当于在数据框中添加一个值为N
的列,并在(W - p)/(p*(1-p))
中进行指定。即,在实例化pylift
对象时,您可以添加以下参数:
1/(1+N)
或者,您可以针对对照的每种处理简单地创建不同的模型。但是,最大的问题是这些值可能无法比较。但是为了给自己一个合理的机会,我将确保您对每个模型使用相同的超参数,并希望它们也具有相同数量的数据(否则,相同的超参数将毫无意义)。