Genera distribuzione nulla da pvalues

Oct 06 2020

Ho una serie di esperimenti su cui applico il test esatto di Fisher per inferire statisticamente i cambiamenti nelle popolazioni cellulari. Alcuni dei dati sono esperimenti fittizi che modellano i nostri esperimenti di controllo che descrivono il modello nullo (colonna tipo).

Ecco come appaiono i dati ( link ):

Sto applicando il test esatto di Fisher su popolazioni in 2 condizioni (NON TRATTATO, TRATTATO) con lo stesso ID.

data.merged = merge(x=subset(df,condition == 'UNTREATED'), y= subset(df, condition =='TREATED')), by ='ID')

Tuttavia, a causa di alcune variazioni sperimentali, la maggior parte degli esperimenti controllati rigetta l'ipotesi nulla a $ p_{val} <0.05$. Alcune delle ipotesi nulle delle effettive condizioni sperimentali vengono rifiutate anche in a$ p_{val} <0.05 $. Tuttavia, questi valori p, sono magnitudini inferiori a quelle delle mie condizioni di controllo. Ciò indica un effetto più forte di queste condizioni sperimentali. Tuttavia, non sono a conoscenza di un metodo adeguato per quantificare questi cambiamenti e inferirli statisticamente.

Un esempio di come appaiono i dati:

ID      Pval            Condition
B0_W1   2.890032e-16    DUMMY 
B0_W10  7.969311e-38    DUMMY
B0_W11  8.078795e-25    DUMMY   
B0_W2   3.149525e-30    Gene_A
B1_W1   3.767914e-287   Gene_B
B1_W10  3.489684e-56    Gene_X
B1_W10  3.489684e-56    Gene_Y

Un'idea che ho avuto:

  1. selezionando le condizioni di ctrl e lascia $ X = -ln(p_{val}) $ che distribuirà i dati trasformati come distribuzione espontenziale.
  2. Usa MLE per trovare il file $\lambda$parametro della distribuzione espontenziale. Questa sarà la mia distribuzione nulla.
  3. Applica la stessa trasformazione al resto del file $p_{val}$ che corrispondono alle condizioni di prova
  4. Usa il cdf della distribuzione null per ottenere i nuovi "valori p aggiustati".

Questo essenzialmente darà un nuovo $\alpha$soglia per i valori p originali e trasformare i risultati di conseguenza utilizzando la distribuzione cdf di null. Questi passaggi sono corretti? Utilizzare MLE per trovare il tasso corretto o viola alcune delle ipotesi per raggiungere il mio obiettivo finale? Qualche altro approccio che potrei provare?

Risposte

1 Eoin Oct 13 2020 at 19:53

Come notato nei commenti, sarebbe probabilmente meglio avvicinarsi a questo utilizzando un modello di regressione logistica multilivello, sulla falsariga di

glmer(cbind(Population_Pos, Population_Neg) ~ Condition * Type + (1|ID)

ma poiché non è la tua domanda, non approfondirò questo argomento.


In base all'approccio che hai adottato, non credo che la tua idea con valori p trasformati funzioni, ma c'è una soluzione più semplice. Ciò presuppone che tu abbia un gran numero di esperimenti di controllo.

  1. Per ogni esperimento, calcola una misura della dimensione dell'effetto. Questa potrebbe essere la statistica del Chi quadrato (calcolata per il test esatto di Fisher), ma probabilmente ha più senso usare l'odds ratio:$\frac{\text{Pos}_{\text{Treated}}}{\text{Neg}_{\text{Treated}}} \div \frac{\text{Pos}_{\text{Untreated}}}{\text{Neg}_{\text{Untreated}}} $.
  2. Tracciare la distribuzione delle dimensioni degli effetti per gli esperimenti attivi e gli esperimenti di controllo. Dovresti vedere effetti più grandi per gli esperimenti attivi.
  3. Per qualsiasi esperimento attivo, puoi verificare quanti esperimenti di controllo hanno una dimensione dell'effetto maggiore. Ad esempio, se un esperimento attivo ha una dimensione dell'effetto maggiore di quella nel 99% degli esperimenti di controllo, il valore p a una coda per l'ipotesi nulla che la dimensione dell'effetto per questo esperimento provenga dalla stessa distribuzione delle dimensioni dell'effetto di controllo è$p < .01$.

Di nuovo, però, questa è un'approssimazione che funziona solo quando si dispone di un numero molto elevato di esperimenti di controllo. Se in effetti hai solo 8 esperimenti di controllo, questa approssimazione non è affatto utile!

-

Per approfondire il motivo per cui questo è diverso da ciò che proponi, prima nota che un valore p non è una misura della dimensione dell'effetto e dipende dalla dimensione del campione, quindi non stai rispondendo alla stessa domanda se usi i valori p Qui. In secondo luogo, non possiamo davvero assumere una distribuzione per i valori p (o le dimensioni degli effetti) dagli esperimenti di controllo, poiché sembra che l'ipotesi nulla non sia vera per loro (se il valore zero fosse vero, i valori p sarebbero distribuzione uniforme tra 0 e 1). Ecco perché suggerisco invece questa approssimazione non parametrica.