Poisson regression
Verification
Scope
Coefficients, covariance matrices, standard errors, z statistics, p-values, confidence intervals, fitted values, residuals, log likelihood, deviance, null deviance, and AIC. Identical design matrices and missing-data exclusions across implementations.
References
- Reference
- R glm(family = poisson)
- Versions
- R 4.6.1, statsmodels 0.15.0, numpy 2.5.4, Python 3.14.7, PHP 8.5.10
Data
- Inputs
- Six saved R fixtures: the simulated clinic sample, one predictor, no intercept, intercept only, correlated columns, and sparse counts, plus a listwise-deletion case with two dropped rows.
Method
Each design is fitted by R, statsmodels, and phit's matrix function, with the intercept supplied as a column. Every quantity is compared with R, and each case's status is recomputed from the saved values.
- Check
- Comparison with a reference implementation
- Recorded
- 2026-11-01, PHP 8.5.10, macOS 27.0.1 (arm64), commit 066e2e1
Tolerances
|x − r| ≤ 1e-9 + 1e-7 × |r|
Applies to: Numerical results
exact equality
Applies to: Row indices, counts, and warnings
x: package value; r: reference value. Absolute error: |x − r|. Max errors are over the values a row compares. statsmodels: that implementation’s error against the same reference.
Results
91 comparisons in 7 cases: 91 pass, 0 fail, 0 skipped.
By case
| Case | Comparisons | Largest abs. error | Status |
|---|---|---|---|
| Simulated clinic sample | 13 | 6.5e-12 | pass |
| One predictor | 13 | 3.0e-11 | pass |
| No intercept | 13 | 6.2e-13 | pass |
| Intercept only | 13 | 4.0e-13 | pass |
| Correlated predictors | 13 | 1.1e-11 | pass |
| Sparse counts | 13 | 9.9e-13 | pass |
| Listwise deletion of missing values | 13 | 5.7e-12 | pass |
All 91 comparisons
| Case | Quantity | Criterion | Values | Package value | Reference value | Max abs. error | statsmodels | Status |
|---|---|---|---|---|---|---|---|---|
| Simulated clinic sample | Coefficients | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 1.4e-15 | 8.9e-16 | pass | ||
| Covariance matrix | |x − r| ≤ 1e-9 + 1e-7 × |r| | 9 | 1.2e-16 | 4.2e-17 | pass | |||
| Standard errors | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 2.8e-16 | 1.1e-16 | pass | |||
| z statistics | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 7.5e-15 | 4.9e-15 | pass | |||
| p-values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 6.5e-12 | 1.3e-15 | pass | |||
| Confidence intervals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 6 | 1.9e-15 | 9.4e-16 | pass | |||
| Fitted values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 2.2e-15 | 1.8e-15 | pass | |||
| Residuals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 2.2e-15 | 1.8e-15 | pass | |||
| Log likelihood | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | -198.3816382 | -198.3816382 | 8.5e-14 | 5.7e-14 | pass | |
| Deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 144.5306619 | 144.5306619 | 2.8e-14 | 2.8e-14 | pass | |
| Null deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 154.4689075 | 154.4689075 | 5.7e-14 | 2.8e-14 | pass | |
| AIC | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 402.7632764 | 402.7632764 | 1.7e-13 | 1.1e-13 | pass | |
| Residual degrees of freedom | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 117 | 117 | 0 | 0 | pass | |
| One predictor | Coefficients | |x − r| ≤ 1e-9 + 1e-7 × |r| | 2 | 2.2e-16 | 6.4e-16 | pass | ||
| Covariance matrix | |x − r| ≤ 1e-9 + 1e-7 × |r| | 4 | 1.4e-17 | 4.9e-17 | pass | |||
| Standard errors | |x − r| ≤ 1e-9 + 1e-7 × |r| | 2 | 2.8e-17 | 1.1e-16 | pass | |||
| z statistics | |x − r| ≤ 1e-9 + 1e-7 × |r| | 2 | 1.8e-15 | 3.1e-15 | pass | |||
| p-values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 2 | 3.0e-11 | 1.7e-15 | pass | |||
| Confidence intervals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 4 | 2.8e-16 | 6.9e-16 | pass | |||
| Fitted values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 1.3e-15 | 8.9e-16 | pass | |||
| Residuals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 1.8e-15 | 8.9e-16 | pass | |||
| Log likelihood | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | -201.9155972 | -201.9155972 | 1.1e-13 | 5.7e-14 | pass | |
| Deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 151.59858 | 151.59858 | 0 | 5.7e-14 | pass | |
| Null deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 154.4689075 | 154.4689075 | 5.7e-14 | 2.8e-14 | pass | |
| AIC | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 407.8311945 | 407.8311945 | 2.3e-13 | 1.1e-13 | pass | |
| Residual degrees of freedom | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 118 | 118 | 0 | 0 | pass | |
| No intercept | Coefficients | |x − r| ≤ 1e-9 + 1e-7 × |r| | 2 | 1.4e-16 | 8.3e-17 | pass | ||
| Covariance matrix | |x − r| ≤ 1e-9 + 1e-7 × |r| | 4 | 2.6e-18 | 8.7e-18 | pass | |||
| Standard errors | |x − r| ≤ 1e-9 + 1e-7 × |r| | 2 | 1.4e-17 | 5.6e-17 | pass | |||
| z statistics | |x − r| ≤ 1e-9 + 1e-7 × |r| | 2 | 1.8e-15 | 1.8e-15 | pass | |||
| p-values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 2 | 6.2e-13 | 2.6e-17 | pass | |||
| Confidence intervals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 4 | 1.4e-16 | 1.1e-16 | pass | |||
| Fitted values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 3.1e-15 | 4.4e-15 | pass | |||
| Residuals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 3.1e-15 | 4.4e-15 | pass | |||
| Log likelihood | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | -199.4042122 | -199.4042122 | 8.5e-14 | 5.7e-14 | pass | |
| Deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 146.5758098 | 146.5758098 | 0 | 2.8e-14 | pass | |
| Null deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 218.7623551 | 218.7623551 | 5.7e-14 | 2.8e-14 | pass | |
| AIC | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 402.8084243 | 402.8084243 | 1.7e-13 | 1.1e-13 | pass | |
| Residual degrees of freedom | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 118 | 118 | 0 | 0 | pass | |
| Intercept only | Coefficients | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 3.3e-16 | 1.1e-16 | pass | ||
| Covariance matrix | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 0 | 3.1e-14 | pass | |||
| Standard errors | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 0 | 2.3e-13 | pass | |||
| z statistics | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 5.3e-15 | 3.0e-11 | pass | |||
| p-values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 6.3e-29 | 3.2e-28 | pass | |||
| Confidence intervals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 2 | 3.3e-16 | 4.5e-13 | pass | |||
| Fitted values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 6.7e-16 | 2.2e-16 | pass | |||
| Residuals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 8.9e-16 | 2.2e-16 | pass | |||
| Log likelihood | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | -203.350761 | -203.350761 | 2.0e-13 | 1.4e-13 | pass | |
| Deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 154.4689075 | 154.4689075 | 2.8e-14 | 0 | pass | |
| Null deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 154.4689075 | 154.4689075 | 5.7e-14 | 2.8e-14 | pass | |
| AIC | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 408.701522 | 408.701522 | 4.0e-13 | 2.8e-13 | pass | |
| Residual degrees of freedom | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 119 | 119 | 0 | 0 | pass | |
| Correlated predictors | Coefficients | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 4.4e-15 | 5.5e-15 | pass | ||
| Covariance matrix | |x − r| ≤ 1e-9 + 1e-7 × |r| | 9 | 5.1e-16 | 3.9e-16 | pass | |||
| Standard errors | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 1.1e-15 | 3.2e-16 | pass | |||
| z statistics | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 4.1e-14 | 5.8e-14 | pass | |||
| p-values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 1.1e-11 | 1.9e-14 | pass | |||
| Confidence intervals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 6 | 6.7e-15 | 6.0e-15 | pass | |||
| Fitted values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 2.2e-14 | 1.7e-13 | pass | |||
| Residuals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 2.2e-14 | 1.7e-13 | pass | |||
| Log likelihood | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | -200.999247 | -200.999247 | 2.8e-14 | 5.7e-14 | pass | |
| Deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 149.7658795 | 149.7658795 | 8.5e-14 | 5.7e-14 | pass | |
| Null deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 154.4689075 | 154.4689075 | 5.7e-14 | 2.8e-14 | pass | |
| AIC | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 407.998494 | 407.998494 | 5.7e-14 | 1.1e-13 | pass | |
| Residual degrees of freedom | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 117 | 117 | 0 | 0 | pass | |
| Sparse counts | Coefficients | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 6.7e-16 | 6.9e-16 | pass | ||
| Covariance matrix | |x − r| ≤ 1e-9 + 1e-7 × |r| | 9 | 5.6e-16 | 5.6e-16 | pass | |||
| Standard errors | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 4.4e-16 | 4.4e-16 | pass | |||
| z statistics | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 1.8e-15 | 2.1e-15 | pass | |||
| p-values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 9.9e-13 | 1.6e-15 | pass | |||
| Confidence intervals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 6 | 1.2e-15 | 1.3e-15 | pass | |||
| Fitted values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 5.6e-16 | 4.2e-16 | pass | |||
| Residuals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 120 | 5.6e-16 | 4.2e-16 | pass | |||
| Log likelihood | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | -57.87342643 | -57.87342643 | 2.8e-14 | 7.1e-15 | pass | |
| Deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 79.90573594 | 79.90573594 | 0 | 1.4e-14 | pass | |
| Null deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 79.98814494 | 79.98814494 | 0 | 8.5e-14 | pass | |
| AIC | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 121.7468529 | 121.7468529 | 5.7e-14 | 1.4e-14 | pass | |
| Residual degrees of freedom | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 117 | 117 | 0 | 0 | pass | |
| Listwise deletion of missing values | Coefficients | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 5.6e-16 | 1.3e-15 | pass | ||
| Covariance matrix | |x − r| ≤ 1e-9 + 1e-7 × |r| | 9 | 5.2e-18 | 1.2e-16 | pass | |||
| Standard errors | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 2.8e-17 | 2.5e-16 | pass | |||
| z statistics | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 3.6e-15 | 6.7e-15 | pass | |||
| p-values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 3 | 5.7e-12 | 1.7e-15 | pass | |||
| Confidence intervals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 6 | 6.7e-16 | 1.9e-15 | pass | |||
| Fitted values | |x − r| ≤ 1e-9 + 1e-7 × |r| | 118 | 3.1e-15 | 1.3e-15 | pass | |||
| Residuals | |x − r| ≤ 1e-9 + 1e-7 × |r| | 118 | 3.1e-15 | 1.3e-15 | pass | |||
| Log likelihood | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | -196.0907588 | -196.0907588 | 8.5e-14 | 5.7e-14 | pass | |
| Deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 143.948903 | 143.948903 | 2.8e-14 | 0 | pass | |
| Null deviance | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 153.5778407 | 153.5778407 | 2.8e-14 | 1.1e-13 | pass | |
| AIC | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 398.1815175 | 398.1815175 | 1.7e-13 | 1.1e-13 | pass | |
| Residual degrees of freedom | |x − r| ≤ 1e-9 + 1e-7 × |r| | 1 | 115 | 115 | 0 | 0 | pass |
Limitations
Exclusions
- These cases have no offset; offset and exposure fits are covered by the test-suite and R compatibility records.
Known differences
- R intervals come from confint.default() (Wald), not profile-likelihood confint().
- phit reports the covariance at the converged coefficients; R glm() evaluates it at the last IRLS iterate. With the tight fitting tolerances used here the difference is negligible. See the R compatibility page for details.
- Without an intercept, the null deviance uses a mean of one.
Reproduction
cargo build -p phit --release --locked
.context/notebooks-venv/bin/python docs/verifications/compare_poisson.py
- Raw record
- site/verifications/poisson.json
- Full results
- docs/verifications/poisson-results.json
- Input data
- docs/data/clinic.csv