美文网首页Stata计量经济学
Pystata:Python中Stata的应用 (一) 环境配置

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

作者: Colin_Bao | 来源:发表于2022-05-03 18:39 被阅读0次

    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')</pre>
    

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

    OLS回归结果

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

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

    相关文章

      网友评论

        本文标题:Pystata:Python中Stata的应用 (一) 环境配置

        本文链接:https://www.haomeiwen.com/subject/hehgyrtx.html