Correlazioni con variabili categoriche non ordinate


123

Ho un dataframe con molte osservazioni e molte variabili. Alcuni sono categorici (non ordinati) e altri sono numerici.

Sto cercando associazioni tra queste variabili. Sono stato in grado di calcolare la correlazione per variabili numeriche (correlazione di Spearman) ma:

  • Non so come misurare la correlazione tra variabili categoriche non ordinate.
  • Non so come misurare la correlazione tra variabili categoriche non ordinate e variabili numeriche.

Qualcuno sa come si potrebbe fare? In tal caso, ci sono funzioni R che implementano questi metodi?


Risposte:


113

Dipende dal senso di una correlazione che desideri. Quando si esegue la prototipica correlazione del momento del prodotto di Pearson, si ottiene una misura della forza dell'associazione e si ottiene un test del significato di tale associazione. Più in genere, tuttavia, il test di significatività e la misura della dimensione dell'effetto differiscono.

Test di significatività:

Dimensione dell'effetto (forza dell'associazione):


5
Una spiegazione molto approfondita del caso continuo vs. nominale può essere trovata qui: Correlazione tra una variabile nominale (IV) e una continua (DV) .
gung

3
Nel caso binario vs intervallo c'è la correlazione punto-biseriale .
Glen_b,

Quale sarebbe un'alternativa migliore al test chi-quadrato per campioni di grandi dimensioni?
Waldir Leoncio,

2
@WaldirLeoncio, sì ma se il valore null è vero, sarà solo il delle volte. Questo è il modo in cui dovrebbe funzionare. Se vuoi conoscere l'entità dell'effetto e un test del nulla, potresti voler calcolare la V di Cramer insieme al test chi-quadrato. < .05 5 %p<.055%
gung

1
Come ha sottolineato @gung, la correlazione tra una variabile nominale (IV) e una continua (DV) è un collegamento eccellente per come si può fare la correlazione per variabili miste. Hmisc::rcorrlo fa magnificamente e possiamo controllarlo (per un frame di dati con variabili miste) come segue:as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$P) as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$r)
KarthikS

15

Ho visto il seguente cheatheet collegato prima:

https://stats.idre.ucla.edu/other/mult-pkg/whatstat/

Potrebbe esserti utile. Ha anche collegamenti a specifiche librerie R.


3
Il problema con questo cheatheet riguarda solo le variabili categoriali / ordinali / di intervallo. Quello che sto cercando è un metodo che mi permetta di usare variabili indipendenti sia numeriche che categoriche.
Clément F,

6

Se si desidera una matrice di correlazione di variabili categoriali, è possibile utilizzare la seguente funzione wrapper (che richiede il pacchetto 'vcd'):

catcorrm <- function(vars, dat) sapply(vars, function(y) sapply(vars, function(x) assocstats(table(dat[,x], dat[,y]))$cramer))

Dove:

vars è un vettore stringa di variabili categoriali che si desidera correlare

dat è un data.frame contenente le variabili

Il risultato è una matrice di V di Cramer.


6

Dipende da cosa vuoi ottenere. Sia la variabile numerica continua e la variabile categoriale (non ordinata). Quindi un possibile approccio è quello di assegnare punteggi numerici a ciascuno dei possibili valori di , . Un possibile criterio è massimizzare la correlazione tra la e i punteggiK t i K i = 1 , , p X t i R 2XKtiKi=1,,pXti. Con solo una variabile continua e una categoriale, questo potrebbe non essere molto utile, poiché la massima correlazione sarà sempre una (per mostrare che, e trovare alcuni di questi punteggi, è un esercizio nell'uso dei moltiplicatori di Lagrange! Con più variabili, proviamo a trovare punteggi di compromesso per le variabili categoriali, magari cercando di massimizzare la correlazione multipla Quindi le singole correlazioni non saranno più (tranne casi molto speciali!) uguali. R2

Tale analisi può essere vista come una generalizzazione dell'analisi della corrispondenza multipla ed è nota sotto molti nomi, come l'analisi della correlazione canonica, l'analisi dell'omogeneità e molte altre. Un'implementazione in R è nel homalspacchetto (su CRAN). cercare su google alcuni di questi nomi fornirà moltissime informazioni, c'è un libro completo: Albert Gifi, "Analisi multivariata non lineare". In bocca al lupo!


1
(+1) Perché usare i moltiplicatori di Lagrange? Basta usare i valori della variabile continua per assegnare un punteggio a quello categoriale. Questo rivela anche perché la correlazione massima non è necessariamente , che è raggiungibile solo quando ogni categoria è accoppiata con un insieme invariabile di valori della variabile continua. 1
whuber

Modificherò per tenere conto di questo commento.
kjetil b halvorsen,

2

Ho avuto un problema simile e ho provato il Chi-squared-Test come suggerito, ma sono rimasto molto confuso nel valutare i valori P contro l'ipotesi NULL.

Spiegherò come ho interpretato le variabili categoriali. Non sono sicuro di quanto sia rilevante nel tuo caso. Avevo la variabile di risposta Y e due variabili predittive X1 e X2 in cui X2 essendo una variabile categoriale con due livelli diceva 1 e 2. Stavo cercando di adattare un modello lineare

ols = lm(Y ~ X1 + X2, data=mydata)

Ma volevo capire come il diverso livello di X2 si adatta all'equazione di cui sopra. Mi sono imbattuto in una funzione R di ()

by(mydata,X2,function(x) summary(lm(Y~X1,data=x)))

Ciò che fa questo codice è che sta cercando di adattarsi al modello lineare per ogni livello di X2. Questo mi ha dato tutto il valore P e il quadrato R, errore standard residuo che capisco e posso interpretare.

Ancora una volta non sono sicuro se questo è quello che vuoi. In un certo senso ho confrontato diversi valori di X2 nella previsione di Y.


1

Per misurare la forza del collegamento tra due variabili categoriali, suggerirei piuttosto l'uso di una tabulazione incrociata con la statistica chisquare

per misurare la forza del collegamento tra una variabile numerica e una variabile categoriale puoi usare un confronto medio per vedere se cambia significativamente da una categoria all'altra


2
Benvenuto nel sito, @DaSilvaLionel. Si può notare che l'utilizzo del test chi-quadrato con due variabili categoriali è già stato suggerito sopra.
gung
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.