statsmodels 住宅価格予測
statsmodelsを使用して現実的な問題を解決する方法を示します。
ここでは、重回帰分析を例に取り上げます。
例えば、住宅価格を予測するためのモデルを構築します。
データセットとして、よく知られているボストン住宅価格データセットを使用します。
このデータセットには、住宅の価格とそれに関連する様々な特徴量が含まれています。
以下の手順で進めます:
- データの読み込み
- データの前処理
- モデルの構築
- 結果の解釈
手順
1. データの読み込み
まず、必要なライブラリをインポートし、データセットを読み込みます。
1 | import statsmodels.api as sm |
2. データの前処理
データを見て、ターゲット変数(住宅価格)と説明変数(特徴量)を分けます。
1 | # データの確認 |
3. モデルの構築
statsmodelsを使って重回帰モデルを構築します。
1 | # 定数項を追加 |
4. 結果の解釈
モデルの結果を表示し、解釈します。
1 | # 結果の表示 |
完全なコード
以下に完全なコードを示します:
1 | import statsmodels.api as sm |
[実行結果]
crim zn indus chas nox rm age dis rad tax ptratio \
0 0.00632 18.0 2.31 0 0.538 6.575 65.2 4.0900 1 296 15.3
1 0.02731 0.0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8
2 0.02729 0.0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8
3 0.03237 0.0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.7
4 0.06905 0.0 2.18 0 0.458 7.147 54.2 6.0622 3 222 18.7
black lstat medv
0 396.90 4.98 24.0
1 396.90 9.14 21.6
2 392.83 4.03 34.7
3 394.63 2.94 33.4
4 396.90 5.33 36.2
OLS Regression Results
==============================================================================
Dep. Variable: medv R-squared: 0.741
Model: OLS Adj. R-squared: 0.734
Method: Least Squares F-statistic: 108.1
Date: Mon, 08 Jul 2024 Prob (F-statistic): 6.72e-135
Time: 03:02:00 Log-Likelihood: -1498.8
No. Observations: 506 AIC: 3026.
Df Residuals: 492 BIC: 3085.
Df Model: 13
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 36.4595 5.103 7.144 0.000 26.432 46.487
crim -0.1080 0.033 -3.287 0.001 -0.173 -0.043
zn 0.0464 0.014 3.382 0.001 0.019 0.073
indus 0.0206 0.061 0.334 0.738 -0.100 0.141
chas 2.6867 0.862 3.118 0.002 0.994 4.380
nox -17.7666 3.820 -4.651 0.000 -25.272 -10.262
rm 3.8099 0.418 9.116 0.000 2.989 4.631
age 0.0007 0.013 0.052 0.958 -0.025 0.027
dis -1.4756 0.199 -7.398 0.000 -1.867 -1.084
rad 0.3060 0.066 4.613 0.000 0.176 0.436
tax -0.0123 0.004 -3.280 0.001 -0.020 -0.005
ptratio -0.9527 0.131 -7.283 0.000 -1.210 -0.696
black 0.0093 0.003 3.467 0.001 0.004 0.015
lstat -0.5248 0.051 -10.347 0.000 -0.624 -0.425
==============================================================================
Omnibus: 178.041 Durbin-Watson: 1.078
Prob(Omnibus): 0.000 Jarque-Bera (JB): 783.126
Skew: 1.521 Prob(JB): 8.84e-171
Kurtosis: 8.281 Cond. No. 1.51e+04
==============================================================================
結果の解釈
結果には以下の情報が含まれます:
- R-squared: モデルがデータのどれだけを説明しているかを示す指標。
$1$に近いほどモデルの説明力が高い。 - Coefficients(coef): 各説明変数の回帰係数。
これにより各特徴量が住宅価格にどのような影響を与えるかがわかります。 - P-values: 各説明変数の有意性を示す値。
一般的に、p値が$0.05$未満の変数は統計的に有意とされます。
このようにして、statsmodelsを使用して現実的な問題を解決することができます。
この例では、住宅価格を予測するための重回帰モデルを構築し、その結果を解釈しました。


