Come ottenere la correlazione tra due variabili categoriali e una variabile categoriale e una variabile continua?


63

Sto costruendo un modello di regressione e devo calcolare il seguito per verificare le correlazioni

  1. Correlazione tra 2 variabili categoriali multilivello
  2. Correlazione tra una variabile categoriale multilivello e una variabile continua
  3. VIF (fattore di inflazione di varianza) per variabili categoriali multilivello

Credo che sia sbagliato usare il coefficiente di correlazione di Pearson per gli scenari di cui sopra perché Pearson funziona solo per 2 variabili continue.

Si prega di rispondere alle seguenti domande

  1. Quale coefficiente di correlazione funziona meglio per i casi di cui sopra?
  2. Il calcolo VIF funziona solo per dati continui, quindi qual è l'alternativa?
  3. Quali sono i presupposti che devo verificare prima di utilizzare il coefficiente di correlazione che mi suggerisci?
  4. Come implementarli in SAS & R?

4
Direi che CV.SE è un posto migliore per domande su statistiche più teoriche come questa. In caso contrario, direi che la risposta alle tue domande dipende dal contesto. A volte ha senso appiattire più livelli in variabili fittizie, altre volte vale la pena modellare i dati in base alla distribuzione multinomiale, ecc.
ffriend

Le tue variabili categoriali sono ordinate? In caso affermativo, ciò può influenzare il tipo di correlazione che si desidera cercare.
nassimhddd,

devo affrontare lo stesso problema nella mia ricerca. ma non sono riuscito a trovare il metodo corretto per risolvere questo problema. quindi se puoi per favore sii gentile abbastanza da darmi i riferimenti che hai trovato.
user89797,

vuoi dire il valore p è lo stesso del coefficiente di correlazione r?
Ayo Emma

La soluzione sopra con ANOVA per categorico vs. continuo è buona. Piccolo singhiozzo. Più piccolo è il valore p, migliore è "l'adattamento" tra le due variabili. Non il contrario.
myudelson,

Risposte:


73

Due variabili categoriali

È possibile verificare se due variabili categoriali sono indipendenti con il test di indipendenza Chi-Squared.

Questo è un tipico test Chi-Square : se assumiamo che due variabili siano indipendenti, i valori della tabella di contingenza per queste variabili dovrebbero essere distribuiti uniformemente. E poi controlliamo quanto sono lontani dall'uniforme i valori reali.

Esiste anche una V di Crammer che è una misura di correlazione che segue da questo test

Esempio

Supponiamo di avere due variabili

  • genere: maschio e femmina
  • città: Blois and Tours

Abbiamo osservato i seguenti dati:

valori osservati

Il genere e la città sono indipendenti? Eseguiamo un test Chi-Squred. Ipotesi nulla: sono indipendenti, l'ipotesi alternativa è che siano in qualche modo correlati.

Sotto l'ipotesi Null, assumiamo una distribuzione uniforme. Quindi i nostri valori attesi sono i seguenti

valore atteso

Quindi eseguiamo il test chi-quadrato e il valore p risultante qui può essere visto come una misura di correlazione tra queste due variabili.

Per calcolare la V di Crammer troviamo innanzitutto il fattore di normalizzazione chi-quadrato-max che è in genere la dimensione del campione, dividere il chi-quadrato per esso e prendere una radice quadrata

crammer v

R

tbl = matrix(data=c(55, 45, 20, 30), nrow=2, ncol=2, byrow=T)
dimnames(tbl) = list(City=c('B', 'T'), Gender=c('M', 'F'))

chi2 = chisq.test(tbl, correct=F)
c(chi2$statistic, chi2$p.value)

Qui il valore di p è 0,08 - abbastanza piccolo, ma ancora non abbastanza per respingere l'ipotesi di indipendenza. Quindi possiamo dire che la "correlazione" qui è 0,08

Calcoliamo anche V:

sqrt(chi2$statistic / sum(tbl))

E ottieni 0,14 (più piccola v, più bassa è la correlazione)

Prendi in considerazione un altro set di dati

    Gender
City  M  F
   B 51 49
   T 24 26

Per questo, darebbe quanto segue

tbl = matrix(data=c(51, 49, 24, 26), nrow=2, ncol=2, byrow=T)
dimnames(tbl) = list(City=c('B', 'T'), Gender=c('M', 'F'))

chi2 = chisq.test(tbl, correct=F)
c(chi2$statistic, chi2$p.value)

sqrt(chi2$statistic / sum(tbl))

Il valore p è 0,72 che è molto più vicino a 1 e v è 0,03 - molto vicino a 0

Variabili categoriche vs numeriche

Per questo tipo di solito eseguiamo test ANOVA a una via : calcoliamo la varianza all'interno del gruppo e la varianza all'interno del gruppo e quindi li confrontiamo.

Esempio

Vogliamo studiare la relazione tra il grasso assorbito dalle ciambelle rispetto al tipo di grasso usato per produrre le ciambelle (l'esempio è preso da qui )

ciambelle

C'è qualche dipendenza tra le variabili? Per questo conduciamo il test ANOVA e vediamo che il valore p è solo 0,007 - non c'è correlazione tra queste variabili.

R

t1 = c(164, 172, 168, 177, 156, 195)
t2 = c(178, 191, 197, 182, 185, 177)
t3 = c(175, 193, 178, 171, 163, 176)
t4 = c(155, 166, 149, 164, 170, 168)

val = c(t1, t2, t3, t4)
fac = gl(n=4, k=6, labels=c('type1', 'type2', 'type3', 'type4'))

aov1 = aov(val ~ fac)
summary(aov1)

L'output è

            Df Sum Sq Mean Sq F value  Pr(>F)   
fac          3   1636   545.5   5.406 0.00688 **
Residuals   20   2018   100.9                   
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Quindi possiamo prendere anche qui il valore p come misura della correlazione.

Riferimenti


1
Grazie Alexey per i dettagli. Sulla base di ulteriori ricerche che ho trovato sulla correlazione poliserica e policlorica. In che modo il tuo approccio è migliore di questi? Spiega
GeorgeOfTheRF il

1
Non sono a conoscenza di queste cose, scusa.
Alexey Grigorev,

Risposta di Fasntastic di @Alexey. Ho letto le correlazioni polychoric / polyseries online dopo aver letto il tuo commento. Sono tecniche per stimare la correlazione tra due variabili latenti, da due variabili osservate. Non penso che sia quello che hai chiesto, e non è paragonabile alla risposta di Alexey.
Karthik

1
Il tuo primo esempio NON riguarda categorico vs categorico, piuttosto è categorico vs numerico, infatti stai guardando la città contro il numero di maschi (femmine, rispettivamente) che è numerico. Categoria vs categoria sarebbe, diciamo, città vs colore degli occhi o delle forme o qualsiasi altra cosa, ma non sarebbe affatto il numero di rappresentanti del genere.
gented

1
@AlexeyGrigorev Se i nostri dati non vengono normalmente distribuiti, devono kruskal-wallicessere utilizzati al posto di one-way anova? Grazie in anticipo.
ebrahimi,
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.