Procedura automatizzata per la selezione di un sottoinsieme di punti dati con la più forte correlazione?


15

Esiste una procedura standard (tale da poterla citare come riferimento) per selezionare il sottoinsieme di punti dati da un pool più grande con la correlazione più forte (lungo solo due dimensioni)?

Ad esempio, supponiamo di avere 100 punti dati. Si desidera un sottoinsieme di 40 punti con la correlazione più forte possibile lungo le dimensioni X e Y.

Mi rendo conto che scrivere codice per farlo sarebbe relativamente semplice, ma mi chiedo se c'è qualche fonte da citare per questo?


3
"Mi rendo conto che scrivere codice per farlo sarebbe relativamente semplice". Ah? E come lo faresti?
user603

3
Suppongo che intendesse qualcosa come "la migliore correlazione del sottoinsieme"; seleziona i sottoinsiemi di ( k = 40 nel suo esempio) punti da N ( N = 100 nel suo esempio) e calcola la stima della correlazione ρ ( X , Y ) (supponendo che intendesse conoscere un sottoinsieme di punti con la migliore correlazione lineare ). Tuttavia, questo processo sembra computazionalmente costoso per N di grandi dimensioni , perché è necessario calcolarekk=40NN=100ρ(X,Y)N volte il coefficiente. (Nk)
Néstor,

1
Se sei disposto a guardare combinazioni lineari delle variabili , le correlazioni canoniche sono ciò che stai cercando. Altrimenti, la selezione della funzione di correlazione potrebbe essere interessante. X
Martedì

Penso che alcuni potrebbero fraintendermi. @ Néstor sembra aver ragione. Ci sono 100 articoli, ognuno con un valore X e un valore Y. Voglio trovare il sottoinsieme di 40 che ha la più forte correlazione possibile (con regressione lineare) tra i valori X e Y. Posso scrivere codice per esplorare l'intero spazio di ricerca, ma cosa vorrei citare per supportare tale metodo? Come si chiama per trovare la correlazione ottimale tra tutti i possibili sottoinsiemi?
Julie,

1
Sei interessato a massimizzare la correlazione o ottenere la linea di regressione più adatta come, ad esempio, misurata dalla varianza residua minima? I due non sono gli stessi quando si scelgono i punti dati.
jbowman,

Risposte:


17

Direi che il tuo metodo rientra nella categoria generale descritta in questo articolo di Wikipedia che ha anche altri riferimenti se hai bisogno di qualcosa di più di una semplice Wikipedia. Si applicherebbero anche alcuni dei collegamenti all'interno di quell'articolo.

Altri termini che potrebbero essere applicati (se si desidera effettuare ulteriori ricerche) includono "Dragaggio dei dati" e "Tortura dei dati fino alla confessione".

Nota che puoi sempre ottenere una correlazione di 1 se scegli solo 2 punti che non hanno valori x o y identici. Alcuni anni fa c'era un articolo sulla rivista Chance che mostrava che quando si ha una variabile xey senza praticamente alcuna correlazione, è possibile trovare un modo per raggruppare le x e fare una media delle y all'interno dei bin per mostrare una tendenza crescente o decrescente ( Chance 2006, Visual Revelations: Trovare ciò che non c'è attraverso lo sfortunato binning dei risultati: l'effetto Mendel, pp. 49-52). Inoltre, con un set di dati completo che mostra una correlazione positiva moderata, è possibile scegliere un sottoinsieme che mostra una correlazione negativa. Alla luce di ciò, anche se hai un motivo legittimo per fare ciò che proponi, stai dando a tutti gli scettici molti argomenti da usare contro qualsiasi conclusione che ti viene in mente.


Qual è il nome dell'articolo di The American Statistician?
assunto il

1
Ho sbagliato a ricordare dove ho visto l'articolo, in realtà era su Chance Magazine piuttosto che su The American Statistician. L'ho corretto sopra e ho incluso l'anno, il titolo e i numeri di pagina in modo che le parti interessate possano trovare facilmente le copie.
Greg Snow,

4

L'algoritmo RANSAC suona come quello che vuoi. Fondamentalmente, presume che i tuoi dati siano costituiti da un mix di inlier e outlier, e cerca di identificare gli inlier campionando ripetutamente sottoinsiemi di dati, adattando un modello ad esso, quindi cercando di adattare ogni altro punto dati al modello. Ecco l'articolo di Wikipedia al riguardo .

Nel tuo caso, puoi semplicemente continuare a ripetere l'algoritmo salvando l'attuale modello migliore che si adatta ad almeno 40 punti, quindi non ti garantirà la migliore correlazione assoluta, ma dovrebbe avvicinarsi.


1

Ho difficoltà a immaginare un contesto in cui questa sarebbe una buona pratica, ma supponiamo per un momento che tu abbia davvero una buona ragione per farlo.

Un algoritmo di forza bruta potrebbe essere qualcosa del genere:

  1. Calcolate tutti i possibili sottocampioni di n del campione complessivo di N. La maggior parte dei pacchetti statistici ha funzioni per il calcolo di combinazioni senza sostituzioni che lo faranno per voi.

  2. Stimate la correlazione tra xey per ciascuno dei sottocampioni e selezionate il massimo da quel set.

Ho appena visto il commento del poster originale su un riferimento per questa procedura. Non sono sicuro che qualcuno abbia un nome specifico per questa procedura, dopo tutto, stai semplicemente generando una distribuzione empirica di tutte le possibili correlazioni nel tuo set di dati e selezionando il massimo. Approcci simili sono usati quando si esegue il bootstraping, ma in quel caso sei interessato alla variabilità empirica, NON li usi per scegliere un sottocampione specifico associato al max.


2
1032N=100n=40

Non c'è bisogno di essere snarky a riguardo :-p. Punto valido.
David,

Scusate ... mi piacciono quelle cifre, però, perché ci danno molto spazio per un algoritmo migliorato :-).
whuber
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.