インポートパスと構造¶
statsmodelsから関数とクラスをインポートする方法は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
現在、サブモジュールのエイリアスのための規約はありません。