设置 Stata 的 Python 集成
pystacked至少需要 Stata 16(或更高版本)、Python 安装(3.8 或更高版本)和 scikit-learn(0.24 或更高版本)。如果要使用ddml,则还应安装 Python。
StataCorp 在三个博客条目中提供了有关如何设置 Stata 的 Python 集成的详细说明:链接 1、链接 2、链接 3。
详见:
Stata+Python-1:Stata 中调用Python
Stata+Python-2:Stata 中三种方法调用Python
Stata+Python-3:Stata中下载安装Python包
Stata+Python-4:Stata中使用Python包
下面,我们简要概述了这些步骤。
您(至少)有三个选择:
对于许多人来说,最简单的方法是安装 Anaconda,它可在此处获得。Anaconda 是一个 Python 发行版,带有最重要的包、包管理器和编辑器。
或者,您可以从此处下载并安装 Python。
如果您的系统上已经安装了最新的 Python 版本,则可以为 Stata 设置一个单独的 Python 环境。这是可选的,但如果您想在不同的项目中使用不同的库,这可能很有用(请参阅此处的说明)。
一旦你安装了 Python,你需要告诉 Stata 在哪里可以找到 Python 安装。
您可以使用以下方法在系统上搜索 Python 安装
python search请注意,可能会显示多个 Python 安装(例如,MacOS 附带旧的 Python 版本),并且 Stata 并不总是在您的系统上找到所有 Python 安装。
要将 Stata 链接到特定的 Python 安装,请使用:
python setexec <pyexecutable> , permanently 例如,where 可能是 /usr/local/bin/python3或C:\Program Files\Python38\python.exe``C:\Users\\AppData\Local\Programs\Python\Python38\python.exe ,具体取决于您的操作系统和安装 Python 的位置。
键入python query以检查安装是否已正确链接:
. python query------------------------------------------------------------------ Python Settingsset python_exec /usr/bin/python3set python_userpath Python system information initialized no version 3.8.9 architecture 64-bit您只需Stata 键入python 即可启动 Java,然后end返回到 Stata 环境 用:
. python----------------------------------------------- python (type end to exit) ---------->>> print('hello')hello>>> end------------------------------------------------------------------------------------pystacked需要 scikit-learn(缩写)。您可以从 Stata 中检查是否已安装:sklearnsklearn
. python which sklearn<module 'sklearn' from '/Users/<username>/Library/Python/3.8/lib/python/site-packages/sklearn/__init__.py'>如果 Stata 没有找到 sklearn,这是因为您已将 Stata 链接到错误的 Python 安装,或者因为您仍然需要安装sklearn 。
如果您使用 Anaconda,则会自动包含,您可以通过 Anaconda Python 发行版(请参阅此处)或在终端中使用sklearn conda install来更新 scikit-learn。
如果不使用 Anaconda,则可以使用 安装和更新包。例如,您可以通过在终端中输入内容进行安装,也可以直接进行安装 在 Stata 中:pipsklearn
shell <Python path> -m pip install -U scikit-learn其中,请参阅您要与 Stata 一起使用的 Python 安装。如果您只想使用默认的 Python 安装,您也可以替换为(在 Mac 上)或(在 Win 上)。
要测试 Stata 的 Python 集成是否适用于您的系统,请在 Stata 中运行以下测试代码:
clear all use http://www.stata-press.com/data/r16/irispython:from sfi import Dataimport numpy as npfrom sklearn.svm import SVC# Use the sfi Data class to pull data from Stata variables into PythonX = np.array(Data.get("seplen sepwid petlen petwid"))y = np.array(Data.get("iris"))# Use the data to train C-Support Vector Classifiersvc_clf = SVC(gamma='auto')svc_clf.fit(X, y)end要测试pystacked是否适用于您的系统,请在 Stata 中运行以下测试代码:
clear alluse https://statalasso.github.io/dta/cal_housing.dta, clearset seed 42gen train=runiform()replace train=train<.75set seed 42pystacked medh longi-medi if train 可选:在 Python 环境中使用 Stata#
您还可以在 Python 环境中使用 Stata。如果您想在系统上使用多个版本的 Python,这可能很有用。
