Trabajaremos con parte de los datos de la Encuesta nacional de medio ambiente que el gobierno (chileno) realiza periodicamente en Chile. En concreto, con la de 2017/18; datos completos aquí.
datos = read.table(file = "Base-en-excel-Encuesta-Nacional-de-Medio-Ambiente-2018.csv",
header = T, sep = ";")
La variable P32 pregunta por el sexo del encuestado, que puede tomar los valores
¿Contiene la muestra un número equitativo de mujeres y hombres?
Establece las hipótesis mula y alternativa a contrastar:
Se trata de un contraste de homogeneidad. En concreto, contrastaremos
\(H_0\): la proporción de mujeres en la muestra es la misma que la de hombres (es decir, 1/2)
\(H_1\): la proporción de mujeres en la muestra es la diferente que la de hombres.
Resume los datos en una tabla y comentala:
(tb_sex = table(datos$P32))
##
## 1 2
## 3079 4522
La tabla parece indicar que hay muchas más mujeres que hombre. Para analizar si la diferencia es significativa, contrastamos
Contrasta las hipótesis planteadas:
Basta con hacer
chisq.test(tb_sex, p = c(1/2, 1/2))
##
## Chi-squared test for given probabilities
##
## data: tb_sex
## X-squared = 273.94, df = 1, p-value < 2.2e-16
Se rechaza H0, porque el p-valor es prácticamente cero.
Observa que puedes introducir las frecuencias absolutas tanto en una tabla como en un vector.
Determina los valores esperados para cada nivel del factor
R hace los cálculos por nosotros al hacer el contraste y os guarda en la columna expected
(test = chisq.test(tb_sex, p = c(1/2, 1/2)))
##
## Chi-squared test for given probabilities
##
## data: tb_sex
## X-squared = 273.94, df = 1, p-value < 2.2e-16
test$expected
## 1 2
## 3800.5 3800.5
Se observa que, efectivamente, lo valores esperados son muy diferentes de los valores observados:
tb_sex
##
## 1 2
## 3079 4522
Considera la variable P2_COD
indica cuál cree el encuestado que es elproblema medio ambiental que más le afecta, y que puede tomar los valores:
88.- No sabe
99.- No responde
¿Tienen la misma percepción, hombres y mujeres? Para responder a ello
Establece las hipótesis nula y alternativa.
En este caso se trata de un contraste de independencia:
\(H_0\): las dos variables son independientes \(H_1\): las dos variables NO son independientes
Selecciona en un data.frame (una tabla de datos) las dos variables de interés.
df = datos[ , c("P2_COD", "P32")]
Calcula la tabla de contingencia y comentala:
table(df)
## P32
## P2_COD 1 2
## 1 756 1400
## 2 106 157
## 3 119 114
## 4 132 183
## 5 243 309
## 6 973 1346
## 7 74 128
## 8 45 117
## 9 29 65
## 10 10 20
## 11 25 37
## 12 37 43
## 13 168 213
## 14 109 81
## 88 248 296
## 99 5 13
A la vista de la tabla, la mayor discrepancia parece estar en las respuestas 1 (basura) y 6 (contaminación del aire).
Haz el contraste correspondiente
chisq.test(table(df))
##
## Pearson's Chi-squared test
##
## data: table(df)
## X-squared = 91.416, df = 15, p-value = 5.395e-13
El p-valor es tan pequeño, que se rechaza H0.
Si prescindimos de las respuestas a esas dos preguntas, ¿dirías que las dos variables son independientes?
Primero eliminamos las filas en las que la respuesta a P2_COD
es 1 o 6 (eliminamos también los no sabe -88- y no contesta -99-)
df = df[which(df$P2_COD %in% c(2:5, 7:14)) ,]
Y hacemos de nuevo el contraste
chisq.test(table(df))
##
## Pearson's Chi-squared test
##
## data: table(df)
## X-squared = 49.554, df = 11, p-value = 7.526e-07
Aunque el p-valor aumenta muchos órdenes de magnitud, sigue sin ser suficiente para rechazar H0: la muestra indica que las variables NO son independientes.
PARA HACER EN CASA. Vamos a seguir parte del tutorial 12 de postdata. Este fichero contiene los datos del Lunar Orbiter Laser Altimeter instrument (LOLA)
Las tres variables que aparecen en ese fichero:
crateres = read.table(file = "Cap09-LolaLargeLunarCraterCatalog.csv", sep = ",", header = TRUE)
colnames(crateres)
se refieren a la latitud, longitud (ambas en grados) y diámetro (en km) de los cráteres lunares y son todas ellas cuantitativas continuas.
La pregunta a responder es si hay diferencia entre los diámetros de los cráteres entre ambos hemisferios de la Luna.
La función cut
permite categorizar las variables:
hemisphere = cut(crateres$Lat, breaks=c(-90, 0, 90))
head(hemisphere)
## [1] (-90,0] (-90,0] (0,90] (0,90] (0,90] (-90,0]
## Levels: (-90,0] (0,90]
renombramos los niveles del factor
levels(hemisphere) = c("SUR", "NORTE")
head(hemisphere)
## [1] SUR SUR NORTE NORTE NORTE SUR
## Levels: SUR NORTE
Para los diámetros de los cráteres
bp = boxplot(crateres$Diam_km, col = "navy", horizontal = T)
para decidir cómo agrupar los diámetros, observamos el boxplot si atípicos
se pueden hacer clases de 20 - 40 - 60 - 80, mayor que 80
craterSize = cut(crateres$Diam_km,
breaks=c(seq(20, 80, 20), max(crateres$Diam_km)),
include.lowest=TRUE)
y ya podemos construir la tabla de frecuencias y hacer el contraste
(tabla_crateres = table(hemisphere, craterSize))
## craterSize
## hemisphere [20,40] (40,60] (60,80] (80,2.05e+03]
## SUR 1615 585 255 328
## NORTE 1388 523 227 264
chisq.test(tabla_crateres)
##
## Pearson's Chi-squared test
##
## data: tabla_crateres
## X-squared = 1.184, df = 3, p-value = 0.7568
por lo que no hay evidencias para rechazar \(H_0\).