You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:04:57