1
$\begingroup$

I am currently performing multiple "E-tests" (poisson.mean), and would like to know the most appropriate method for multiple corrections with E-tests, and how to go about this in R.

I am counting the number of times an event happens (in a given time interval) for 7 different experimental groups (2 control groups, 5 experimental groups of interest). I have opted to compare poisson distribution means between the groups by listing the 7 condition groups and values, then performing poisson tests in an iterative approach. P values are then taken from the result, eg.

Cond1 <- c(0,0,0,1,1,2,3,3,3)
Cond2 <- c(0,1,1,1,1,1,2,3,3)
Cond3 <- c(0,1,2,3,3,3,3,3,4)
Cond7 <- c(3,3,3,3,4,4,4,5,6)
result1 <- poisson.test(x c(sum(Cond1), sum(Cond2)),
   T = c(length(Cond1), length (Cond2)),
   alternative = "two.sided")
result2 <- poisson.test(x c(sum(Cond1), sum(Cond3)),
    T = c(length(Cond1), length (Cond3)),
    alternative = "two.sided") 

result20 <- poisson.test(x c(sum(Cond6), sum(Cond7)),
                   T = c(length(Cond6), length (Cond7)),
                   alternative = "two.sided") 
P1 <- result1§p.value 
P2 <- result2§p.value 
P20<- result20§p.value 

From this point, I need to correct for multiple tests, and would like to use a Benjamini-Hochberg type ranked p-value significance correction, but am wondering

A) which test is most appropriate for this kind of analysis

B) how to go about this in R

$\endgroup$

1 Answer 1

0
$\begingroup$

There is a better approach to your problem that can also (unlike poisson.mean()) fit all your data at once and help assess whether a Poisson distribution fits the data adequately. There is a type of model called Poisson regression that is designed for this type of problem with count data when it's more complicated than a simple comparison of two situations. If the observations are independent (e.g., each individual is only subjected to one of the treatments), it's implemented in the R glm() function when you specify family=poisson as an argument.

You can then check how well the mean = variance assumption of the Poisson distribution holds; if it doesn't, you can either use a family=quasipoisson argument instead to adjust the standard errors appropriately or move to a negative binomial model (e.g., the glm.nb() function in the MASS package).

If I understand the situation properly, your model could be something like:

poissonModel <- glm(counts ~ condition, data=yourData, family = poisson)

if each row of data includes a separate observation with the number of counts and the condition annotated in columns.

Once you have fit the model to the entire data set and validated the adequacy of the Poisson assumption, then you can use post-modeling tools to obtain all of the comparisons that you want among the conditions. The emmeans package is one good choice that handles Poisson or negative binomial models. It corrects for multiple comparison appropriately, has a built-in function for all pairwise comparisons, and allows for more complicated comparisons (for example, the mean of the 2 control groups against each of the other 5).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.