廣義線性模型¶
廣義線性模型目前支援使用單參數指數族進行估計。
請參閱模組參考以取得指令和參數。
範例¶
# 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: Thu, 03 Oct 2024 Deviance: 0.087389
Time: 16:15:27 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)\) 且 \(\mu_i = E[Y_i|x_i] = g^{-1}(x_i^\prime\beta)\)。
其中 \(g\) 是鏈結函數,而 \(F_{EDM}(\cdot|\theta,\phi,w)\) 是指數分散模型 (EDM) 族的分佈,具有自然參數 \(\theta\)、尺度參數 \(\phi\) 和權重 \(w\)。其密度由下式給出
\(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)\)
其中 \(v(\mu) = b''(\theta(\mu))\)。因此,據說 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\) |
\(\mu\) |
\(\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\) 編碼為
mu
,即 \(Y\) 的期望值(以 \(x\) 為條件)\(g\) 編碼為
class Family
的link
引數\(\phi\) 編碼為
scale
,即 EDM 的分散參數\(w\) 尚不支援(即 \(w=1\)),未來可能會是
var_weights
\(p\) 對於 Tweedie 分佈的變異數函數 \(v(\mu)\) 的冪次,編碼為
var_power
,請參閱表格\(\alpha\) 為下列其中之一
負二項式:輔助參數
alpha
,請參閱表格Tweedie:變異數函數的冪次 \(p\) 的縮寫 \(\frac{p-2}{p-1}\),請參閱表格
參考文獻¶
Gill, Jeff. 2000. Generalized Linear Models: A Unified Approach. SAGE QASS 系列。
Green, PJ. 1984. “Iteratively reweighted least squares for maximum likelihood estimation, and some robust and resistant alternatives.” Journal of the Royal Statistical Society, Series B, 46, 149-192.
Hardin, J.W. and Hilbe, J.M. 2007. “Generalized Linear Models and Extensions.” 2nd ed. Stata Press, College Station, TX。
McCullagh, P. and Nelder, J.A. 1989. “Generalized Linear Models.” 2nd ed. Chapman & Hall, Boca Rotan。
模組參考¶
模型類別¶
|
廣義線性模型 |
結果類別¶
|
包含 GLM 結果的類別。 |
|
GLM 的預測結果。 |
分佈族¶
目前實作的分佈族有:
|
單參數指數族的父類別。 |
|
二項式指數族分佈。 |
|
Gamma 指數族分佈。 |
|
高斯指數族分佈。 |
|
逆高斯指數族。 |
|
負二項式指數族(對應於 NB2)。 |
|
泊松指數族。 |
|
Tweedie 族。 |
連結函數¶
注意:小寫的連結類別已棄用,未來將移除。連結類別現在遵循 Python 類別名稱慣例。
目前實作的連結函數如下。並非所有連結函數都適用於每個分佈族。可用的連結函數列表可以通過以下方式獲得:
>>> sm.families.family.<familyname>.links
|
單參數指數族的通用連結函數。 |
|
使用 scipy.stats 分佈的 CDF |
|
互補對數對數轉換 |
|
對數對數轉換 |
|
對數互補轉換 |
|
對數轉換 |
|
logit 轉換 |
|
負二項式連結函數 |
|
冪轉換 |
|
柯西(標準柯西 CDF)轉換 |
|
恆等轉換 |
反轉換 |
|
反平方轉換 |
|
|
機率單位 (標準常態 CDF) 轉換 |
變異數函數¶
每個族都有一個相關的變異數函數。您可以在這裡存取變異數函數
>>> sm.families.<familyname>.variance
將隨機變數的變異數與其平均值關聯起來。 |
|
constant 的呼叫方法會傳回一個常數變異數,即一個由 1 組成的向量。 |
|
|
冪變異數函數 |
傳回 np.fabs(mu) |
|
傳回 np.fabs(mu)**2 |
|
傳回 np.fabs(mu)**3 |
|
|
二項式變異數函數 |
n = 1 的二項式變異數函數 |
|
|
負二項式變異數函數 |
負二項式變異數函數。 |