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

如何在AER::ivreg中指定工具变量?代码报错求助

解决ivreg公式语法错误的方案

你遇到的错误length(formula)[2] %in% 1:2 is not TRUE是因为ivreg的公式格式不符合要求,结合你的需求(用lgrade作为pastS的工具变量),修正方法如下:

核心问题说明

工具变量是为了解决内生解释变量pastS的内生性问题,因此pastS必须作为解释变量出现在回归模型中,同时ivreg的公式需要严格遵循指定格式。

正确的代码写法

方法一:两部分格式(兼容性最强,所有ivreg版本支持)

将所有解释变量(外生控制变量+内生变量pastS)放在|左侧;将所有外生控制变量+工具变量lgrade放在|右侧(外生变量自身可作为工具变量):

modiv <- ivreg(servS ~ horS + size + henley + lpd + tri + turn + rail + enc20 + wheat + pastS | 
                 horS + size + henley + lpd + tri + turn + rail + enc20 + wheat + lgrade, 
               data = regdata)

方法二:三部分格式(需较新版本AER包支持)

第一部分列外生控制变量,第二部分列内生变量pastS,第三部分列工具变量lgrade:

modiv <- ivreg(servS ~ horS + size + henley + lpd + tri + turn + rail + enc20 + wheat | pastS | lgrade, 
               data = regdata)

注:若之前因换行导致语法解析错误,可将代码调整为一行或确保换行后的符号位置正确。

额外检查项

  • 确认数据框regdata包含所有用到的变量,且变量名无拼写错误;
  • 确保工具变量lgrade满足相关性(与pastS显著相关)和外生性(与模型扰动项无关)的基本条件。

内容的提问来源于stack exchange,提问作者Mikhail

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 15:23:15