sentido original de correlación (Pearson): variables intervalares/razón, también se extiende a ordinal (Spearman)
dadas las ventajas de este coeficiente, se puede extender su uso a variables con nivel de medición nominal con algunas consideraciones
veamos un ejemplo:
Tenemos las siguientes variables:
x <- c(0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0)y <- c(12, 14, 17, 17, 11, 22, 23, 11, 19, 8, 12)
Donde x sería una variable nominal dicotómica con valores 1 y 0, mientras que y es una variable contínua (intervalar)
Se utilizar la función cor.test()
para calcular la correlación punto biserial entre las dos variables
cor.test(x, y)
Se utilizar la función cor.test()
para calcular la correlación punto biserial entre las dos variables
cor.test(x, y)
Pearson's product-moment correlationdata: x and yt = 0.67064, df = 9, p-value = 0.5193alternative hypothesis: true correlation is not equal to 095 percent confidence interval: -0.4391885 0.7233704sample estimates: cor 0.2181635
(Se puede también usar cor
, pero cor.test
entrega más información)
la correlación punto biserial es 0.218, indicando una relación positiva moderada entre ambas variables
el valor p correspondiente es 0.5193, que no permite rechazar la hipótesis nula con un 95% de confianza ya que el valor p no es menor a 0.05
la correlación punto biserial es 0.218, indicando una relación positiva moderada entre ambas variables
el valor p correspondiente es 0.5193, que no permite rechazar la hipótesis nula con un 95% de confianza ya que el valor p no es menor a 0.05
como complemento se entrega el intervalo de confianza [-0.4391885 0.7233704], que como vemos contiene el 0, y por lo tanto con un 95% de confianza no podemos decir que las correlación es distinta de 0
no es más que una correlación de Pearson entre una variable nominal y una intervalar
para diferenciarla de Pearson tradicional se le denomina correlación punto biserial
hay que tener precauciones con su interpretación
pensemos que x=1 es hombre,x=2 es mujer, y que y=nivel educativo, cómo se interpreta la correlación?
pensemos que x=1 es hombre,x=2 es mujer, y que y=nivel educativo, cómo se interpreta la correlación?
Por lo tanto, esta correlación puede tener limitaciones en la interpretación de su sentido, sirve principalmente para inferencia y tamaño.
t.test(y ~ x, var.equal=TRUE)
Two Sample t-testdata: y by xt = -0.67064, df = 9, p-value = 0.5193alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 095 percent confidence interval: -8.891987 4.825320sample estimates:mean in group 0 mean in group 1 14.16667 16.20000
es equivalente a un test de diferencia de medias en términos de inferencia
en términos de valor es igual que una correlación de Pearson varía entre -1 y 1
el apellido de (punto) biserial se utiliza solo para dar cuenta que el nivel de medición de una de las variables es nominal, y se requieren consideraciones especiales en su interpretación
también se puede denominar biserial a una correlación entre una variable intervalar/razón y una ordinal
Ej: 0=baja educación, 1=alta educación
Es una correlación entre dos variables dicotómicas (=categórica de dos niveles)
Se calcula en base a la frecuencias de cada combinación de valores (00,01,10,11).
Supone que ambas variables son continuas y normalmente distribuidas antes de la categorización.
Nominal Dicotómica | Nominal Politómica | Ordinal | Intervalar/Razón | |
---|---|---|---|---|
Nominal Dicotómica | Tetracórica | Biserial | Punto Biserial | |
Nominal Politómica | ||||
Ordinal | Biserial | Spearman, Kendall | Pearson/biserial, Policórica | |
Intervalar/Razón | Punto Biserial | Pearson/biserial, Policórica | Pearson |
Tipo | Características | Propiedad de números | Ejemplo |
---|---|---|---|
Nominal | Uso de números en lugar de palabras | Identidad | Nacionalidad |
Ordinal | Números se usan para ordenar series | + ranking | Nivel educacional |
Intervalar | Intervalos iguales entre números | + igualdad | Temperatura |
Razón | Cero real | + aditividad | Distancia |
Nominal: Números empleados como etiquetas (ej. sexo, raza)
Ordinales: Distintas categorías puede sen ordenados en serie. Posición, no distancia. (ej. cargos en una empresa)
Intervalares: Escalas de unidades iguales. Diferencia entre dos número consecuntivos refleja diferencia empírica. (ej. Horas del día)
Razón: caracterizados por la presencia de un cero absoluto. (ej. frecuencias de eventos)
Datos categóricos:
Datos continuos:
Son tablas que presentan la distribución conjunta de dos o más variables
Ej. Moore cap 9: recaidas en consumo de cocaina luego de tratar adicción con distintos tratamientos
Pensemos en la siguiente pregunta de investigación:
¿Existe una asociación entre la percepción de ser discriminado y el nivel educacional?
Ha: el nivel educacional se asocia a la percepción de ser discriminado
H0: no hay asociación entre nivel educacional y percepción de ser discriminado
En CASEN existe una batería sobre percepción de discriminación:
Generar subset CASEN con educación y percepción de discriminación
pacman::p_load(haven, sjmisc, dplyr)casen2022_chi <- read_dta("/home/juank/Downloads/Base de datos Casen 2022 STATA.dta")summary(casen2022$r9)sjmisc::find_var(data = casen2022_chi,"discriminado")sjmisc::find_var(data = casen2022_chi,"nivel educacional")casen2022_chi <- casen2022_chi %>% select(r9a:r9t, e6a) # seleccionar variablescasen2022_chi <- casen2022_chi %>% rename("educacion"=e6a) #renombrar save(casen2022_chi, file = "slides/data/casen2022_chi.Rdata") #guardar objetorm(list = c('casen2022_chi')) # quitar del environment por tamaño/memoria
Recodificar discriminación
pacman::p_load(sjmisc)load("data/casen2022_chi.Rdata")frq(casen2022_chi$r9t)
r9t. Últ. 12 meses: No ha sido tratado injustamente o discriminado (x) <numeric> # total N=202231 valid N=202231 mean=0.83 sd=0.37Value | Label | N | Raw % | Valid % | Cum. %------------------------------------------------- 0 | No | 33472 | 16.55 | 16.55 | 16.55 1 | Sí | 168759 | 83.45 | 83.45 | 100.00 <NA> | <NA> | 0 | 0.00 | <NA> | <NA>
En la lista CASEN al final hay una item de "no ha sido discriminado" (r9t), que usaremos para nuestro análisis; la renombramos "discrim"
Quienes responden si son quienes no se han sentido discriminados, por lo tanto mejor cambiar las etiquetas para evitar confusiones
casen2022_chi$discrim <- sjlabelled::set_labels(casen2022_chi$r9t, labels=c( "discriminad@"=0, "no discriminad@"=1))
frq(casen2022_chi$discrim)
r9t. Últ. 12 meses: No ha sido tratado injustamente o discriminado (x) <numeric> # total N=202231 valid N=202231 mean=0.83 sd=0.37Value | Label | N | Raw % | Valid % | Cum. %----------------------------------------------------------- 0 | discriminad@ | 33472 | 16.55 | 16.55 | 16.55 1 | no discriminad@ | 168759 | 83.45 | 83.45 | 100.00 <NA> | <NA> | 0 | 0.00 | <NA> | <NA>
Ahora con la variable educación, recodificar universitario=1
casen2022_chi$educ_sup <- rec(casen2022_chi$educacion, rec = "1:12=0;13:15=1",val.labels = c("Menos que universitaria", "Universitaria o más"))frq(casen2022_chi$educ_sup)
e6a. ¿Cuál es el nivel educacional al que asiste o el más alto al cual asistió? (x) <numeric> # total N=202231 valid N=202231 mean=0.16 sd=0.37Value | Label | N | Raw % | Valid % | Cum. %------------------------------------------------------------------- 0 | Menos que universitaria | 168994 | 83.56 | 83.56 | 83.56 1 | Universitaria o más | 33237 | 16.44 | 16.44 | 100.00 <NA> | <NA> | 0 | 0.00 | <NA> | <NA>
Veamos ahora una tabla de frecuencias cruzadas
pacman::p_load(sjPlot)casen2022_chi %>% sjtab(educ_sup, discrim)
e6a. ¿Cuál es el nivel educacional al que asiste o el más alto al cual asistió? |
r9t. Últ. 12 meses: No ha sido tratado injustamente o discriminado |
Total | |
---|---|---|---|
discriminad@ | no discriminad@ | ||
Menos que universitaria |
26996 | 141998 | 168994 |
Universitaria o más | 6476 | 26761 | 33237 |
Total | 33472 | 168759 | 202231 |
χ2=247.461 · df=1 · &phi=0.035 · p=0.000 |
Para mayor claridad generamos porcentajes por columnas de la tabla (discriminación)
casen2022_chi %>% sjtab(educ_sup, discrim, show.col.prc=TRUE)
e6a. ¿Cuál es el nivel educacional al que asiste o el más alto al cual asistió? |
r9t. Últ. 12 meses: No ha sido tratado injustamente o discriminado |
Total | |
---|---|---|---|
discriminad@ | no discriminad@ | ||
Menos que universitaria |
26996 80.7 % |
141998 84.1 % |
168994 83.6 % |
Universitaria o más | 6476 19.3 % |
26761 15.9 % |
33237 16.4 % |
Total | 33472 100 % |
168759 100 % |
202231 100 % |
χ2=247.461 · df=1 · &phi=0.035 · p=0.000 |
Y acá por filas (educación)
casen2022_chi %>% sjtab(educ_sup, discrim, show.row.prc=TRUE)
e6a. ¿Cuál es el nivel educacional al que asiste o el más alto al cual asistió? |
r9t. Últ. 12 meses: No ha sido tratado injustamente o discriminado |
Total | |
---|---|---|---|
discriminad@ | no discriminad@ | ||
Menos que universitaria |
26996 16 % |
141998 84 % |
168994 100 % |
Universitaria o más | 6476 19.5 % |
26761 80.5 % |
33237 100 % |
Total | 33472 16.6 % |
168759 83.4 % |
202231 100 % |
χ2=247.461 · df=1 · &phi=0.035 · p=0.000 |
Con ambos porcentajes:
casen2022_chi %>% sjtab(educ_sup, discrim, show.row.prc=TRUE, show.col.prc=TRUE )
e6a. ¿Cuál es el nivel educacional al que asiste o el más alto al cual asistió? |
r9t. Últ. 12 meses: No ha sido tratado injustamente o discriminado |
Total | |
---|---|---|---|
discriminad@ | no discriminad@ | ||
Menos que universitaria |
26996 16 % 80.7 % |
141998 84 % 84.1 % |
168994 100 % 83.6 % |
Universitaria o más | 6476 19.5 % 19.3 % |
26761 80.5 % 15.9 % |
33237 100 % 16.4 % |
Total | 33472 16.6 % 100 % |
168759 83.4 % 100 % |
202231 100 % 100 % |
χ2=247.461 · df=1 · &phi=0.035 · p=0.000 |
e6a. ¿Cuál es el nivel educacional al que asiste o el más alto al cual asistió? |
r9t. Últ. 12 meses: No ha sido tratado injustamente o discriminado |
Total | |
---|---|---|---|
discriminad@ | no discriminad@ | ||
Menos que universitaria |
26996 16 % 80.7 % |
141998 84 % 84.1 % |
168994 100 % 83.6 % |
Universitaria o más | 6476 19.5 % 19.3 % |
26761 80.5 % 15.9 % |
33237 100 % 16.4 % |
Total | 33472 16.6 % 100 % |
168759 83.4 % 100 % |
202231 100 % 100 % |
χ2=247.461 · df=1 · &phi=0.035 · p=0.000 |
Para simplificar, pensemos en una muestra más pequeña de 100 casos y además balanceada.
discriminad@ | no discriminad@ | Total | |
---|---|---|---|
Menos que universitaria | 50 | ||
Universitaria o más | 50 | ||
Total | 50 | 50 | 100 |
discriminad@ | no discriminad@ | Total | |
---|---|---|---|
Menos que universitaria | 50 | 0 | 50 |
Universitaria o más | 0 | 50 | 50 |
Total | 50 | 50 | 100 |
Esta tabla estaría expresando lo esperado por nuestra hipótesis (alternativa): existen diferencias al cruzar estas variables, y por lo tanto hay asociación entre educación y percepción de discriminación
Este es el otro extremo: todas las celdas tienen la misma cantidad de casos
discriminad@ | no discriminad@ | Total | |
---|---|---|---|
Menos que universitaria | 25 | 25 | 50 |
Universitaria o más | 25 | 25 | 50 |
Total | 50 | 50 | 100 |
Esta tabla expresa la hipótesis nula H0: no existe asociación entre variables
(chi cuadrado)
La prueba de χ2 (chi cuadrado) se utiliza para inferencia sobre asociación de variables categóricas en una tabla de contingencia
χ2 se basa en un test de diferencia, donde se compara nuestra tabla de contingencia y una tabla donde no existe asociación entre variables, que representa la hipótesis nula H0
La prueba de χ2 (chi cuadrado) se utiliza para inferencia sobre asociación de variables categóricas en una tabla de contingencia
χ2 se basa en un test de diferencia, donde se compara nuestra tabla de contingencia y una tabla donde no existe asociación entre variables, que representa la hipótesis nula H0
La lógica detrás es que si nuestra tabla es significativamente distinta de una tabla sin asociación, entonces podemos rechazar la hipóteis nula
Generación de tabla de contingencia observada en base a nuestros datos
Generación de tabla de contingencia esperada al azar en base a nuestros datos
Generación de tabla de contingencia observada en base a nuestros datos
Generación de tabla de contingencia esperada al azar en base a nuestros datos
Establecer la diferencia entre lo observado y lo esperado al azar
Generación de tabla de contingencia observada en base a nuestros datos
Generación de tabla de contingencia esperada al azar en base a nuestros datos
Establecer la diferencia entre lo observado y lo esperado al azar
Establecer si esta diferencia es estadísticamente significativa
discriminad@ | no discriminad@ | Total | |
---|---|---|---|
Menos que universitaria | a | b | (a+b) |
Universitaria o más | c | d | (c+d) |
Total | (a+c) | (b+d) | N |
Nos enfocamos en la celda a, su frecuencia esperada es:
En base a los datos de nuestro ejemplo de 100 casos:
fea=(50)(50)100=2500100=25
Por lo tanto, la frecuencia esperada al azar para la celda a=25
La lógica de la prueba de Chi 2 es la comparación de las frecuencias observadas (fo) en nuestra tabla y de las frecuencias esperadas (fe) por azar
Si nuestra tabla (fo) se diferencia significativamente del azar (fe), entonces podemos rechazar la hipótesis nula y tenemos evidencia de asociación entre variables
fea=(a+b)(a+c)N feb=(a+b)(b+d)N fec=(a+c)(c+d)N fed=(b+d)(c+d)N
discriminad@ | no discriminad@ | Total | |
---|---|---|---|
Menos que universitaria | a | b | (a+b) |
Universitaria o más | c | d | (c+d) |
Total | (a+c) | (b+d) | N |
El valor de Chi2 será mayor en la medida que lo observado sea distinto de los esperado al azar
Cálculo de frecuencias esperadas para ejemplo con CASEN
e6a. ¿Cuál es el nivel educacional al que asiste o el más alto al cual asistió? |
r9t. Últ. 12 meses: No ha sido tratado injustamente o discriminado |
Total | |
---|---|---|---|
discriminad@ | no discriminad@ | ||
Menos que universitaria |
26996 | 141998 | 168994 |
Universitaria o más | 6476 | 26761 | 33237 |
Total | 33472 | 168759 | 202231 |
χ2=247.461 · df=1 · &phi=0.035 · p=0.000 |
fea=168994∗33472202231=27970.8 feb=168994∗168759202231=141023.2 fec=33472∗33237202231=5501.2 fed=168759∗33237202231=27735.8
En R también es posible obtener las frecuencias esperadas por celda con la función CrossTable
de la librería gmodels
gmodels::CrossTable(casen2022_chi$educ_sup, casen2022_chi$discrim, expected=TRUE, prop.r = FALSE, prop.c=FALSE, prop.chisq = FALSE, prop.t = FALSE)
Cell Contents|-------------------------|| N || Expected N ||-------------------------|Total Observations in Table: 202231 | casen2022_chi$discrim casen2022_chi$educ_sup | 0 | 1 | Row Total | -----------------------|-----------|-----------|-----------| 0 | 26996 | 141998 | 168994 | | 27970.821 | 141023.179 | | -----------------------|-----------|-----------|-----------| 1 | 6476 | 26761 | 33237 | | 5501.179 | 27735.821 | | -----------------------|-----------|-----------|-----------| Column Total | 33472 | 168759 | 202231 | -----------------------|-----------|-----------|-----------|Statistics for All Table FactorsPearson's Chi-squared test ------------------------------------------------------------Chi^2 = 247.7146 d.f. = 1 p = 8.178928e-56 Pearson's Chi-squared test with Yates' continuity correction ------------------------------------------------------------Chi^2 = 247.4605 d.f. = 1 p = 9.291443e-56
χ2=∑(fo−fe)2fe=(26996−27970.8)227970.8+(141998−141023.2)2141023.2+(6476−5501.2)25501.2+(26761−27735.8)227735.8=(974.8)227970.8+(974,8)2141023.2+(−974.8)25501.2+(−974.8)227735.8=950235,0427970.8+950235,04141023.2+950235,045501.2+950235,0427735.8=33.97+6.74+172.7+34.3
Tal como en los pasos de la inferencia para pruebas anteriores (como Z y t), para realizar la prueba de hipótesis comparamos el valor observado de χ2 con un valor crítico, que proviene de la distribución χ2
además de especificar la probabilidad de error α, se requiere especificar los grados de libertad
Como en la distribución t, χ2 también se ajusta por los grados de libertad, que se obtienen sumando el numero de niveles/categorías -1 de cada variable
En nuestro ejemplo de tabla de 2x2 (dos categorías de cada variable), los grados de libertad equivalen a:
gl=(2−1)∗(2−1)=1∗1=1
χ2 estimado: 247.46
χ2 crítico para un α=0.05 y 1 grado de libertad: 3.84
En el ejemplo: valor estimado χ2 > valor crítico χ2
Por lo tanto se rechaza H0, podemos decir que hay evidencia de asociación entre percepción de discriminación y nivel educacional con un 95% de confianza
La función es chisq.test()
chisq.test(table(casen2022_chi$educ_sup, casen2022_chi$discrim))
Pearson's Chi-squared test with Yates' continuity correctiondata: table(casen2022_chi$educ_sup, casen2022_chi$discrim)X-squared = 247.46, df = 1, p-value < 2.2e-16
De todas maneras, aparece directamente en varios outputs de tablas de contingencia en R, como la generada antes con sjtab
, de librería sjPlot
:
casen2022_chi %>% sjtab(educ_sup, discrim, show.row.prc=TRUE)
e6a. ¿Cuál es el nivel educacional al que asiste o el más alto al cual asistió? |
r9t. Últ. 12 meses: No ha sido tratado injustamente o discriminado |
Total | |
---|---|---|---|
discriminad@ | no discriminad@ | ||
Menos que universitaria |
26996 16 % |
141998 84 % |
168994 100 % |
Universitaria o más | 6476 19.5 % |
26761 80.5 % |
33237 100 % |
Total | 33472 16.6 % |
168759 83.4 % |
202231 100 % |
χ2=247.461 · df=1 · &phi=0.035 · p=0.000 |
Establecer las hipótesis
Calcular frecuencias esperadas
Estimar estadístico de prueba χ2
Establecer valor crítico de la prueba (de acuerdo a un cierto nivel de confianza y grados de libertad)
Contraste e interpretación
Intervalar | Ordinal | Nominal | |
---|---|---|---|
Intervalar | Pearson | ||
Ordinal | Pearson/Spearman | Spearman | |
Nominal | Punto-biserial | Spearman/Punto-biserial/Chi 2 | Chi 2 |
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |