当前位置: 首页>編程日記>正文

python 宏观经济_Sargent数量经济:回归分析与Python

python 宏观经济_Sargent数量经济:回归分析与Python

许文立,xuweny87@163.com

许坤,中国人民大学,kunxu2014@126.com

线性回归-Python:AJR(2001,AER)

概述

线性回归是分析两个或更多变量之间关系的标准工具

本讲中,我们将利用Python的statsmodels包来估计、理解和可视化线性回归模型

我们讨论一下主题

一元和多元回归

可视化

内生性和遗漏变量偏误

二阶段最小二乘

作为示例,我们会重复Acemoglu,Johnson and Robinson(2001,AER)的经典文章的结果

该论文可以从这里下载(https://economics.mit.edu/files/4123)

(1)在这篇文章中,作者强调制度对经济发展对的影响

(2)主要的贡献是利用殖民死亡率作为制度差异的外生变化的来源

(3)这种变化决定制度是否引起了更多的经济增长,而不是别的方式

预备知识

本讲稿需要大家熟悉计量基础

一元线性回归

AJR(2001)希望判断制度差异是否能解释观察到的经济结果

我们如何测量制度差异和经济结果呢?

在他们的论文中,

经济产出以1995年人均GDP来近似,且用汇率调整

制度差异以1985-95年掠夺风险的法律保护均值来近似,该指数由Political Risk Serivces Group(https://www.prsgroup.com/)构建

这些变量和其他数据可以在Acemoglu的主页下载(https://economics.mit.edu/faculty/acemoglu/data/ajr2001)

我们将利用pandas的.read_stata()函数来读取.dta中的数据

importpandasaspd

df1=pd.read_stata('https://github.com/QuantEcon/QuantEcon.lectures.code/raw/

master/ols/maketable1.dta')

df1.head()

我们用散点图来看看人均GDP和掠夺风险保护指数之间是否存在明显的关系

importmatplotlib.pyplotasplt

plt.style.use('seaborn')

df1.plot(x='avexpr',y='logpgp95',kind='scatter')

plt.show()

fc110435f9bd9e1316dfb8f02d1efd8f.png

这幅图显示出了法律保护与人均GDP对数之间存在很强的正向关系

特别地,如果更严格的法律保护是制度质量的一个指标,那么,更好的制度可能与更好经济结果正向关

给定这幅散点图,选择一个线性模型来描述这个关系

我们把模型写成

logpgp95i=β0+β1avexpri+ui

其中,

β0是线性回归线与y轴的截距

β1线性回归线的斜率,表示法律保护对人均GDP的边际效应

ui是随机误差项(由于遗漏因素而引起的线性趋势的偏离)

直观上看,线性模型就是要选择一条直线来最好地拟合数据(例如AJR2001中的图2)

93645c7e7a595301d1d77c55117bdf25.png

8d6dfa2d7c617465dda7e6755469bc79.png

估计beta最常用的技术是OLS

OLS模型就是要找到参数使得残差平方和最小化:

ab41e4c8882bf3476dab65ec3aa14ec0.png

其中,ui是因变量的观测值与预测值之差

为了估计常数项beta0,我们需要在数据集中增加一列1的数据

22ff8c7a3a9f0e2e37643e507f0b65ce.png

现在,我们可以利用OLS函数在statsmodels中来构建我们的模型

4dc818d25b6b9c9c8ade111543771fd4.png

至此,我们创建了模型

我们需要用.fit()来获得beta0和beta1的参数估计值

1c541b746a8dcd6f3156098aee79d6a3.png

我们现在把拟合回归模型储存在results

为了看看OLS的回归结果,我们调用.summary()方法

注意,一个观测值从原文的数据中删除了,因此,系数稍微有点差异

f4b4402ad13d3aa768f138202b8b18c6.png

从我们的结果可以看到

截距beta0=4.63

斜率beta1=0.53

Beta1的估计值为正意味着制度质量对经济结果有正向关系

Beta1的p值为0.000说明制度对GDP的效应是显著的

R2的值0.611说明,人均GDP对数方差的61%能被发了保护所解释

利用我们的估计参数,我们可以把回归关系写成

logpgp95ˆi=4.63+0.53avexpri

这个方程描述的是对数据最优拟合的直线

我们也能利用给定的法律保护水平来预测人均GDP对数值

例如,对一个国家来说,其制度值为7.07,我们就能预测得出1995年的人均GDP对数为8.38

3ce717319480cf1f0d1d626d394e3927.png

获得上述预测结果的一种更加方面的方式是利用.predict(),并设立constant=1c

o

n

s

t

a

n

t

=

1 andavexpri=mean_expr

3a1386c3f947710876e82865dec89453.png

我们能调用来获得每一个avexpri对应的logpgp95i预测值

观测值与预测值能作出图来进行比较

430de1cd7c25970bff48caae0ec86526.png

ab519f340ceb769df0e7563ceacb1d23.png

多远回归

上面只解释了影响经济绩效的制度因素,但是可以肯定的是还有许多影响经济的因素

影响loggdp95i的其它变量会引起遗漏变量偏误

我们能把一元回归扩展到多元回归

AJR(2001)考虑的其它因素有

气候对经济结果的影响;维度被用来作为近似指标

同时影响经济绩效和制度的差异,例如文化差异,历史差异等等;这些利用哑变量(虚拟变量)来控制

我们用数据maketable2.dta来估计多远回归的结果,正如论文中表2

dbcf28ec5326a498c70b1c228f895f47.png

我们得到拟合的模型,然后用summary_col来把结果展示在一张表中(正如论文中一样)

828280bc8bb324f8e86a1305685139ed.png

aefb5cd22e3dfc53f06054dd75d160bd.png

内生性

正如AJR(2001)讨论的,OLS模型会遇到内生性问题,这会导致估计偏误和非一致性。

也就是说,制度和经济结果之间有双边关系:

越富有的国家可能会更偏好更好的制度

影响收入的变量可能与制度差异有关

指标的构建可能存在偏误;分析师可能会出现偏误,收入越高,制度越好

为了处理内生性,我们能用二阶导最小二乘(2SLS)回归,它是OLS的一种扩展

该方法要求用一个变量来代替内生变量avexpri,

该变量

与avexpri相关

不与误差项相关

新的回归因子成为工具或工具变量,它们旨在消除制度差异的内生性

AJR(2001)的主要贡献是殖民地死亡率来作为制度差异的工具变量

他们假设,殖民地死亡率越高,那么,更加具有掠夺性制度就会建立(越少的法律保护),而且这些制度至今仍存在

01ca557b0cda3031ac5a4699400640b2.png

e7a6e7136af3f2aeb7d06375031501c4.png

如果17世纪-19世纪的死亡率直接影响目前的GDP,那么,第二个条件就不满足

例如,殖民死亡率可能与目前的疾病环境有关,其又影响经济绩效

AJR(2001)认为这是不可能的,因为:

死亡率是由于疟疾和黄热病引起的,不太可能影响当地居民

非洲或者印度居民的疾病负担可能不会高于平均水平,这是由于相对更高的人口密度导致的

因此,我么有一个有效的工具变量,我们能用2SLS回归哎获得一致无偏的参数估计

一阶段

一阶段就是内生变量对工具变量的回归

工具变量是一些列外生变量的集合

例如,我们的工具变量是常数和殖民死亡率logem4i

因此,我估计一阶段回归为

avexpri=δ0+δ1logem4i+vi

所需数据在maketable4.dta中,

d84f37e40f1d8008fb845c5c87c71eaa.png

511e8abab2bff0adc6cd019bb55c275e.png

二阶段

我们用.predict()来得到avexpri预测值

然后,用预测值取代内生变量avexpri

第二阶段的回归为

23bcb5a435788a23c95fb2ca25e832cd.png

a2689218e66d5ba0de101b17785fb079.png

62385ea4fb023925dfc4066d1cafac1d.png

第二阶段的回归结果才给我们提供了一个无偏、一致的估计

这个结果说明,工具变量回归结果比OSL结果更强列支持制度对经济发展的正向效应

我们能用linearmodel(https://github.com/bashtage/linearmodels)包一步估计出2SLS回归

要安装这个包,你需要在命令行运行pipinstalllinearmodels

5f7b836bfad8f2d62050556aa0d682f3.png

注意,当用IV2SLS时,外生和工具变量已经分离

假定我们现在得到一致、无偏估计,我们就能推断制度差异能解释国家之间的收入差异

AJR(2001)用0.94的边际效应来计算智利和尼日尼亚之间的制度差异所引起的7倍收入差异,强调制度在经济发展中的重要性。

总结

我们已经展示了statsmodels和linearmodels中的基本OLS和2SLS回归

如果你熟悉R,你也刻意用formula interface(http://www.statsmodels.org/dev/example_formulas.html)来调用statsmodels,或者考虑用r2py(https://rpy2.bitbucket.io/)来调用R


https://www.fengoutiyan.com/post/13521.html

相关文章:

  • python逻辑回归
  • python可以做回归分析吗
  • python建立回归模型
  • python多元回归
  • python 逐步回归
  • python回归算法
  • python计量经济学
  • python数据回归
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機