使用rdrobust做2SLS时报错c()应在aide取值范围如何解决
错误原因
rdrobust的标准语法为 rdrobust 结果变量 运行变量 [协变量列表], 选项,第二个参数必须为断点所依附的连续型运行变量。你当前的代码将二值处理变量aide放在了运行变量的位置,而aide的取值仅为0和1,你设置的断点c(10)完全超出其取值范围,因此触发报错,该问题与带宽设置、income的多项式形式无关。
修正方案
你需要先明确断点对应的连续运行变量,结合你给出的变量列表,大概率是以health_index为运行变量、断点为10,按你的研究需求对应调整代码即可:
- 若做清晰断点回归:处理状态完全由
health_index是否超过10决定,对应代码如下:
rdrobust q_o_l health_index, c(10) covs(bmi income asian black age)
- 若做模糊断点回归(即你计划用断点作为工具变量做两阶段估计,实际处理状态为
aide),添加fuzzy()选项指定处理变量即可:
rdrobust q_o_l health_index, c(10) covs(bmi income asian black age) fuzzy(aide)
调整前可以先执行sum health_index确认运行变量的取值范围,保证你设置的断点值落在其最小值和最大值区间内,即可避免同类报错。
内容的提问来源于stack exchange,提问作者coinbase_wells
相关产品推荐
相关产品推荐

