StatsModels : 統計モデル

Last Change: 20-Oct-2015.
author : qh73xe

これは何?

StatsModels は、さまざまな統計モデルの推定だけでなく、統計的検定を実施し、 統計データ探索するためのクラスと関数を提供する Python ライブラリです。

使用感は R に似ています. 同じく機械学習用のライブラリとして, scikit-learn がありますが,こちらはあくまで も機械学習用ライブラリで, StatsModels は統計モデル用のライブラリです.

注釈

機械学習と統計モデル

この両者は実用上はとても似ています. しかし,これらの技術が発展してきた文脈,つまりこれらの技術が目指している対象 は大きく異なります.

機械学習は,とりあえず未知のデータを予測することが重要です. そのため,こちらの文脈で重要視されるのはモデルの予測精度そのものです. 一方,統計モデルと言った場合,重要なのは観測データの裏に潜んでいるルールを 解き明かすことです.

− ココらへんのコンセントの違いは以下の本が参考になるかと思います
− データサイエンス講義 : http://www.oreilly.co.jp/books/9784873117010/

導入方法

pip から導入します.

$ sudo pip install -U statsmodels

注釈

openSUSE を使用している場合

opensuse を使用している場合,python-develがないというエラーがでる場合があります. しかし,sudo zypper in python-devel としても最新版があると言われます. このような場合は python のレポジトリを登録した上で,zypper から導入したほうが早いです

$ sudo zypper in python-statsmodels

簡単な使い方

以下に StatsModels の簡単な使い方例を示します.

In [1]: import numpy as np
In [2]: import statsmodels.api as sm
In [3]: import statsmodels.formula.api as smf
In [4]: dat = sm.datasets.get_rdataset("Guerry", "HistData").data
In [5]: results = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=dat).fit()
In [6]: print results.summary()

                        OLS Regression Results
==============================================================================
Dep.Variable:                Lottery   R-squared:                       0.348
Model:                           OLS   Adj. R-squared:                  0.333
Method:                 Least Squares  F-statistic:                     22.20
Date:                Tue, 09 Dec 2014  Prob (F-statistic):           1.90e-08
Time:                        12:33:15   Log-Likelihood:               -379.82
No. Observations:                  86   AIC:                            765.6
Df Residuals:                      83   BIC:                            773.0
Df Model:                           2
Covariance Type:            nonrobust
===================================================================================
                      coef    std err          t      P>|t|      [95.0% Conf. Int.]
-----------------------------------------------------------------------------------
Intercept         246.4341     35.233      6.995      0.000      176.358   316.510
Literacy           -0.4889      0.128     -3.832      0.000      -0.743     -0.235
np.log(Pop1831)   -31.3114      5.977     -5.239      0.000      -43.199   -19.424
================================================================================
Omnibus:                        3.713   Durbin-Watson:                   2.019
Prob(Omnibus):                  0.156   Jarque-Bera (JB):                3.394
Skew:                          -0.487   Prob(JB):                         0.18
3Kurtosis:                      3.003   Cond. No.                         702.
================================================================================