from _api_doc_utils import *Poisson
Poisson GLM for count outcomes
1 Where it fits
Group: Regression
Poisson fits
\[ \mathbb E[Y_i\mid X_i=x_i]=\exp(\alpha+x_i'\beta). \]
The alpha constructor argument is an L2 penalty, not the intercept. summary(vcov='vanilla') reports Fisher-information standard errors; summary(vcov='sandwich') reports robust QMLE-style standard errors.
2 Python API
Constructor: cm.Poisson
Use fit(x, y) with nonnegative count-like outcomes. predict(x) returns fitted conditional means. The class also supports bootstrap(B, seed=None).
print(inspect.signature(cm.Poisson))(alpha=0.0, max_iterations=100, tolerance=0.0001)
cls = cm.Poisson
display(HTML(html_table(["Public method"], public_methods(cls))))| Public method |
|---|
bootstrap(self, /, n_bootstrap, seed=None) |
fit(self, /, x, y) |
predict(self, /, x) |
summary(self, /, vcov='vanilla') |
3 Minimal example
rng=np.random.default_rng(7)
x=rng.normal(size=(250,2)); mu=np.exp(.2+x@np.array([.4,-.25])); y=rng.poisson(mu).astype(float)
model=cm.Poisson(max_iterations=200, tolerance=1e-8); model.fit(x,y)
print(model.summary(vcov="vanilla")["coef"])
print(model.summary(vcov="sandwich")["coef_se"])
print(model.predict(x[:3]))[ 0.26320223 -0.29275249]
[0.0578437 0.05367217]
[1.01940438 1.34302229 1.319153 ]
4 summary() contract
The table below is generated by fitting the live class in this repository and then inspecting summary(). Shapes are shown because most values are plain NumPy arrays or scalars.
rng=np.random.default_rng(107); x=rng.normal(size=(100,2)); y=rng.poisson(np.exp(.2+x@np.array([.4,-.25]))).astype(float)
model=cm.Poisson(max_iterations=200); model.fit(x,y)
summary = model.summary()
display(HTML(html_table(["summary() key", "shape"], summary_shape_rows(summary))))| summary() key | shape |
|---|---|
intercept |
() |
coef |
(2,) |
intercept_se |
() |
coef_se |
(2,) |
vcov_type |
() |