Method document
Sample size for Poisson or negative binomial regression with a numerical predictor
How many participants, each followed for a stated time, are needed to show that a numerical predictor changes the rate of a counted event, from the rate at the predictor’s mean and the rate ratio per standard deviation. Poisson or over-dispersed negative binomial counts. Allows for other covariates. Covers dropout.
https://statwisely.com/methods/regression-count/
When to use it
- Testing whether a measured predictor, such as a biomarker or age, is associated with how often an event occurs, such as exacerbations or falls.
Not for
- A yes/no outcome. Use logistic regression with a numerical predictor.
- A grouping predictor. Use the rate tests under “Event rates”.
Notation
- Number of participants
- Event rate per participant per unit of time at the predictor’s mean
- Follow-up per participant, in the rate’s time unit
- Negative binomial dispersion: variance μ + kμ²; 0 is Poisson
- Rate ratio per SD of the predictor; the slope is its logarithm
- Per-participant variance of the slope, under the null (0) and at the expected effect
- Share of the predictor’s variance explained by the other covariates
- Significance level: the chance of a false positive
- Power: the chance of detecting the effect if it is real
- Expected dropout
Formulas
Signorini’s method
The Wald test of the slope of a standard-normal predictor, with its variance under the null and at the expected effect [1]. The variance at the expected effect is the inverse information of the count model, E[μ/(1 + kμ) (1, x)(1, x)ᵀ] with μ = λt RRˣ, integrated by Gauss–Hermite quadrature; for Poisson counts it is exp(−(ln RR)²/2)/(λt), Signorini’s closed form. Other covariates inflate the variance by 1/(1 − R²) [2].
Dropout
Applied last, to the participants actually recruited.
Parameters
Event rate at the predictor’s mean
Values: Above 0
Events per participant per unit of time for someone at the average predictor value, from routine data or a previous study.
Expected rate ratio per SD
Values: Above 0 and not 1
The smallest change per SD of the predictor worth detecting.
Follow-up per participantOptional
Values: Above 0; 1 by default
In the rate’s time unit. Longer follow-up yields more events, and so more information, per participant.
Dispersion (negative binomial k)Optional
Values: 0 or more; 0 for Poisson counts
Clinical counts usually vary between people more than a Poisson process allows; take k from earlier data and try plausible values.
R² of the predictor on the other covariatesOptional
Values: At least 0 and below 1
0 with no other covariates.
Significance level
Values: Between 0 and 1; usually 0.05
The false-positive rate you accept. A smaller α, for example to allow for several primary outcomes, needs a larger sample.
Power
Values: Between 0 and 1; usually 0.80 or 0.90
The chance of a significant result if the assumed effect is real. Funders and ethics committees commonly expect at least 0.80.
Expected dropoutOptional
Values: 0% up to, but not including, 100%
The share of participants expected to provide no outcome, from comparable studies. Recruiting more restores the numbers, not the comparability of the groups: if dropout is related to the outcome, the estimate can still be biased.
Assumptions
- Participants are independent, each followed for the same time t; the predictor is approximately normal, and the log rate changes linearly with it.
- Counts are Poisson, or negative binomial with the stated dispersion, which the analysis estimates.
- Dropout is unrelated to the outcome; recruiting more participants restores the numbers but cannot remove bias.
Worked examples
Poisson counts
A rate of 0.85 at the predictor’s mean over one unit of follow-up, a rate ratio of 1.3 per SD, α = 0.05, 80% power: V(0) = 1/0.85 = 1.176 and V(ln 1.3) = 1.137, so N = (1.96 × 1.085 + 0.842 × 1.066)² / (ln 1.3)² = 132.6, rounded up to 133.
Sample size: 133
Open this example in the calculatorProtocol statement
To detect a rate ratio of 1.3 per standard deviation with 80% power at a significance level of 0.05, using a Wald test of a numerical predictor in a Poisson regression of event counts, and assuming an event rate of 0.85 per participant per unit of time at the predictor’s mean and 1 units of follow-up per participant, the required sample size is 133 participants. Calculated with StatWisely (statwisely.com) using: Signorini: N=(z_(1-α/2)√V(0)+z_(1-β)√V(β))²/[(ln RR)²(1-R²_X|Z)]. These are planning estimates; confirm the final design with a qualified statistician.
Over-dispersed counts
With dispersion k = 0.5, V(0) = 1.176 + 0.5 = 1.676 and V(ln 1.3) = 1.685: N = 192.
Sample size: 192
Open this example in the calculatorProtocol statement
To detect a rate ratio of 1.3 per standard deviation with 80% power at a significance level of 0.05, using a Wald test of a numerical predictor in a negative binomial regression of event counts, and assuming an event rate of 0.85 per participant per unit of time at the predictor’s mean, 1 units of follow-up per participant and a dispersion of 0.5, the required sample size is 192 participants. Calculated with StatWisely (statwisely.com) using: Signorini: N=(z_(1-α/2)√V(0)+z_(1-β)√V(β))²/[(ln RR)²(1-R²_X|Z)]. These are planning estimates; confirm the final design with a qualified statistician.
Adjusting for related covariates
If the other covariates explain 0.2 of the predictor’s variance: 132.6 / 0.8 = 165.8, so N = 166.
Sample size: 166
Open this example in the calculatorProtocol statement
To detect a rate ratio of 1.3 per standard deviation with 80% power at a significance level of 0.05, using a Wald test of a numerical predictor in a Poisson regression of event counts, and assuming an event rate of 0.85 per participant per unit of time at the predictor’s mean and 1 units of follow-up per participant, the required sample size is 166 participants. Calculated with StatWisely (statwisely.com) using: Signorini: N=(z_(1-α/2)√V(0)+z_(1-β)√V(β))²/[(ln RR)²(1-R²_X|Z)]. These are planning estimates; confirm the final design with a qualified statistician.
Validation
- Every worked example on this page is recomputed by the StatWisely engine whenever the software is built. If a number or formula here stopped matching the calculator, the release would be stopped until this document was corrected.
- An independent implementation in R recomputes this test every night and before each production release, and the results are compared with the engine’s.
- For Poisson counts the quadrature reproduces Signorini’s closed form exactly. Simulated Poisson and negative binomial regressions fitted at the planned sizes gave power of 0.78 to 0.81 against a target of 0.80, with the dispersion known or estimated.
How to cite
StatWisely. Sample size for Poisson or negative binomial regression with a numerical predictor. Method document, engine version 1.0.0, reviewed 2026-10-09. https://statwisely.com/methods/regression-count/
Cite the original references for the formulas your design uses as well.
References
- 1.Signorini DF. Sample size for Poisson regression. Biometrika. 1991;78(2):446–450. doi:10.1093/biomet/78.2.446
- 2.Hsieh FY, Bloch DA, Larsen MD. A simple method of sample size calculation for linear and logistic regression. Statistics in Medicine. 1998;17(14):1623–1634.