Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


A breve mini webinar su YouTube , ad accesso libero. Info - email
r:comandi:v_di_cramer

V di Cramer

«numero indice utilizzato per stabilire il grado di connessione tra due caratteri statistici qualitativi, introdotto da C.H. Cramér per normalizzare l’indice chi-quadrato χ2 in modo che si ottenga 0 nel caso di indipendenza assoluta e 1 nel caso di dipendenza massima.» Enciclopedia della matematica Treccani.

Formula

La sua formula, infatti è:

$$v = \sqrt{\frac{\chi^2}{min(h-1, n-1)N}}$$

dove $min(h-1, n-1)N = max(\chi^2)$

Funzione

Nella distribuzione standard di R, non esiste una funzione per calcolarlo. E' possibile utilizzare la funzione `assocstats` del pacchetto vcd, oppure scaricare o copiare questo script:

vcramer.R
vcramer <- function (x, y = NULL) 
{
  if(!is.null(y)) {
  tab <- table(x, y)
  } else tab = as.matrix(x)
 
  n <- (min(nrow(tab), ncol(tab))-1) * margin.table(tab)
  chiq <- as.numeric(chisq.test(tab, correct = FALSE)$statistic)
  p <- chisq.test(tab, correct = FALSE)$p.value
  v = sqrt(chiq / n)
  res <- c("chi.sq" = chiq, "p" = p, "v di Cramer" = v)
  res
}

Esempi

Con due variabili:

vcramer(SLID$sex, SLID$language)
 
##      chi-sq           p v di Cramer 
## 0.244216202 0.885052688 0.005782383 

Con una tabella:

tab <- table(SLID$sex, SLID$language)
vcramer(tab)

Per arrotondare il risultato:

round(vcramer(tab), 5)
 
# oppure
vcramer(tab) %>% round(5)
 
##    chi-sq           p v di Cramer 
##   0.24422     0.88505     0.00578 

Per avere solo il valore di v di Cramer:

vcramer(tab)[3]
 
# oppure
vcramer(tab)["v di Cramer"]
 
## v di Cramer 
## 0.005782383

Per indicazioni su come utilizzare lo script, vedi Scrivere le proprie funzioni

Argomenti

x, y due variabili categoriali
r/comandi/v_di_cramer.txt · Ultima modifica: 14/04/2019 17:47 da admin