# How to test assumptions for a large number of statistical tests?

I am running a logistic regression. The outcome is a clinical variable, and there are two predictors: gene expression (continuous), hormone levels (continuous), and the interaction term between them.

There is only one hormone, but there are ~10K genes. I am running independently 10K regressions, one for each gene.

The hypothesis is that interaction between some of the genes and the hormone leads to the clinical outcome. I would like to test if it is so.

The most important statistical assumption one should check in logistic regression (afaik) is linearity. The logit of the probability log(p/1-p) should be in a linear relationship with each of the predictors. This can be checked using a plot.

But, for a large number of genes this is not feasible. Even if I take only the ones that are found to be interesting (as a result of the regression) there are about 100 such genes.

What would be an efficient way to check the assumption?

The same goes for checking for outliers. How does one do it in an efficient way on ~100 regressions?

• Technically (if it matters), I am using R
– Sam
Commented Oct 19, 2021 at 7:37
• Could you elaborate more on your data. Are they continuous or categorical predictors? It's not immediately clear why there are ~100 regressions.. Commented Oct 19, 2021 at 8:56
• @epp edited and clarified
– Sam
Commented Oct 19, 2021 at 9:54

## 2 Answers

Often the data do not possess the information needed to make judgments about nonlinearity and additivity. It would be better to fit logistic models making no such assumptions, e.g., use a regression spline in log gene expression and in log hormone level (logs will make them require slightly fewer knots) and cross-product terms. Then you can use Wald "chunk" tests to test general hypotheses.

The clinical outcome variable you are using is the lowest information variable you can have (a binary Y). What is that variable? Is it truly dichotomous in its rawest form? You need all the effective sample size you can get for your difficult problem.

You might also use a penalized regression joint analysis of all gene expressions.

Probably not a conclusive answer... For each of the ~100 interesting genes passing a first, low pass screening you want to plot the logit of the outcome vs gene expression. That makes ~100 plots. In a 4x5 layout is "only" four or five A4 pages of plots. You can annotate each plot with some metrics of linearity, and plot them in order of such metrics for ease of eyeballing. If you are a bit familiar with R and ggplot this is not a terribly complicated option.

• If you knew which genes were interesting you wouldn't need 100k candidate genes. Commented Oct 19, 2021 at 12:39
• @FrankHarrell In my imagination, the OP has 10k genes because this is what the experimental technique provides and s/he doesn't have a strong opinion for what is worth following up. With a low stringency filter based on e.g. adjusted pvalue you cut down this 10k to ~100 candidates and by eyeballing you could discard some others. Sure, you don't get a definitive list of interesting genes and their effects but It doesn't seem to me a terrible strategy if your aim is a smallish workable list for further refinment... (The OP doesn't give much context...) Commented Oct 19, 2021 at 13:09
• @dariober your interpretation is 100% correct, and perhaps the strategy could work. Could you suggest a simple measure of linearity ?
– Sam
Commented Oct 19, 2021 at 14:04
• @dariober a single strategy can be used for selecting the "winners". Sam there is no reason to measure linearity; just allow for nonlinearity. Commented Oct 19, 2021 at 20:59