# T test for poisson distribution

I have a sample ($$n = 10$$) from a Poisson distribution. It was said that the t test with 9 degrees of freedom cannot be used to test $$H_0: \lambda = 5$$ against $$H_1: \lambda \ne 5$$.

I know that a Poisson distribution can be approximated by a Normal one for "big" sample sizes. Since we have here $$n=10$$, is this the reason the t test can't be applied here?

• I disagree with the premise of the question. An average of 10 Poisson rvs with $\lambda=5$ is normal to an excellent approximation. Same as for one rv with $\lambda=50$. So a t-test would be "valid" in that it would control the type I error rate correctly or close enough. But why would you want to do a t-test when using the Poisson distribution directly is both better and simpler? Jan 2, 2021 at 23:38

Consider the sum $$T =\sum_{i=1}^{10} X_i,$$ where $$X_i \stackrel{iid}{\sim} \mathsf{Pois}(\lambda = 5).$$ Then $$T \sim \mathsf{Pois}(\lambda_{10}=50),$$ and $$P(T \le 36) + P(T \ge 65) \approx 0.048.$$ In R:

ppois(36, 50)
 0.02375891
1-ppois(64, 50)
 0.02360321


Thus an exact test of $$H_0: \lambda = 5$$ vs. $$H_a: \lambda \ne 5$$ at about the 4.8% level is to reject $$H_0$$ for $$T \le 36$$ or $$T \ge 65.$$ The distribution $$\mathsf{Pois}(50)$$ is approximately $$\mathsf{Norm}(\mu=50, \sigma-\sqrt{50}),$$ so a normal approximation to the exact test is easy to find. Student's t distribution with 9 degrees of freedom is not an appropriate null distribution for your test, and I see no reason to use it (or any other t distribution). [Doing a one-sample t test on Poisson data would compound the inaccuracy by using the sample standard deviation $$S$$ to approximate the known standard deviation of the null distribution.]

Maybe this is useful:

Making the comparison between using the t-test and the approach by BruceET: # T-student:

B <- 100000

power_p <- numeric(8)

lower_t <- qt(0.025, 9)
upper_t <- qt(0.975, 9)

for(i in 1:8){
for (j in 1:B){
my_sample <- rpois(10, i)
t_stat[j] <- (mean(my_sample) - 5) / (sd(my_sample)/sqrt(10))
}

power_t[i] <-  mean(t_stat <= lower_t | t_stat >= upper_t)

}

#Poisson:

power_p <- numeric(8)

low_n <- qnorm(0.025, 50, sqrt(50))
up_n <- qnorm(0.975, 50, sqrt(50))

for(i in 1:8){
for (j in 1:B){
my_sample <- rpois(10, i)
T_s[j] <- sum(my_sample)
}

power_p[i] <-  mean(T_s <= low_n | T_s >= up_n)

}
> power_p
 1.00000 0.99960 0.88010 0.29759 0.05589 0.32168 0.77828 0.97092
> power_t
 1.00000 0.99872 0.86741 0.32308 0.05239 0.18314 0.57013 0.87494


Can be seen what would be the problem of using a t-test in this case, the power of the t-test is lower.

Another option to get the confidence interval could be a simple monte carlo simulation.