如何在feols的模糊RD模型第一阶段使用二阶多项式?
模糊RD模型第一阶段改为二阶多项式的实现方法
原线性形式的模糊RD模型
你原本的线性形式模糊RD模型代码如下:
feols(fml = outcome ~ 1| fe1 + fe2 | distance*treatment ~ distance*above, cluster="clustervar", data = data)
其中:
distance:到阈值的距离above:是否超过阈值的指示变量treatment:处理状态指示变量
修改为二阶多项式的实现方法
要将第一阶段改为二阶多项式,需要在第一阶段的公式中加入distance的二次项及该二次项与above的交互项,以下是两种常用实现方式:
方式一:显式构造二次项
通过I(distance^2)生成二次项,再与above交互,能清晰展示模型的每一项组成:
feols(fml = outcome ~ 1| fe1 + fe2 | distance*treatment ~ distance*above + I(distance^2)*above, cluster="clustervar", data = data)
方式二:使用正交多项式函数
利用poly()函数直接生成二阶正交多项式,自动包含一次项、二次项及它们与above的交互项,代码更简洁:
feols(fml = outcome ~ 1| fe1 + fe2 | distance*treatment ~ poly(distance, 2)*above, cluster="clustervar", data = data)
注意:poly()生成的正交多项式与原始二次项的结果会略有差异,可根据分析需求选择对应方式。
内容的提问来源于stack exchange,提问作者tiny
相关产品推荐
相关产品推荐

