【教男朋友用python做计量】04.利用python进行工具变量两阶段最小二乘回归

本文介绍了如何使用Python的statsmodels库进行工具变量两阶段最小二乘回归(IV2SLS)。通过示例代码展示了如何设定因变量、自变量和工具变量,以及如何执行和解读回归结果。虽然随机生成的数据导致显著性不佳,但例子旨在演示IV2SLS回归的过程。
摘要由CSDN通过智能技术生成

第四节 利用python进行工具变量两阶段最小二乘回归


FBI WARNING:

关于如何用statsmodels做OLS回归可以见我之前的文章,这篇讲的是如何用python的statsmodels统计工具包实现工具变量的两阶段最小二乘回归(IV2SLS)。关于内生性和工具变量的知识这里不阐述,直接用代码演示过程结果~


1.statsmodels的IV2SLS()方法

  • 官方的IV2SLS()方法:
  • 参数说明:
  • endog:因变量
  • exog:自变量
  • instrument:工具变量(还除了内生的变量在内的全部自变量)
  • 用法:
假如我这里数据集的变量有["Y","const","X1","X2","X3","Z1","Z2"],
其中Y是因变量,const是常数项列,自变量有X1,X2,X3。
X3是内生的,Z1、Z2是我找来的工具变量。
from statsmodels.sandbox.regression.gmm import IV2SLS
                 
regressionIV2SLS = IV2SLS(data['Y'],
                  data[["const","X1","X2","X3"]], #所有原始自变量
                  data[["const","X1","X2","Z1","Z2"]]) #工具变量,还包含除去内生的自变量以外的全部自变量           

2.自己演示的代码

在这里我随机生成了一个数据集来展示整个工具变量两阶段最小二乘回归的过程。

import pandas as pd
import numpy as np
import statsmodels.api as sm
from statsmodels.sandbox.regression.gmm import IV2SLS #两阶段最小二乘回归的包
# 数据生成
data4IV = pd.DataFrame(np.random.randint(1,10,(30,6)),
                    columns=["Y","X1","X2","X3","Z1","Z2"])
data4IV = sm.add_constant(data4IV) #增加常数项列

y = "Y" #因变量
X =["const","X1","X2","X3"] #自变量,这里假设X3是内生的变量,加了常数项
Z =["const","X1","X2","Z1","Z2"] #工具变量,包含了非内生变量在内的全部自变量 记得加常数项

#两阶段最小二乘回归
regression = IV2SLS(data4IV[y],data4IV[X],data4IV[Z])
model =regression.fit()
model.summary()

在这里插入图片描述
这里因为是随机生成的数据,所以显著性并不好,但只是为了展示这个过程。我的可爱宝贝学会了吗~嘬嘬 (((o(゚▽゚)o)))

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值