Guarda e troverai (una correlazione)


66

Ho diverse centinaia di misurazioni. Ora sto pensando di utilizzare un qualche tipo di software per correlare ogni misura con ogni misura. Ciò significa che ci sono migliaia di correlazioni. Tra questi ci dovrebbe essere (statisticamente) un'alta correlazione, anche se i dati sono completamente casuali (ogni misura ha solo circa 100 punti dati).

Quando trovo una correlazione, come posso includere le informazioni su quanto ho cercato una correlazione in essa?

Non sono di alto livello nelle statistiche, quindi per favore abbi pazienza.


5
Questo è un ottimo esempio del motivo per cui è necessario testare più ipotesi.

Presumibilmente si può usare la procedura di permutazione per generare una distribuzione nulla per le soglie di significatività per la correlazione più grande, una soglia diversa per la seconda correlazione più grande e così via. Spero che questo richiederebbe solo poche ore in Python o R. (Ha! Famose ultime parole.) Ma sicuramente qualcuno deve averlo già fatto e aver salvato il codice da qualche parte?

4
@tmo Rsu questa macchina impiega 18 secondi per ottenere 1000 realizzazioni della distribuzione di permutazione nulla del coefficiente di correlazione massimo per una matrice 300 per 100 x:correl <- function(x, k=1) { n <- dim(x)[2] * (dim(x)[2]-1) / 2; v <- cor(x); sort(v[lower.tri(v)])[(n-k+1):n] }; sim <- replicate(1000, correl(apply(x,2,sample)))
whuber

Risposte:


74

Questa è una domanda eccellente, degna di qualcuno che è un chiaro pensatore statistico, perché riconosce un aspetto sottile ma importante dei test multipli.

Esistono metodi standard per regolare i valori p di coefficienti di correlazione multipli (o, equivalentemente, per ampliare i loro intervalli di confidenza), come i metodi Bonferroni e Sidak ( qv ). Tuttavia, questi sono troppo conservativi con grandi matrici di correlazione a causa delle intrinseche relazioni matematiche che devono valere tra i coefficienti di correlazione in generale. (Per alcuni esempi di tali relazioni vedere la domanda recente e il thread che ne consegue .) Uno dei migliori approcci per affrontare questa situazione è condurre un test di permutazione (o ricampionamento). È facile farlo con le correlazioni: in ogni iterazione del test, mescola casualmente l'ordine dei valori di ciascuno dei campi (distruggendo così qualsiasi correlazione inerente) e ricalcola la matrice di correlazione completa. Fallo per diverse migliaia di iterazioni (o più), quindi riassumi le distribuzioni delle voci della matrice di correlazione fornendo, ad esempio, i loro 97,5 e 2,5 percentili: questi servirebbero come intervalli di confidenza bilaterali simmetrici reciproci del 95% sotto il valore null ipotesi di non correlazione. (La prima volta che lo fai con un gran numero di variabili rimarrai stupito di quanto alti possano essere alcuni coefficienti di correlazione anche quando non esiste una correlazione intrinseca.)

Quando si segnalano i risultati, indipendentemente dai calcoli eseguiti, è necessario includere quanto segue:

  • La dimensione della matrice di correlazione ( ovvero quante variabili hai esaminato).

  • Come hai determinato i valori di p o "significatività" di uno qualsiasi dei coefficienti di correlazione ( ad esempio , lasciandoli così come sono, applicato una correzione di Bonferroni, fatto un test di permutazione o altro).

  • Se hai esaminato le misure alternative di correlazione, come la correlazione del rango di Spearman . Se lo hai fatto, indica anche perché hai scelto il metodo su cui stai effettivamente riferendo e utilizzando.


1
Questa è una descrizione abbastanza approfondita dei metodi di aggiustamento del valore p, ma ciò che rimane non detto è il criterio di aggiustamento. Tradizionalmente è stato un tasso di errore familiare. Ma questo è un criterio rigoroso e non è utile quando si osservano migliaia di confronti. In tal caso, il tasso di scoperta falso suggerito per la prima volta da Benjamini è ora comunemente usato.
Michael Chernick,

corr(x1,y1)corr(xn,yn)xiyicorr(xi,yj) ij)? Abbiamo ancora bisogno di una correzione?
Jase,

@Jase Sì. La quantità di correzione dipende dalle interrelazioni tra le variabili. I metodi basati sulla simulazione sono l'unico modo possibile per determinare queste correzioni.
whuber

Wow carino. Questo metodo che hai discusso correggerà anche gli errori standard per i problemi di correlazione seriale ed eteroscedasticità?
Jase,

@Jase Sarebbe difficile interpretare i coefficienti di correlazione in un modello eteroscedastico. Il tuo commento sembra fare riferimento a un modello lineare in un'impostazione di serie temporali, piuttosto che alla stima dei coefficienti di correlazione multivariata.
whuber

10

Dalla tua risposta di follow-up alla domanda di Peter Flom, sembra che potresti essere meglio servito da tecniche che guardano la struttura di livello superiore nella tua matrice di correlazione.

Tecniche come l'analisi dei fattori, la PCA, il ridimensionamento multidimensionale e l'analisi dei cluster delle variabili possono essere utilizzate per raggruppare le variabili in insiemi di variabili relativamente più correlate.

Inoltre, potresti voler pensare teoricamente a quale tipo di struttura dovrebbe essere presente. Quando il tuo numero di variabili è grande e il numero di osservazioni è piccolo, spesso fai meglio affidamento sulle aspettative precedenti.


1
(+1) Un buon consiglio alla luce del commento del PO alla risposta di @Peter Flom.
whuber

7

Questo è un esempio di confronti multipli. C'è una grande letteratura su questo.

Se hai, diciamo, 100 variabili, allora avrai 100 * 99/2 = 4950 correlazioni.

Se i dati sono solo disturbi, ti aspetteresti che 1 su 20 di questi sia significativo a p = .05. Sono 247.5

Prima di andare oltre, però, sarebbe bene poter dire PERCHÉ lo stai facendo. Quali sono queste variabili, perché le stai correlando, qual è la tua idea sostanziale?

Oppure stai solo cercando alte correlazioni?


3
Il motivo per cui volevo farlo in questo modo era avere una mente aperta verso la comprensione dei miei dati, quindi forse in un certo senso sto cercando delle correlazioni, a cui non avevo pensato prima, allo scopo di illuminarmi. Certamente non lo sto facendo per soddisfare il mio capo o qualcosa di abituale. Preferirei non entrare nei dettagli dei dati, poiché desidero una risposta generale a questa domanda, in modo da poterli utilizzare in tutte le situazioni in futuro.
David,

7

Forse potresti fare un'analisi preliminare su un sottoinsieme casuale di dati per formare ipotesi e quindi testare quelle poche ipotesi di interesse usando il resto dei dati. In questo modo non dovresti correggere quasi tutti i test multipli. (Penso...)

Naturalmente, se si utilizza una tale procedura, si ridurrà la dimensione del set di dati utilizzato per l'analisi finale e quindi si ridurrà la potenza per trovare effetti reali. Tuttavia, le correzioni per confronti multipli riducono anche la potenza e quindi non sono sicuro che perderesti necessariamente nulla.


5
(+1) Questa è una grande idea in generale. Per le matrici di correlazione di grandi dimensioni, tuttavia, ci sono così tante statistiche e così tante di esse possono essere contemporaneamente spuramente grandi che di solito paga aggiustare. Altrimenti si finisce per inseguire un gran numero di correlazioni fuorvianti "significative" che scompaiono nei dati di controllo. (Esegui una simulazione con, diciamo, alcune centinaia di disegni da 50 variate normali non correlate. È una
rivelazione
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.