Pystata:Python中Stata的应用 (一) 环境配置

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),总结了比较方便的环境配置方案。

安装前要求

必须配置:

  1. Stata 17 (SE/MP等各种版本均可)

  2. Python 2.7及以上 (推荐Python 3)

  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,配置好后会显示以下结果:

解释器中配置Pystata包路径

接下来我们新建一个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')

得到的结果也是同样的熟悉:

OLS回归结果

哦~ t值、置信区间、均方误、系数...Stata有的都一应俱全,这个可真是妙到家了!当然,这只是最基础的Stata原生操作,Pystata内置高级函数的用法远不止这些~

布朗运动随着温暖的5月变得急促起来,这个DGM也产生了许多的数据。阳光照在Econometrics的课本、讲台上风趣的教授、经管学生们紧锁着眉头看着屏幕上一行行的数据 —— 经济学的研究从未如此妙趣横生过。

你可能感兴趣的:(Pystata:Python中Stata的应用 (一) 环境配置)