首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Without软件包: IV估计没有进一步的外生变量

Without软件包: IV估计没有进一步的外生变量
EN

Stack Overflow用户
提问于 2020-12-15 15:44:39
回答 1查看 1.2K关注 0票数 1

我打算使用fixest包的feols函数运行具有固定效果的工具变量回归。但是,在没有进一步外生控制的情况下,我对指定估计的语法有问题。

请考虑以下示例:

代码语言:javascript
复制
# Load package
require("fixest")

# Load data
df <- airquality

我想做以下几点,即通过工具内源变量和固定效应来解释结果:

代码语言:javascript
复制
feols(Temp | Month + Day | Ozone ~ Wind, df)

然而,这会产生一个错误:

代码语言:javascript
复制
The dependent variable is a constant. Estimation cannot be done.

只有当我添加进一步的外生协变量(如文档示例中的)时,它才起作用:

代码语言:javascript
复制
feols(Temp ~ Solar.R | Month + Day | Ozone ~ Wind, df)

我该怎么解决这个问题?如何在没有进一步控制的情况下运行估计,例如本例中的Solar.R

注意:我在堆栈溢出而不是交叉验证上发布了这篇文章,因为这个问题与编码语法问题有关,而不是与估算背后的计量经济学技术有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-15 21:16:39

实际上,在如何写出公式方面似乎存在误解。

语法是:Dep_var ~ Exo_vars | Fixed-effects | Endo_vars ~ Instruments

部件Fixed-effectsEndo_vars ~ Instruments是可选的。另一方面,使用Exo_vars的部分必须始终在那里,不管它是否只有拦截。

认识到这一点,以下工作:

代码语言:javascript
复制
base = iris
names(base) = c("y", "x1", "x_endo", "x_inst", "fe")

feols(y ~ 1 | x_endo ~ x_inst, base)
#> TSLS estimation, Dep. Var.: y, Endo.: x_endo, Instr.: x_inst
#> Second stage: Dep. Var.: y
#> Observations: 150 
#> Standard-errors: Standard 
#>             Estimate Std. Error t value  Pr(>|t|)    
#> (Intercept) 4.345900    0.08096  53.679 < 2.2e-16 ***
#> fit_x_endo  0.398477    0.01964  20.289 < 2.2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> RMSE: 0.404769   Adj. R2: 0.757834
#> F-test (1st stage): stat = 1,882.45  , p < 2.2e-16 , on 1 and 148 DoF.
#>         Wu-Hausman: stat =     3.9663, p = 0.048272, on 1 and 147 DoF.

# Same with fixed-effect
feols(y ~ 1 | fe | x_endo ~ x_inst, base)
#> TSLS estimation, Dep. Var.: y, Endo.: x_endo, Instr.: x_inst
#> Second stage: Dep. Var.: y
#> Observations: 150 
#> Fixed-effects: fe: 3
#> Standard-errors: Clustered (fe) 
#>            Estimate Std. Error t value Pr(>|t|)    
#> fit_x_endo 0.900061   0.117798  7.6407 0.016701 *  
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> RMSE: 0.333489     Adj. R2: 0.833363
#>                  Within R2: 0.57177 
#> F-test (1st stage): stat = 44.77    , p = 4.409e-10, on 1 and 146 DoF.
#>         Wu-Hausman: stat =  0.001472, p = 0.969447 , on 1 and 145 DoF.

回到原来的例子:

  • feols(Temp | Month + Day | Ozone ~ Wind, df)意味着因变量将是Temp | Month + Day | Ozone,这里的管道表示逻辑OR,导致所有观测值为1。因此,错误消息.
  • 要修复它并获得适当的行为,请使用
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65309126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档