Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


r:test_statistici:v_di_cramer

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
r:test_statistici:v_di_cramer [04/04/2025 16:39] – eliminata - modifica esterna (Data sconosciuta) r:test_statistici:v_di_cramer [11/08/2025 14:40] (versione attuale) Agnese Vardanega
Linea 1: Linea 1:
 +{{htmlmetatags>
 +metatag-keywords = (r, rstats, analisi dei dati, data analysis, ricerca sociale, funzioni, analisi bivariata, indici di associazione, v di cramer) 
 +metatag-description = (Indice di connessione per due variabili categoriali, basato sulla normalizzazione del valore del chi quadrato; formula e funzione per calcolarlo)
 +}}
 +
 +====== 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.» [[http://www.treccani.it/enciclopedia/indice-di-contingenza-di-cramer_%28Enciclopedia-della-Matematica%29/|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 [[https://www.rdocumentation.org/packages/vcd/topics/assocstats|funzione `assocstats` del pacchetto vcd]], oppure scaricare o copiare questo script:
 +
 +<code rsplus 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
 +}
 +
 +</code>
 +
 +===== Esempi =====
 +
 +
 +Con due variabili:
 +
 +<code rsplus>
 +vcramer(SLID$sex, SLID$language)
 +
 +##      chi-sq           p v di Cramer 
 +## 0.244216202 0.885052688 0.005782383 
 +</code>
 +
 +Con una tabella:
 +
 +<code rsplus>
 +tab <- table(SLID$sex, SLID$language)
 +vcramer(tab)
 +</code>
 +
 +Per arrotondare il risultato:
 +
 +<code rsplus>
 +round(vcramer(tab), 5)
 +
 +# oppure
 +vcramer(tab) %>% round(5)
 +
 +##    chi-sq           p v di Cramer 
 +##   0.24422     0.88505     0.00578 
 +</code>
 +
 +Per avere solo il valore di v di Cramer:
 +
 +<code rsplus>
 +vcramer(tab)[3]
 +
 +# oppure
 +vcramer(tab)["v di Cramer"]
 +
 +## v di Cramer 
 +## 0.005782383
 +</code>
 +
 +Per indicazioni su come utilizzare lo script, vedi [[scrivere_le_funzioni]]
 +
 +==== Argomenti ====
 +
 +| x, y | due variabili categoriali |
 +
 +
 +
 +
 +
 +
 +
 +
 +{{tag>Comandi Analisi_bivariata Funzioni}}
 +
 +
 +
  

Domande? Scrivimi

su Telegram per email