Correlazione di Pearson di insiemi di dati con possibilmente zero deviazione standard?


12

Sto riscontrando un problema nel calcolo del coefficiente di correlazione pearson dei set di dati con una deviazione standard eventualmente zero (ovvero tutti i dati hanno lo stesso valore).

Supponiamo che io abbia i seguenti due set di dati:

float x[] = {2, 2, 2, 3, 2};
float y[] = {2, 2, 2, 2, 2};

Il coefficiente di correlazione "r" verrebbe calcolato utilizzando la seguente equazione:

float r = covariance(x, y) / (std_dev(x) * std_dev(y));

Tuttavia, poiché tutti i dati nel set di dati "y" hanno lo stesso valore, la deviazione standard std_dev (y) sarebbe zero e "r" sarebbe indefinito.

c'è qualche soluzione per questo problema? O dovrei usare altri metodi per misurare la relazione dei dati in questo caso?


Non esiste una "relazione dati" in questo esempio perché y non varia. Assegnare qualsiasi valore numerico a r sarebbe un errore.
whuber

1
@whuber - è vero che la non è definita, ma non necessariamente che la "vera" correlazione sconosciuta non può essere stimata. Devo solo usare qualcosa di diverso per stimarlo. ρrρ
probabilityislogic

@probabilità Presumi che questo sia un problema di stima e non semplicemente di caratterizzazione. Ma accettandolo, quale stimatore proporresti nell'esempio? Nessuna risposta può essere universalmente corretta perché dipende da come verrà utilizzato lo stimatore (una funzione di perdita, in effetti). In molte applicazioni, come la PCA, sembra probabile che l'utilizzo di qualsiasi procedura che imputa un valore a possa essere peggiore di altre procedure che riconoscono non possono essere identificate. ρρρ
whuber

1
@whuber - stima è una cattiva scelta delle parole per me (avrete notato che non sono il miglior paroliere), quello che volevo dire era che, sebbene non può essere identificato in modo univoco, questo non significa che i dati sono in inutili raccontandoci di . La mia risposta dà una (brutta) dimostrazione di questo da un punto di vista algebrico. ρρρ
probabilityislogic

@Probabilità Sembra che la tua analisi sia contraddittoria: se davvero y è modellato con una distribuzione normale, allora un campione di cinque 2 mostra che questo modello è inappropriato. Alla fine, non ottieni qualcosa per niente: i tuoi risultati dipendono fortemente dalle ipotesi fatte sui priori. I problemi originali nell'identificare sono ancora presenti ma sono stati nascosti da tutti questi presupposti aggiuntivi. Ciò sembra che l'IMHO oscuri solo i problemi piuttosto che chiarirli. ρ
whuber

Risposte:


9

La "teoria del campionamento" ti dirà che non esiste tale stima. Ma puoi ottenerne uno, devi solo essere ragionevole riguardo alle tue informazioni precedenti e fare un lavoro matematico molto più difficile.

Se hai specificato un metodo di stima bayesiano e il posteriore è lo stesso del precedente, allora puoi dire che i dati non dicono nulla sul parametro. Poiché le cose possono diventare "singolari" su di noi, non possiamo usare spazi di parametri infiniti. Suppongo che, poiché usi la correlazione di Pearson, hai una probabilità normale bivariata:

Qi=(xi-μx)2

p(D|μx,μy,σx,σy,ρ)=(σxσy2π(1ρ2))Nexp(iQi2(1ρ2))
dove
Qi=(xiμx)2σx2+(yiμy)2σy22ρ(xiμx)(yiμy)σxσy

Ora per indicare che un set di dati può avere lo stesso valore, scrivi , e quindi otteniamo:yi=y

s2x=1

iQi=N[(yμy)2σy2+sx2+(x¯μx)2σx22ρ(x¯μx)(yμy)σxσy]
dove
sx2=1Ni(xix¯)2

E così la probabilità dipende da quattro numeri, . Quindi vuoi una stima di , quindi devi moltiplicare per un precedente e integrare i parametri di disturbo . Adesso per prepararci all'integrazione, "completiamo il quadrato" sx2,y,x¯,Nρμx,μy,σx,σy

iQi1ρ2=N[(μy[y(x¯μx)ρσyσx])2σy2(1ρ2)+sx2σx2(1ρ2)+(x¯μx)2σx2]

Ora dovremmo sbagliare sul versante della cautela e garantire una probabilità adeguatamente normalizzata. In questo modo non possiamo metterci nei guai. Una di queste opzioni consiste nell'utilizzare un precedente debolmente informativo, che pone delle restrizioni sull'intervallo di ciascuno. Quindi abbiamo per i mezzi con flat precedente e per le deviazioni standard con jeffreys precedente. Questi limiti sono facili da stabilire con un po 'di "buon senso" pensando al problema. Prenderò un precedente non specificato per , e quindi otteniamo (l'uniforme dovrebbe funzionare bene, se non troncare la singolarità a ):Lμ<μx,μy<UμLσ<σx,σy<Uσρ±1

p(ρ,μx,μy,σx,σy)=p(ρ)Aσxσy

Dove . Questo dà un posteriore di:A=2(UμLμ)2[log(Uσ)log(Lσ)]2

p(ρ|D)=p(ρ,μx,μy,σx,σy)p(D|μx,μy,σx,σy,ρ)dμydμxdσxdσy

=p(ρ)A[2π(1ρ2)]N2LσUσLσUσ(σxσy)N1exp(Nsx22σx2(1ρ2))×
LμUμexp(N(x¯μx)22σx2)LμUμexp(N(μy[y(x¯μx)ρσyσx])22σy2(1ρ2))dμydμxdσxdσy

Ora la prima integrazione su può essere fatta modificando le variabili e il primo integrale su diventa:μyz=Nμy[y(x¯μx)ρσyσx]σy1ρ2dz=Nσy1ρ2dμyμy

σy2π(1ρ2)N[Φ(Uμ[y(x¯μx)ρσyσx]σyN1ρ2)Φ(Lμ[y(x¯μx)ρσyσx]σyN1ρ2)]

E da qui puoi vedere che non sono possibili soluzioni analitiche. Tuttavia, vale anche la pena notare che il valore non è stato eliminato dalle equazioni. Ciò significa che i dati e le informazioni precedenti hanno ancora qualcosa da dire sulla vera correlazione. Se i dati non dicessero nulla della correlazione, rimarremmo semplicemente con come unica funzione di in queste equazioni.ρp(ρ)ρ

Mostra anche come questo passaggio al limite di limiti infiniti per "butti via" alcune delle informazioni su , che sono contenute nella complicata normale funzione CDF . Ora, se hai molti dati, quindi passare al limite va bene, non perdi molto, ma se hai informazioni molto scarse, come nel tuo caso - è importante mantenere ogni scarto che hai. Significa brutti calcoli matematici, ma questo esempio non è troppo difficile da fare numericamente. Quindi possiamo valutare la probabilità integrata per a valori di abbastanza facilmente. Sostituisci semplicemente gli integrali con le somme su intervalli abbastanza piccoli, in modo da avere una tripla sommaμyρΦ(.)ρ0.99,0.98,,0.98,0.99


@probabilityislogic: Wow. Semplicemente wow. Dopo aver visto alcune delle tue risposte, mi chiedo davvero: cosa dovrebbe fare un doofus come me per raggiungere uno stato mentale bayesiano così flessibile?
Steffen,

1
@steffen - lol. Non è così difficile, devi solo esercitarti. E ricorda sempre sempre che il prodotto e la somma delle regole di probabilità sono le uniche regole di cui avrai mai bisogno . Estrarranno qualunque informazione ci sia, che tu la veda o no. Quindi applichi le regole di prodotto e somma, quindi fai solo i calcoli. Questo è tutto ciò che ho fatto qui.
probabilityislogic

@steffen - e l'altra regola - più una matematica che una statistica - non passare a un limite infinito troppo presto nei tuoi calcoli, i tuoi risultati potrebbero diventare arbitrari o piccoli dettagli potrebbero essere sbalzati fuori. I modelli di errore di misura ne sono un perfetto esempio (come questa domanda).
probabilityislogic

@probabilityislogic: Grazie, lo terrò a mente ... non appena avrò finito di lavorare con la mia copia "Analisi bayesiana";).
Steffen,

@probabilityislogic: se potessi assecondare uno statistico / ricercatore non matematico ... sarebbe possibile riassumere o tradurre la tua risposta a un gruppo di dentisti o presidi delle scuole superiori o studenti di statistica introduttiva?
rolando2,

6

Concordo con sesqu sul fatto che la correlazione non è definita in questo caso. A seconda del tipo di applicazione, ad esempio, è possibile calcolare la somiglianza di Gower tra i due vettori, ovvero: dove rappresenta il kronecker-delta , applicato come funzione su . δv1,v2gower(v1,v2)=i=1nδ(v1i,v2i)nδv1,v2

Ad esempio, se tutti i valori sono uguali, gower (.,.) = 1. Se d'altra parte differiscono solo in una dimensione, gower (.,.) = 0.9. Se differiscono in ogni dimensione, gower (.,.) = 0 e così via.

Naturalmente questa non è una misura per la correlazione, ma consente di calcolare quanto è vicino il vettore con s> 0 a quello con s = 0. Naturalmente puoi applicare anche altre metriche, se servono meglio al tuo scopo.


+1 Questa è un'idea creativa. Sembra che la "Somiglianza di Gower" sia una distanza di Hamming in scala .
whuber

@whuber: In effetti lo è!
Steffen,

0

La correlazione non è definita in quel caso. Se è necessario definirlo, lo definirei come 0, ma considererei invece una differenza assoluta media semplice.


0

Questa domanda viene dai programmatori, quindi suggerirei di collegare zero. Non ci sono prove di una correlazione e l'ipotesi nulla sarebbe zero (nessuna correlazione). Potrebbero esserci altre conoscenze di contesto che fornirebbero una correlazione "tipica" in un contesto, ma il codice potrebbe essere riutilizzato in un altro contesto.


2
Non ci sono prove di mancanza di correlazione, quindi perché non collegare 1? O -1? O qualcosa nel mezzo? Tutti portano a un codice riutilizzabile!
whuber

@whuber - si inserisce zero perché i dati sono "meno vincolati" quando sono indipendenti - ecco perché maxent distribuzioni sono indipendenti a meno che non si specifichino esplicitamente correlazioni nei vincoli. L'indipendenza può essere vista come un presupposto conservativo quando non si conoscono tali correlazioni - in effetti si fa la media su tutte le possibili correlazioni .
probabilityislogic

1
@prob Mi chiedo perché abbia senso come una procedura generica fare una media su tutte le correlazioni. In effetti questa procedura sostituisce la risposta definita e forse del tutto errata "zero!" per la risposta corretta "i dati non ci dicono". Questa differenza può essere importante per il processo decisionale.
whuber

Solo perché la domanda potrebbe essere di un programmatore, non significa che dovresti convertire un valore indefinito a zero. Zero indica qualcosa di specifico in un calcolo di correlazione. Lancia un'eccezione. Lascia che il chiamante decida cosa dovrebbe succedere. La tua funzione dovrebbe calcolare una correlazione, non decidere cosa fare se non è possibile calcolarla.
Jared Becksfort,
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.