グラフィカル診断 Statsmodels
Statsmodelsは、Pythonの強力な統計モデリングツールです。
以下に、Statsmodelsのグラフィカル診断を紹介します。
グラフィカル診断
モデルの診断には様々なプロットを使用できます。
1 | import statsmodels.api as sm |
[実行結果]
ソースコード解説
ソースコードの詳細な説明を行います。
1. 必要なライブラリのインポート
1 | import statsmodels.api as sm |
statsmodels.api
: 回帰分析や統計モデルのライブラリで、データ分析とモデル評価に広く使われます。numpy
: 数値計算のためのライブラリで、配列操作や数値演算を簡単に行えます。
2. サンプルデータの作成
1 | data = sm.datasets.get_rdataset('mtcars').data |
sm.datasets.get_rdataset('mtcars')
: Rのデータセットを取得するメソッド。ここでは有名なmtcars
データセットを使用しています。data
:mtcars
データセットをデータフレームとして取得。
3. モデルの作成
1 | model = sm.OLS(data['mpg'], sm.add_constant(data[['hp', 'wt']])).fit() |
sm.OLS(endog, exog)
: OLS(最小二乗法)回帰モデルを作成するための関数。endog
: 被説明変数(目的変数)、ここでは燃費(mpg
)。exog
: 説明変数(特徴量)、ここでは馬力(hp
)と車両重量(wt
)。sm.add_constant(data[['hp', 'wt']])
: 説明変数に定数項(切片)を追加。
fit()
: モデルをデータに適合させるメソッド。
4. 残差プロット
1 | sm.graphics.plot_regress_exog(model, 'hp') |
sm.graphics.plot_regress_exog(model, exog_idx)
: 指定した説明変数に対する残差プロットを作成。model
: 作成した回帰モデル。exog_idx
: 残差プロットを作成する説明変数(ここではhp
とwt
)。
これにより、以下のような4つのグラフが生成されます。
Y and Fitted vs. X
: 実測値と予測値のプロット。Residuals versus X
: 残差と説明変数のプロット。Partial regression plot
: 他の変数を固定した状態での説明変数と目的変数の関係を示すプロット。CCPR Plot
: 説明変数の影響を考慮した残差プロット。
5. QQプロット
1 | sm.qqplot(model.resid, line='s') |
sm.qqplot(data, line='s')
: Q-Qプロットを作成するための関数。data
: プロットするデータ、ここでは回帰モデルの残差(model.resid
)。line='s'
: プロットに標準正規分布の参照線を追加。
まとめ
このコードは、mtcars
データセットを用いて、燃費(mpg
)を馬力(hp
)と車両重量(wt
)から予測する回帰モデルを作成し、モデルの評価を行っています。
具体的には、以下のことを行っています。
mtcars
データセットを取得。mpg
を目的変数、hp
とwt
を説明変数とするOLS回帰モデルを作成し、適合。- 説明変数に対する残差プロットを作成し、モデルの適合性を評価。
- 残差のQ-Qプロットを作成し、残差が正規分布に従っているかを確認。
これにより、モデルの性能や適合性、残差の特性を視覚的に評価することができます。
グラフ解説
表示されるグラフを解説します。
[実行結果1]
Q-Q プロット
- 説明: Q-Qプロットは、データの分布が理論的な分布(通常は正規分布)にどれだけ近いかを視覚化するためのプロットです。
- 見方: 点が赤い直線に近いほど、データが正規分布に従っていることを示しています。
- 解釈: 多くの点が直線上にあるため、データは正規分布に近いと考えられます。ただし、端のほうでは少し外れている点もあり、これがデータの外れ値や分布の尾部の特性を示しています。
[実行結果2]
回帰プロット(hpに対する)
- Y and Fitted vs. X: 実測値 (mpg) と予測値 (fitted) のプロット。予測値が実測値にどれだけ近いかを示しています。
- Residuals versus hp: 残差(実測値と予測値の差)とhpのプロット。残差がランダムに散らばっている場合、モデルは適切です。
- Partial regression plot: 他の変数を一定とした場合のhpとmpgの関係を示すプロット。
- CCPR Plot: 残差プロットに相関を持たせたもの。各観測点の影響を視覚化しています。
解釈
- Y and Fitted vs. X: 多くの点が一致しているため、モデルの予測は概ね正確です。
- Residuals versus hp: 残差はランダムに分布しており、特定のパターンがないため、モデルは適切です。
- Partial regression plot: hpが増加するにつれてmpgが減少していることを示しています。
- CCPR Plot: hpの影響が残差に与える影響を示しており、負の関係が見られます。
[実行結果3]
回帰プロット(wtに対する)
- Y and Fitted vs. X: 実測値 (mpg) と予測値 (fitted) のプロット。予測値が実測値にどれだけ近いかを示しています。
- Residuals versus wt: 残差とwtのプロット。残差がランダムに散らばっている場合、モデルは適切です。
- Partial regression plot: 他の変数を一定とした場合のwtとmpgの関係を示すプロット。
- CCPR Plot: 残差プロットに相関を持たせたもの。各観測点の影響を視覚化しています。
解釈
- Y and Fitted vs. X: 実測値と予測値が近いため、モデルの予測は正確です。
- Residuals versus wt: 残差がランダムに分布しており、特定のパターンがないため、モデルは適切です。
- Partial regression plot: wtが増加するにつれてmpgが減少していることを示しています。
- CCPR Plot: wtの影響が残差に与える影響を示しており、負の関係が見られます。
これらのプロットは、回帰モデルがどの程度データに適合しているか、残差がランダムに分布しているか、特定の変数の影響を視覚化するための有用なツールです。