-How to estimate Poisson regression model using Python-
Pythonのstatsmodelsを使ってポワソン回帰モデルを推定する
-How to estimate Poisson regression model using Python-
statsmodels.apiのPoissonモデルは、ポアソン回帰モデルを推定するためのクラスです。ポアソン回帰は、カウントデータ(離散カウント)のモデリングに使用されます。以下に、statsmodels.apiを使用したポアソン回帰の基本的な手順を示します。
ポアソン回帰モデルのコード
import statsmodels.api as sm
import numpy as np
# 仮想のデータ生成
np.random.seed(123)
exog = sm.add_constant(np.random.rand(100, 2)) # 2つの説明変数と切片項
lambda_values = np.exp(np.dot(exog, np.array([1.5, 2.5])))
# ポアソン回帰モデルの定義
endog = np.random.poisson(lambda_values)
model = sm.Poisson(endog, exog)
# モデルのフィット
result = model.fit()
# 結果の表示
print(result.summary())
Poissonの出力の読み方
以下は、sm.Poissonモデルのfit()メソッドの結果を要約する例です。ただし、これは架空のデータに基づくもので、実際のデータには適用できません。実際のデータに適用するには、適切なデータを用意してからモデルをフィットする必要があります。
Poisson Regression Results
==============================================================================
Dep. Variable: y No. Observations: 100
Model: Poisson Df Residuals: 97
Method: MLE Df Model: 2
Date: Sat, 05 Nov 2023 Pseudo R-squ.: 0.674
Time: 12:34:56 Log-Likelihood: -156.38
converged: True LL-Null: -485.48
Covariance Type: nonrobust LLR p-value: 4.871e-144
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
const 0.7411 0.261 2.840 0.005 0.229 1.253
x1 1.5129 0.219 6.891 0.000 1.081 1.945
x2 2.4678 0.305 8.090 0.000 1.869 3.067
==============================================================================
各要素について簡単に説明します。
- Dep. Variable (Dependent Variable): このモデルの応答変数(従属変数)の名前です。この例では “y” です。
- No. Observations (Number of Observations): モデルに使用された観測データの総数です。
- Model: 使用された統計モデルの名前です。この例では Poisson Regression です。
- Method: 推定方法。この例では Maximum Likelihood Estimation (MLE) です。
- Date: モデルの推定が行われた日付と時刻です。
- Time: モデルの推定が行われた時刻です。
- converged: 最適化アルゴリズムが収束したかどうかを示します。Trueの場合、収束しています。
- Covariance Type: 推定された共分散行列の種類です。この例では nonrobust です。
- coef (coefficients): 各説明変数の係数です。constは切片を示します。この例では、const、x1、x2の係数が表示されています。
- std err (standard error): 各係数の標準誤差です。この値が小さいほど、推定された係数が安定していることを示します。
- z: z統計量。係数をその標準誤差で割ったものです。絶対値が大きいほど、係数がゼロであるという帰無仮説が棄却されやすくなります。
- P>|z|: z統計量に基づくp値です。この値が小さいほど、対応する係数が統計的に有意である可能性が高まります。
- [0.025 0.975]: 95%信頼区間です。この区間に含まれない場合、対応する係数がゼロであるという帰無仮説が棄却される可能性が高まります。
- Log-Likelihood: モデルの対数尤度。この値が大きいほど、モデルがデータに適合していると言えます。
- LL-Null: Nullモデルの対数尤度。対数尤度比検定に使用されます。
- Pseudo R-squ.: 擬似決定係数。この値が大きいほど、モデルがデータに適合していると言えます。
- LLR p-value: 対数尤度比検定のp値。モデル全体の有意性を評価します。
ポアソン回帰モデルについて
Poisson回帰は、カウントデータや事象の発生回数など、離散的なイベントをモデル化するのに適した統計モデルです。Poisson分布から派生しています。
Poisson分布の確率質量関数:
\[ P(Y = y) = \frac{e^{-\lambda} \lambda^y}{y!} \]Poisson回帰では、応答変数 の平均が説明変数の線形結合としてモデル化されます
\[ \lambda = e^{\beta_0 + \beta_1 X_1 + \beta_2 X_2 + \ldots + \beta_k X_k} \]
注: \(Y\) は応答変数、\(y\) は具体的な発生回数、\(\lambda\) は平均発生回数、\(\beta_0, \beta_1, \ldots, \beta_k\) は回帰係数、
\(X_1, X_2, \ldots, X_k\) は説明変数を表します。
- statsmodels.apiを用いた最小2乗法による線形回帰
- statsmodels.apiモジュールを用いて重みづけ最小2乗法を行う
- statsmodels.apiモジュールを用いて一般化最小2乗法を行う
- statsmodels.apiを使って自己相関のある誤差項を考慮した一般化最小二乗法を行う
- Pythonのstatsmodels.apiを使って分位点回帰を行う
- Pythonのstatsmodels.apiを用いてロジスティック回帰を行う
- Pythonでプロビットモデルを推定する
- Pythonのstatsmodelsを使って多項ロジットモデルを推定する
- Pythonのstatsmodelsを使って負の2項分布回帰モデルを推定する
にほんブログ村
インターネット・コンピュータランキング
ブログ王ランキングに参加中!
PC関連ランキング
「Pythonのstatsmodelsを使ってポワソン回帰モデルを推定する
-How to estimate Poisson regression model using Python-」への1件のフィードバック