导入路径和结构

我们提供两种从 statsmodels 导入函数和类的方式

  1. 交互式使用的 API 导入

    • 允许选项卡自动补全

  2. 程序的直接导入

    • 避免导入不必要的模块和命令

交互式使用的 API 导入

对于交互式使用,建议的导入方式是

import statsmodels.api as sm

导入 statsmodels.api 将加载 statsmodels 的大部分公共部分。这使得大多数函数和类在一个或两个级别内方便地可用,而不会使“sm”命名空间过于拥挤。

要查看可用的函数和类,您可以键入以下内容(或使用 IPython、Spyder、IDLE 等的命名空间浏览功能)

>>> dir(sm)
['GLM', 'GLS', 'GLSAR', 'Logit', 'MNLogit', 'OLS', 'Poisson', 'Probit', 'RLM',
'WLS', '__builtins__', '__doc__', '__file__', '__name__', '__package__',
'add_constant', 'categorical', 'datasets', 'distributions', 'families',
'graphics', 'iolib', 'nonparametric', 'qqplot', 'regression', 'robust',
'stats', 'test', 'tools', 'tsa', 'version']

>>> dir(sm.graphics)
['__builtins__', '__doc__', '__file__', '__name__', '__package__',
'abline_plot', 'beanplot', 'fboxplot', 'interaction_plot', 'qqplot',
'rainbow', 'rainbowplot', 'violinplot']

>>> dir(sm.tsa)
['AR', 'ARMA', 'SVAR', 'VAR', '__builtins__', '__doc__',
'__file__', '__name__', '__package__', 'acf', 'acovf', 'add_lag',
'add_trend', 'adfuller', 'ccf', 'ccovf', 'datetools', 'detrend',
'filters', 'grangercausalitytests', 'interp', 'lagmat', 'lagmat2ds', 'kpss',
'pacf', 'pacf_ols', 'pacf_yw', 'periodogram', 'q_stat', 'range_unit_root_test',
'stattools', 'tsatools', 'var']

备注

api 模块可能不包含 statsmodels 的所有公共功能。如果您发现应该添加到 api 的内容,请在 github 上提交问题或向邮件列表报告。

statsmodels 的子包包括 api.py 模块,这些模块主要用于收集这些子包所需的导入。 subpackage/api.py 文件被导入到 statsmodels api 中,例如

from .nonparametric import api as nonparametric

用户不需要直接加载 subpackage/api.py 模块。

程序的直接导入

statsmodels 子模块按主题排列(例如,用于离散选择模型的 discrete 或用于时间序列分析的 tsa)。我们的目录树(简化版)看起来像这样

statsmodels/
    __init__.py
    api.py
    discrete/
        __init__.py
        discrete_model.py
        tests/
            results/
    tsa/
        __init__.py
        api.py
        tsatools.py
        stattools.py
        arima_process.py
        vector_ar/
            __init__.py
            var_model.py
            tests/
                results/
        tests/
            results/
    stats/
        __init__.py
        api.py
        stattools.py
        tests/
    tools/
        __init__.py
        tools.py
        decorators.py
        tests/

可能导入量很大的子模块包含一个空的 __init__.py,除了用于运行子模块测试的某些测试代码外。目的是在下一个版本中将所有目录更改为具有 api.py 和空的 __init__.py

导入示例

函数和类

from statsmodels.regression.linear_model import OLS, WLS
from statsmodels.tools.tools import rank, add_constant

模块

from statsmodels.datasets import macrodata
import statsmodels.stats import diagnostic

带有别名的模块

import statsmodels.regression.linear_model as lm
import statsmodels.stats.diagnostic as smsdia
import statsmodels.stats.outliers_influence as oi

我们目前没有针对子模块别名的约定。


上次更新:2024 年 10 月 3 日