インポートパスと構造

statsmodelsから関数とクラスをインポートする方法は2つあります。

  1. インタラクティブ使用のためのAPIインポート

    • タブ補完が可能

  2. プログラムのための直接インポート

    • 不要なモジュールとコマンドのインポートを回避

インタラクティブ使用のためのAPIインポート

インタラクティブに使用する場合、推奨されるインポートは次のとおりです。

import statsmodels.api as sm

statsmodels.apiをインポートすると、statsmodelsの公開部分のほとんどがロードされます。これにより、ほとんどの関数とクラスが「sm」名前空間を混雑させることなく、1〜2レベル以内で便利に使用できるようになります。

利用可能な関数とクラスを確認するには、次のように入力できます(または、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でissueを提出するか、メーリングリストに報告してください。

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日