设置 Stata 的 Python 集成
pystacked
至少需要 Stata 16(或更高版本)、Python 安装(3.8 或更高版本)和 scikit-learn(0.24 或更高版本)。如果要使用ddml
,则还应安装 Python。
StataCorp 在三个博客条目中提供了有关如何设置 Stata 的 Python 集成的详细说明:链接 1、链接 2、链接 3。
下面,我们简要概述了这些步骤。
1. Python 安装#
您(至少)有三个选择:
对于许多人来说,最简单的方法是安装 Anaconda,它可在此处获得。Anaconda 是一个 Python 发行版,带有最重要的包、包管理器和编辑器。
或者,您可以从此处下载并安装 Python。
如果您的系统上已经安装了最新的 Python 版本,则可以为 Stata 设置一个单独的 Python 环境。这是可选的,但如果您想在不同的项目中使用不同的库,这可能很有用(请参阅此处的说明)。
2. 设置 Python 集成#
一旦你安装了 Python,你需要告诉 Stata 在哪里可以找到 Python 安装。
您可以使用以下方法在系统上搜索 Python 安装
python search
请注意,可能会显示多个 Python 安装(例如,MacOS 附带旧的 Python 版本),并且 Stata 并不总是在您的系统上找到所有 Python 安装。
要将 Stata 链接到特定的 Python 安装,请使用:
python set exec <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 Settings
set python_exec /usr/bin/python3
set 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
------------------------------------------------------------------------------------
3. 管理软件包
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 上)。
4、检查它是否有效#
要测试 Stata 的 Python 集成是否适用于您的系统,请在 Stata 中运行以下测试代码:
clear all
use http://www.stata-press.com/data/r16/iris
python:
from sfi import Data
import numpy as np
from sklearn.svm import SVC
# Use the sfi Data class to pull data from Stata variables into Python
X = np.array(Data.get("seplen sepwid petlen petwid"))
y = np.array(Data.get("iris"))
# Use the data to train C-Support Vector Classifier
svc_clf = SVC(gamma='auto')
svc_clf.fit(X, y)
end
要测试pystacked是否适用于您的系统,请在 Stata 中运行以下测试代码:
clear all
use https://statalasso.github.io/dta/cal_housing.dta, clear
set seed 42
gen train=runiform()
replace train=train<.75
set seed 42
pystacked medh longi-medi if train
可选:在 Python 环境中使用 Stata#
您还可以在 Python 环境中使用 Stata。如果您想在系统上使用多个版本的 Python,这可能很有用。