通过回归树估计倾向得分(在 R 中使用 rpart)

数据挖掘 机器学习 分类 r 回归 逻辑回归
2022-03-13 02:40:07

我试图估计 R 中的倾向得分。我的意思是我试图估计个人选择接受治疗的概率,其中选择接受治疗是一个二元变量。通常人们使用 logit 或 probit 来估计这些。我正在考虑使用回归树。

可以使用 rpart "anova" 方法来估计倾向吗?我认为我不能使用分类树,因为这会给出二元结果,而我想要连续倾向评分函数,即随着连续解释变量的变化,治疗概率如何变化。

我正在使用以下命令,其中 x 和 z 是连续解释变量,d 是二元处理变量,每个人都观察到所有 3 个变量,我想估计 P(D=1|X,Z)。

  cart = rpart(d~x+z, data=data, method="anova")

  data[,pz_c:=predict(cart, type = "vector")]

其中第一个命令估计倾向,第二个命令将预测的倾向添加到每个人的数据集中。

我最初在stackoverflow上发布了这个,并被告知在这里发布你的问题。

2个回答

您可以使用逻辑回归本身,因为您的目标变量是二元的。

在预测时,使用type = "prob" This 将提供基本上只是 1 或 0 的概率的倾向。

你可以看看这篇文章。Helmreich,詹姆斯和普鲁泽克,罗伯特。(2008 年)。PSAgraphics:支持倾向得分分析的 R 软件包。统计软件杂志。29. 10.18637/jss.v029.i06。

在第三部分中,他们展示了如何估计倾向得分并根据它们对数据进行分层的示例。

在 Valliant、Dever 和 Kreuter 的书(2013 年)中也有一个很好的例子,该书名为 Practical Tools for Designing and Weighting Survey Samples in section “Adjustment for nonresponse”。他们给出的一条重要建议是将 minbucket 设置为 50,以确保如果您要使用倾向得分进行加权,则每个班级不会太小。这是使用控制选项来完成的,例如 control=rpart.control(minbucket=50, cp=0)。