Colin Bao , 2022年05月04日
背景
作为经管类学生,进行科研数据分析时一定会用到计量经济学的实证方法,比如耳熟能详的OLS, RD, DID... Stata毋庸置疑是计量经济学数据分析领域的顶流软件,内置了大量的实证工具。但是如果需要使用Stata处理数据,学习Stata的指令非常麻烦,并且习得的技巧只能为Stata所用。
而Python得益于强大的数据科学生态,集收集、清洗和处理数据于一身。随着对手R、Eviews、Matlab推出官方Python包,Stata也拥抱用户需求的进行更新。2020 年,Stata官方推出了一个预览性的与Python交互的特性,在Stata17版本正式推出了Pystata。
在Python中处理好数据,再交给Stata分析,对习惯使用Python的同学简直太友好了,从现在开始抛弃Stata复杂的数据处理语法吧!
纵观中文互联网上各类博客和论坛,对于这一问世不久的Pystata教程极少,特别是对于入门者来说环境的配置可能需要花费大量的时间。
笔者查阅了Stata的官方论坛Statalist ( https://www.statalist.org/forums/) 中的QA,以及Pystata的官方文档(https://www.stata.com/python),总结了比较方便的环境配置方案。
安装前要求
必须配置:
-
Stata 17 (SE/MP等各种版本均可)
-
Python 2.7及以上 (推荐Python 3)
-
Python的运行环境没有限制,基于IPython的Jupyter,或者Spyder IDE和PyCharm IDE均可
上述三项请仔细检查,并保证你的Stata 17处于激活状态 (结尾处给出安装包和激活方法)
可选配置:
-
Numpy
-
Pandas
-
IPython
如果需要使用Pystata中更高级的命令,则需要安装以上的Python包
作者的环境是Mac OS M1,Stata17 MP,使用的IDE为Pycharm,在Virtualenv下运行Python 3.10, 因此使用该上述演示,其他版本的原理是一样的。
路径配置
配置Stata中的Python环境
也许你的电脑安装了Python,但是Stata并不能有效识别出来,因此首先要对Stata中的Python路径进行配置。
在Stata的命令窗口中运行python search
:
python search
--------------------------------------------------------------------------------------------
Python environments found:
/usr/local/bin/python3
这会返回所有的Python路径,请注意你的结果可能并不止一条,请记住你想要使用的路径,后续要在其他地方选择同样的路径。然后,在Stata的命令窗口运行set python_exec [你的路径]
将该路径设置给Stata:
set python_exec /usr/local/bin/python3
设置好后,在Stata的命令窗口运行python query
检查Python的状态:
python query
--------------------------------------------------------------------------------------------
Python Settings
set python_exec /usr/local/bin/python3
set python_userpath
Python system information
initialized yes
version 3.10.4
architecture 64-bit
library path /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/config-3.10-darwin/libpython3.10.dylib
如果你的set python_exec [你的路径]
输出结果和你设置的路径一样,那么恭喜你配置成功。但是聪明的你你已经注意到你的set python_userpath [你的路径]
输出结果为空!是的,接下来需要配置Stata运行Python所需要的Python包的路径。
注意,Stata中配置软件包是为了使用Stata调用Python,但是我们并不需要在Stata中使用Python,我们只需要将Pystata包的路径写入其中,以避免后面不必要的麻烦。
Pystata包并不能通过pip的方式安装,它是内置在Stata安装路径中的一个本地文件。为了获得这个Pystata包的位置,我们需要打开Stata的安装目录,如果你的目录中没有Pystata包,请检查Stata17的升级并下载最新的更新。
Pystata路径请记住Pystata的路径,例如在Mac OS下的完整路径为/Applications/Stata/utilities/pystata
,但是我们只需要使用/Applications/Stata/utilities
,在Stata的命令窗口运行set python_userpath /Applications/Stata/utilities
,然后在Stata的命令窗口运行python query
检查Python的状态:
python query
--------------------------------------------------------------------------------------------
Python Settings
set python_exec /usr/local/bin/python3
set python_userpath /Applications/Stata/utilities
Python system information
initialized yes
version 3.10.4
architecture 64-bit
library path /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/config-3.10-darwin/libpython3.10.dylib
到目前为止,如果你的输出和上述一致,那么恭喜你完成了Stata中的Python环境配置,接下来需要进入你的Python运行环境进行Pystata的配置。如果输出结果和上述不一致,请重复检查每一步的操作。
配置Python中的PyStata环境
下面以Pycharm为例,如果你使用的是基于IPython的Jupyter,或者Spyder IDE均可。
在使用Virtualenv创建Python的环境是,解释器位置请与你在步骤3.1中的位置保持一致。
配置Python环境然后,你需要把Pystata包所在的配置给开发环境,以便Python在运行时识别出Pystata包的位置:
依次点击:Preferences - Python解释器 - 设置(锯齿图标) - 全部显示 - 显示解释器的路径(树状图标) - 添加(加号图标),添加时请使用在3.1步骤使用的Pystata路径/Applications/Stata/utilities
,配置好后会显示以下结果:
接下来我们新建一个Python文件来测试所有的配置是否成功吧,输入以下代码并运行:
from pystata import config
config.init('mp')
大功告成!你在Python运行窗口中看到Stata经典的欢迎界面,它似乎从未如此惊艳过!
Stata欢迎界面让我们回归来试试一下吧,最基本的Pystata用法就是使用在Python使用stata.run()
函数,这个函数可以执行你在Stata中使用的任何原生命令!
from pystata import stata
stata.run('regress R Age E Rsigma')</pre>
得到的结果也是同样的熟悉:
OLS回归结果哦~ t值、置信区间、均方误、系数...Stata有的都一应俱全,这个可真是妙到家了!当然,这只是最基础的Stata原生操作,Pystata内置高级函数的用法远不止这些~
布朗运动随着温暖的5月变得急促起来,这个DGM也产生了许多的数据。阳光照在Econometrics的课本、讲台上风趣的教授、经管学生们紧锁着眉头看着屏幕上一行行的数据 —— 经济学的研究从未如此妙趣横生过。
网友评论