一般化線形モデル¶
一般化線形モデルは現在、1 パラメーター指数族を使用した推定をサポートしています。
コマンドと引数については Module Reference を参照してください。
例¶
# Load modules and data
In [1]: import statsmodels.api as sm
In [2]: data = sm.datasets.scotland.load()
In [3]: data.exog = sm.add_constant(data.exog)
# Instantiate a gamma family model with the default link function.
In [4]: gamma_model = sm.GLM(data.endog, data.exog, family=sm.families.Gamma())
In [5]: gamma_results = gamma_model.fit()
In [6]: print(gamma_results.summary())
Generalized Linear Model Regression Results
==============================================================================
Dep. Variable: YES No. Observations: 32
Model: GLM Df Residuals: 24
Model Family: Gamma Df Model: 7
Link Function: InversePower Scale: 0.0035843
Method: IRLS Log-Likelihood: -83.017
Date: Tue, 28 Jan 2025 Deviance: 0.087389
Time: 00:09:05 Pearson chi2: 0.0860
No. Iterations: 6 Pseudo R-squ. (CS): 0.9800
Covariance Type: nonrobust
======================================================================================
coef std err z P>|z| [0.025 0.975]
--------------------------------------------------------------------------------------
const -0.0178 0.011 -1.548 0.122 -0.040 0.005
COUTAX 4.962e-05 1.62e-05 3.060 0.002 1.78e-05 8.14e-05
UNEMPF 0.0020 0.001 3.824 0.000 0.001 0.003
MOR -7.181e-05 2.71e-05 -2.648 0.008 -0.000 -1.87e-05
ACT 0.0001 4.06e-05 2.757 0.006 3.23e-05 0.000
GDP -1.468e-07 1.24e-07 -1.187 0.235 -3.89e-07 9.56e-08
AGE -0.0005 0.000 -2.159 0.031 -0.001 -4.78e-05
COUTAX_FEMALEUNEMP -2.427e-06 7.46e-07 -3.253 0.001 -3.89e-06 -9.65e-07
======================================================================================
詳細な例は次の場所にあります :
技術文書¶
各観測値 \(i\) の統計モデルは以下のように仮定されます
\(Y_i \sim F_{EDM}(\cdot|\theta,\phi,w_i)\) and \(\mu_i = E[Y_i|x_i] = g^{-1}(x_i^\prime\beta)\).
ここで \(g\) はリンク関数で、 \(F_{EDM}(\cdot\theta,\phi,w)\) は自然パラメータ \(\theta\) 、スケールパラメータ \(\phi\) 、重み \(w\) を持つ指数分散モデル(EDM)族の分布です。その密度は次のようになります
\(f_{EDM}(y|\theta,\phi,w) = c(y,\phi,w) \exp\left(\frac{y\theta-b(\theta)}{\phi}w\right)\,.\)
その結果、\(\mu=b'(\theta)\) と \(Var[Y x]=\frac{\phi}{w}b''(\theta)\) になります。最初の式の逆関数は、自然パラメータを期待値の関数として与えます。 \(\theta(\mu)\) 以下のようになります
\(Var[Y_i|x_i] = \frac{\phi}{w_i} v(\mu_i)\)
したがって、GLMはリンク関数 \(g\) と分散関数 \(v(\mu)\) だけで決まると言われています(もちろん \(x\) も)。
\(\phi\) は \(y_i\) のどの観測値に対しても同じなので、 \(\beta\) の推定には影響しませんが、 \(w_i\) の重みは \(y_i\) ごとに異なる可能性があり、 \(\beta\) の推定はそれらに依存することに注意してください。
分布 |
ドメイン |
\(\mu=E[Y|x]\) |
\(v(\mu)\) |
\(\theta(\mu)\) |
\(b(\theta)\) |
\(\phi\) |
|---|---|---|---|---|---|---|
二項 \(B(n,p)\) |
\(0,1,\ldots,n\) |
\(np\) |
\(\mu-\frac{\mu^2}{n}\) |
\(\log\frac{p}{1-p}\) |
\(n\log(1+e^\theta)\) |
1 |
ポアソン \(P(\mu)\) |
\(0,1,\ldots,\infty\) |
\(\mu\) |
\(\mu\) |
\(\log(\mu)\) |
\(e^\theta\) |
1 |
負二項. \(NB(\mu,\alpha)\) |
\(0,1,\ldots,\infty\) |
\(\mu\) |
\(\mu+\alpha\mu^2\) |
\(\log(\frac{\alpha\mu}{1+\alpha\mu})\) |
\(-\frac{1}{\alpha}\log(1-\alpha e^\theta)\) |
1 |
ガウス/正規 \(N(\mu,\sigma^2)\) |
\((-\infty,\infty)\) |
\(\mu\) |
\(1\) |
\(\mu\) |
\(\frac{1}{2}\theta^2\) |
\(\sigma^2\) |
ガンマ \(N(\mu,\nu)\) |
\((0,\infty)\) |
\(\mu\) |
\(\mu^2\) |
\(-\frac{1}{\mu}\) |
\(-\log(-\theta)\) |
\(\frac{1}{\nu}\) |
逆ガウス. \(IG(\mu,\sigma^2)\) |
\((0,\infty)\) |
\(\mu\) |
\(\mu^3\) |
\(-\frac{1}{2\mu^2}\) |
\(-\sqrt{-2\theta}\) |
\(\sigma^2\) |
Tweedie \(p\geq 1\) |
\(p\) に依存 |
\(\mu\) |
\(\mu^p\) |
\(\frac{\mu^{1-p}}{1-p}\) |
\(\frac{\alpha-1}{\alpha}\left(\frac{\theta}{\alpha-1}\right)^{\alpha}\) |
\(\phi\) |
Tweedie 分布には \(p=0,1,2\) に対する特殊なケースがあります。それは表にはなく、 \(\alpha=\frac{p-2}{p-1}\) を使います。
数学的変数とコードの対応 :
\(Y\) と \(y\) はモデル化したい変数であり
endogとしてコード化されます\(x\) は共変量の別名説明変数であり
exog、としてコード化されます\(\beta\) は推定したいパラメータであり、
params、としてコード化されます\(\mu\) は( \(x\) の条件のもとでの) \(Y\) の期待値であり
mu、としてコード化されます\(g\) は class Family への link 引数としてコード化されています
\(\phi\) は、EDMの分散パラメータである
scaleとしてコード化されます\(w\) はまだサポートされていません(つまり \(w=1\) )。将来は ``var_weights` `になるかもしれません
\(p\) は、Tweedie分布の分散関数 \(v(\mu)\) の累乗に対して、 var_power としてコード化されます。表を参照してください
\(\alpha\) は次のいずれかです
負の二項:補助パラメータ
alpha(表参照)Tweedie: \(\frac{p-2}{p-1}\) の略語であり、 \(p\) は分散関数のべき指数。表を参照
参考文献¶
Gill, Jeff、2000年、Generalized Linear Models: A Unified Approach、SAGE QASS Series。
Green, PJ.、PJ. 1984年。“Iteratively reweighted least squares for maximum likelihood estimation, and some robust and resistant alternatives.” Journal of the Royal Statistical Society、シリーズB、46、149-192。
Hardin, J.W. and Hilbe, J.M. 2007年, "Generalized Linear Models and Extensions." 第2版,Stata Press, College Station, TX.
McCullagh, P. and Nelder, J.A. 1989年. "Generalized Linear Models." 第2版.Chapman&Hall, Boca Rotan.
モジュールリファレンス¶
モデルクラス¶
|
一般化線形モデル |
結果クラス¶
|
GLM 結果を含むクラス。 |
|
GLMの予測結果。 |
分布族¶
現在実装されている分布族は次のとおりです
|
1 パラメータ指数型分布族の親クラス。 |
|
二項指数族分布。 |
|
ガンマ指数族分布。 |
|
ガウス指数族分布。 |
|
逆ガウス指数族分布。 |
|
負二項指数族分布(NB2に対応)。 |
|
ポアソン指数族分布。 |
|
Tweedie 族. |
リンク機能¶
注: 小文字のリンク クラスは廃止されており、将来削除される予定です。リンク クラスは Python クラス名の規則に従うようになりました。
現在実装されているリンク機能は以下の通りです。すべてのリンク機能が各分布族で利用できるわけではありません。利用可能なリンク関数のリストは、次の方法で取得できます
>>> sm.families.family.<familyname>.links
|
1 パラメータ指数型分布族の汎用リンク関数。 |
|
scipy.stats 分布の CDF を使用する |
|
相補的な対数対対数変換 |
|
対数対対変換 |
|
対数補数変換 |
|
ログ変換 |
|
ロジット変換 |
|
負二項リンク関数 |
|
べき変換 |
|
コーシー (標準コーシー CDF) 変換 |
|
恒等変換 |
逆変換 |
|
逆二乗変換 |
|
|
プロビット (標準正規 CDF) 変換 |
分散関数¶
各関数族には、関連する分散関数があります。ここから分散関数にアクセスできます :
>>> sm.families.<familyname>.variance
確率変数の分散をその平均に関連付けます。 |
|
定数の分散、つまり 1 のベクトルを返します。 |
|
|
分散関数のべき乗 |
np.fabs(mu)を返す |
|
np.fabs(mu)**2 を返す |
|
np.fabs(mu)**3 を返す |
|
|
二項分散関数 |
n = 1 の二項分散関数 |
|
|
負二項分散関数 |
負の二項分散関数。 |