El objetivo de este capítulo es evaluar la igualdad de medias entre 3 o más grupos independientes
================================================================================
| Parámetro | Muestra | Población |
|---|---|---|
| Proporción | \(\hat{p}\) | \(p\) |
| Media | \(\bar{x}\) | \(\mu\) |
| Desviación estandar | \(s\) | \(\sigma\) |
| Varianza | \(s^2\) | \(\sigma^2\) |
| \(H_0\) es verdadera | \(H_0\) es falsa | |
|---|---|---|
| Rechaza \(H_0\) | ERROR TIPO I (\(\alpha\)) | Decisión correcta |
| Acepta \(H_0\) | Decisión correcta | ERROR TIPO II (\(\beta\)) |
================================================================================
================================================================================
Se usa para probar la hipótesis que una distribución de la frecuencia observada se ajusta a una distribución afirmada.
| Símbolo | Definición |
|---|---|
| \(O\) | Frecuencia observada |
| \(E\) | Frecuencia esperada |
| \(k\) | Cantidad de diferentes categorías |
| \(n\) | Número de ensayos |
| \(p\) | Probabilidad |
\[H_0:\] Los conteos de frecuencias concuerdan con la distribución afirmada. \[H_1:\] Los conteos de frecuenicas no concuerdan con la distribución afirmada.
\[\chi^2=\sum{\frac{(O-E)^2}{E}}\]
================================================================================
R nos permite importar una base de datos de la web si es que especificamos la dirección
direc <- "http://www.sthda.com/sthda/RDoc/data/housetasks.txt"
housetasks <- read.delim(direc, row.names = 1)
head(housetasks)
## Wife Alternating Husband Jointly
## Laundry 156 14 2 4
## Main_meal 124 20 5 4
## Dinner 77 11 7 13
## Breakfeast 82 36 15 7
## Tidying 53 11 1 57
## Dishes 32 24 4 53
La tabla anterior corresponde a las frecuencias absolutas de las tareas domesticas asignadas a la esposa,el esposo o ambos. Una forma rápida de examinar los datos es mediante gráficas, por lo que usaremos la función ballomplot() de la librería de “gplots()”
#install.packages("gplots", dependencies = T)
library(gplots)
## Warning: package 'gplots' was built under R version 4.0.3
##
## Attaching package: 'gplots'
## The following object is masked from 'package:stats':
##
## lowess
Una vez cargada la librería, debemos tranformar la base de datos de data.frame a table
class(housetasks)
## [1] "data.frame"
tb1 <- as.table(as.matrix(housetasks))
class(tb1)
## [1] "table"
tb1
## Wife Alternating Husband Jointly
## Laundry 156 14 2 4
## Main_meal 124 20 5 4
## Dinner 77 11 7 13
## Breakfeast 82 36 15 7
## Tidying 53 11 1 57
## Dishes 32 24 4 53
## Shopping 33 23 9 55
## Official 12 46 23 15
## Driving 10 51 75 3
## Finances 13 13 21 66
## Insurance 8 1 53 77
## Repairs 0 3 160 2
## Holidays 0 1 6 153
Una vez que el objeto fue transformado a tabla, lo que sigue es generar el gráfico
gplots::balloonplot(t(tb1))
Para que la gráfica quede mejor, podemos quitar las etiquetas de los ejes y los totales a los márgenes
gplots::balloonplot(t(tb1),
main = "Tareas del hogar",
xlab = "",
ylab = "",
label = FALSE,
show.margins = FALSE)
Otra forma de graficar los datos es con la función mosaicplot() de la librería “graphics”
# install.packages("graphics", dependencies = T)
library(graphics)
graphics::mosaicplot(tb1, shade = T, las = 2, main = "Tareas del hogar")
Lo primero que debemos hacer para los análisis es encontrar el valor esperado. Esto se obtiene de la división de los \(n\) datos entre las \(k\) categorías. Su estamos utilizando una herramienta como R, podemos generar estos datos a patir del análisis de chi cuadrado con la función chisq.test().
chisq <- chisq.test(housetasks)
chisq
##
## Pearson's Chi-squared test
##
## data: housetasks
## X-squared = 1944.5, df = 36, p-value < 2.2e-16
chisq$expected
## Wife Alternating Husband Jointly
## Laundry 60.55046 25.63303 38.44954 51.36697
## Main_meal 52.63761 22.28326 33.42489 44.65424
## Dinner 37.15596 15.72936 23.59404 31.52064
## Breakfeast 48.16514 20.38991 30.58486 40.86009
## Tidying 41.97248 17.76835 26.65252 35.60665
## Dishes 38.87615 16.45757 24.68635 32.97993
## Shopping 41.28440 17.47706 26.21560 35.02294
## Official 33.02752 13.98165 20.97248 28.01835
## Driving 47.82110 20.24427 30.36640 40.56823
## Finances 38.87615 16.45757 24.68635 32.97993
## Insurance 47.82110 20.24427 30.36640 40.56823
## Repairs 56.76606 24.03096 36.04644 48.15654
## Holidays 55.04587 23.30275 34.95413 46.69725
chisq$observed
## Wife Alternating Husband Jointly
## Laundry 156 14 2 4
## Main_meal 124 20 5 4
## Dinner 77 11 7 13
## Breakfeast 82 36 15 7
## Tidying 53 11 1 57
## Dishes 32 24 4 53
## Shopping 33 23 9 55
## Official 12 46 23 15
## Driving 10 51 75 3
## Finances 13 13 21 66
## Insurance 8 1 53 77
## Repairs 0 3 160 2
## Holidays 0 1 6 153
colSums(housetasks)/nrow(housetasks)
## Wife Alternating Husband Jointly
## 46.15385 19.53846 29.30769 39.15385
Si deseamos ver la dependencia entre las columnas y las filas podemos hallar el coeficiente de correlación de pearson que está guardado en el slot “residual” del objeto htest “chisq”. Para llamar dichos resultados solo tenemos que usar el operador $
chisq$residuals
## Wife Alternating Husband Jointly
## Laundry 12.266344 -2.2976972 -5.8782288 -6.608968
## Main_meal 9.836062 -0.4836881 -4.9165873 -6.083794
## Dinner 6.536557 -1.1924678 -3.4162600 -3.298819
## Breakfeast 4.875263 3.4569876 -2.8180566 -5.297104
## Tidying 1.702142 -1.6056807 -4.9689076 3.585198
## Dishes -1.102817 1.8592103 -4.1634703 3.486107
## Shopping -1.289342 1.3211002 -3.3623444 3.375634
## Official -3.658896 8.5628768 0.4427320 -2.459431
## Driving -5.469207 6.8355754 8.0996318 -5.898312
## Finances -4.150095 -0.8522912 -0.7419395 5.749805
## Insurance -5.758422 -4.2771092 4.1073055 5.719883
## Repairs -7.534325 -4.2901609 20.6456123 -6.651286
## Holidays -7.419291 -4.6201370 -4.8973513 15.556033
Para graficar esta correlación, podemos usar la función corrplot() de la librería “corrplot”.
library(corrplot)
## corrplot 0.84 loaded
corrplot::corrplot(chisq$residuals, is.corr = F)
Para hallar el porcentaje de contribución de cada varible debemos hacer una división de la \(r^2\) y el resultado de la prueba estadísitca de \(\chi^2\)
contrib <- 100*chisq$residuals^2/chisq$statistic
corrplot::corrplot(contrib, is.corr = F)
Si nosotros queremos compara si las frecuencias de ocurrencias de dos poblaciones independientes mantienen el mismo patrón, podemos aplicar una prueba de homogenidad
La prueba de homogenidad con ji cuadrado trata de demostrar que las proporciones de las frecuencias de distintas categorías son parecidas en dos poblaciones distintas.