INTRODUCCIÓN

Este documento presenta un caso de estudio para ejemplificar como se realiza e interpreta una prueba de hipótesis estadística, utilizando R como lenguaje de análisis de los datos. Se asume que existe un conocimiento previo de estadística básica.

CONTEXTO: Proceso de embolsado de bolsas de té

Una empresa produce bolsas de té por medio de un proceso automatizado por medio del cual se preparan las hojas de té y se embolsan; la empresa labora en dos turnos (matutino y vespertino) y posee 4 máquinas (A, B, C y D).

Todos los días, como parte del control de calidad de la empresa, se toma una muestra aleatoria de 150 bolsas de té, se pesan y se registra el turno y la máquina que le corresponde. Con estos datos, se realiza un análisis para determinar que el proceso esté embolsando acorde a las especificaciones establecidas, es decir, 5.5 gramos de té en promedio por bolsa.

Descarga el archivo de datos aquí

     

Limpieza y preparación de los datos.

Se procede al análisis de los datos recabados, haciendo los pasos necesarios para clasificar correctamente las variables de interés en función de su tipo de datos y su nivel de medición.

# Se leen los datos del archivo y se cargan en un data frame

muestra <- read.csv(file='teabags.csv')
str(muestra)
## 'data.frame':    150 obs. of  3 variables:
##  $ peso   : num  5.25 5.29 5.32 5.32 5.34 5.36 5.4 5.4 5.4 5.41 ...
##  $ turno  : int  1 2 1 2 1 2 1 2 1 2 ...
##  $ maquina: int  1 2 3 4 1 2 3 4 1 2 ...

Los datos del turno y de la máquina se capturaron codificados, por lo tanto, R los carga y clasifica como variables de tipo cuantitativo, cuando en realidad son de tipo cualitativo. Se realizan los pasos necesarios para convertir estas variables a factores en R.

Codificación del turno: (1) Matutino, (2) Vespertino.

Codificación de la máquina: (1) Máquina A, (2) Máquina B, (3) Máquina C, (4) Máquina D.

# Se hace la preparación y limpieza necesaria acorde a los tipos de variable y niveles de medición

muestra$turno = factor(muestra$turno, labels=c('matutino','vespertino'))
muestra$maquina = factor(muestra$maquina, labels=c('A','B','C','D'))
str(muestra)
## 'data.frame':    150 obs. of  3 variables:
##  $ peso   : num  5.25 5.29 5.32 5.32 5.34 5.36 5.4 5.4 5.4 5.41 ...
##  $ turno  : Factor w/ 2 levels "matutino","vespertino": 1 2 1 2 1 2 1 2 1 2 ...
##  $ maquina: Factor w/ 4 levels "A","B","C","D": 1 2 3 4 1 2 3 4 1 2 ...
# Se despliega las primeras 6 observaciones

head(muestra)
summary(muestra)
##       peso              turno    maquina
##  Min.   :5.250   matutino  :75   A:38   
##  1st Qu.:5.440   vespertino:75   B:38   
##  Median :5.515                   C:37   
##  Mean   :5.501                   D:37   
##  3rd Qu.:5.570                          
##  Max.   :5.770

Vemos que no hay datos faltantes, por lo tanto, los datos están listos para ser analizados.

     

PRUEBA DE HIPÓTESIS DE DOS MUESTRAS INDEPENDIENTES (2 COLAS)

Este tipo de prueba se realiza cuando la creencia acerca del fenómeno estudiado involucra una sola característica, pero dicha característica puede analizarse considerando una segunda característica que permita identificar 2 subgrupos de manera que las dos submuestras pertenecen al mismo fenómeno en particular.

La verdad asumida se representa como una igualdad de medias, considerando que, si ambas submuestras pertenecen al mismo fenómeno, sus medias aritméticas serán la misma. Esto se representa con la hipótesis nula (Ho) y se escribe:

Ho: \(\mu\)1 = \(\mu\)2

La hipótesis alterna (Ha) establece que sí son diferentes las medias aritméticas y se escribe:

Ha: \(\mu\)1 \(\neq\) \(\mu\)2

Esta prueba se denomina de 2 colas, porque la diferencia entre las medias poblacionales puede ser porque la primera sea mayor que la segunda (cola 1) o que la primera sea menor que la segunda (cola 2).

Este tipo de prueba tiene 4 supuestos que deben cumplirse para que considerar que es válido aplicarla:

  • La variable analizada debe ser cuantitativa continua y con nivel de medición de intervalo o de razón.
  • Las observaciones son independientes entre sí.
  • La variable analizada debe poder asumirse que está distribuida normalmente.
  • La variable analizada no debe contener valores atípicos (outliers).

     

Análisis del peso de las bolsas de té por turno

Se supone que todo el proceso cumple con las especificaciones de embolsado sin importar en que turno se produjeron las bolsas de té, por lo tanto, se desea determinar que ambos turnos son iguales, es decir, producen bolsas de té con las mismas características.

La variable peso es cuantitativa continua y de nivel de razón (se cumple el supuesto 1), dadas las características del proceso automatizado se puede asumir que la cantidad de té de una bolsa es independiente de las demás bolsas (se cumple el supuesto 2).

Se analizará entonces la variable peso en función de cada turno, obteniendo el análisis estadístico descriptivo de la primera en función de la segunda.

# Es necesaria la librería moments

library(moments)

# Se analizan submuestras por turno.

muestra.matutina <- muestra[muestra$turno == 'matutino',]
summary(muestra.matutina$peso)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   5.250   5.440   5.510   5.496   5.570   5.670
sd(muestra.matutina$peso)
## [1] 0.1028597
skewness(muestra.matutina$peso)
## [1] -0.4809904
kurtosis(muestra.matutina$peso)-3
## [1] -0.2514623
muestra.vespertina <- muestra[muestra$turno == 'vespertino',]
summary(muestra.vespertina$peso)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   5.290   5.440   5.520   5.506   5.570   5.770
sd(muestra.vespertina$peso)
## [1] 0.1077866
skewness(muestra.vespertina$peso)
## [1] 0.1283858
kurtosis(muestra.vespertina$peso)-3
## [1] 0.08906747

Se aprecia que la asimetría y la curtosis son cercanas a cero y dentro del rango aceptable (-3 a +3), por lo que no hay evidencia para suponer que la media aritmética no sea confiable como valor representativo (supuesto 3).

Nota: La función de curtosis de la librería moments usa la fórmula de Pearson, sin embargo, para este documento, se usa el exceso de curtosis (se le resta 3) para usar la misma referencia que el coeficiente de asimetría.

# Es necesaria la librería ggplot2

library(ggplot2)

# Se realiza la gráfica

ggplot(muestra) +
  geom_histogram(aes(x=peso,y=..density..),
                 breaks = seq(5.3,5.7,by=0.05),
                 colour='black',
                 fill='green') +
  stat_function(fun=dnorm, args=list(mean=mean(muestra$peso), sd=sd(muestra$peso)),
                colour = 'blue', lwd = 1) +
  geom_vline(xintercept = mean(muestra$peso),
             linetype = 'dotted') + 
  scale_y_continuous('Densidad') + 
  facet_wrap(~turno)

El histograma nos indica que es válido suponer que los datos de la muestra tienen un comportamiento normal (supuesto 3), nótese que las barras del histograma siguen la forma de la distribución ideal (línea azul).

ggplot(muestra) +
  geom_boxplot(aes(y=peso), fill='green') +
  coord_flip() + 
  theme(axis.text.y=element_blank()) +
  facet_wrap(~turno)

La gráfica de caja y bigotes muestra que no hay valores atípicos de importancia (supuesto 4).

     

PASO 1. Se establecen las hipótesis.

El supuesto es que la producción de ambos turnos es la misma, lo que significa que las medias aritméticas de todas las bolsas de té por cada turno (las poblaciones) son iguales. Planteamos esto en términos de hipótesis estadísticas.

Ho: \(\mu\)1 = \(\mu\)2

Ha: \(\mu\)1 \(\neq\) \(\mu\)2

     

PASO 2. Se establece el nivel de confianza.

Se decide usar 95% como nivel de confianza de la prueba, lo que implica 5% de nivel de significancia. Nota: En los estudios de las ciencias sociales, es común utilizar 95% como nivel de confianza.

Nivel de confianza: 1 - \(\alpha\) = 0.95

Nivel de significancia: \(\alpha\) = 0.05

     

PASO 3. Análisis de la muestra.

Se analizan los valores de la muestra y se realiza la prueba de hipótesis de una muestra de dos colas.

equal.variances = !(bartlett.test(peso ~ turno, data = muestra)$p.value < 0.05)
model <- t.test(peso ~ turno, data = muestra, var.equal = equal.variances, alternative = "two.sided", conf.level=0.95)
model
## 
##  Two Sample t-test
## 
## data:  peso by turno
## t = -0.58126, df = 148, p-value = 0.5619
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.04399701  0.02399701
## sample estimates:
##   mean in group matutino mean in group vespertino 
##                   5.4964                   5.5064

El intervalo de confianza correspondiente a esta prueba es:

model$conf.int
## [1] -0.04399701  0.02399701
## attr(,"conf.level")
## [1] 0.95

Y el valor-p correspondiente es:

model$p.value
## [1] 0.5619469

     

PASO 4. Interpretación de los resultados.

El criterio del valor p establece que el valor p obtenido es menor que la significancia establecida, la hipótesis nula se rechaza; en caso contrario se sigue aceptando como válida la hipótesis nula.

Resultado Interpretación
p-value < \(\alpha\) Ho se rechaza
p-value >= \(\alpha\) Ho se sigue aceptando como válida

Para este problema, el nivel de significancia se estableció en 5% o 0.05, por lo que haciendo la comparación:

model$p.value < 0.05
## [1] FALSE

La conclusión es que se sigue aceptando la hipótesis nula, lo que significa en el contexto del problema: ambos turnos se comportan igual o el turno no afecta el peso promedio de las bolsas de té.

     

Dr. José Luis Barrera Canto

     

[EOF]