# Inferencia de medias con R

Francisco García García (2014-12-01)

### 0. Introducción

### 1. Intervalo de confianza de una media poblacional

### 2. Test t para una media poblacional

### 3. Intervalo de confianza de la diferencia de dos medias poblacionales

### 4. Test t para dos medias poblacionales

### 5. Pruebas no paramétricas: Wilcoxon

### 6. Ejercicios

### 7. Bibliografía

## 0. Introducción

Los procedimientos t son pruebas paramétricas que permiten realizar inferencia a partir de 1 ó 2 muestras:

- Nos proporcionan intervalos de confianza de una media poblacional o bien la media de la diferencia de 2 medias poblaciones.
- También incluyen los contrastes de hipótesis de comparación de medias.

Cuando no se verifica la normalidad en la variable respuesta, es aconsejable el uso de una prueba no paramétrica: Wilcoxon, cuyas hipótesis nula y alternativa no se basan en el parámetro de la media sino en la mediana.

## 1. Intervalo de confianza de una media poblacional

Comenzamos leyendo la base de datos riesgos:

    datos <- read.csv("datos/riesgos.csv", header = T, sep = "\t")

    #> Warning in file(file, "rt"): cannot open file 'datos/riesgos.csv': No such
    #> file or directory

    #> Error in file(file, "rt"): cannot open the connection

Echamos un vistazo a la estructura de los datos:

    str(datos)

    #> Error in str(datos): object 'datos' not found

    head(datos)

    #> Error in head(datos): object 'datos' not found

    tail(datos)

    #> Error in tail(datos): object 'datos' not found

Con la función attach hacemos accesible la base de datos seleccionada:

    attach(datos)

    #> Error in attach(datos): object 'datos' not found

Describimos la variable peso en nuestra muestra:

    summary(peso)

    #> Error in summary(peso): object 'peso' not found

    boxplot(peso, col="pink", main ="Peso")

    #> Error in boxplot(peso, col = "pink", main = "Peso"): object 'peso' not found

¿Cómo determinamos un intervalo de confianza del 95% para la media poblacional del salario?

    t.test(peso, conf.level = 0.95)$conf.int

    #> Error in t.test(peso, conf.level = 0.95): object 'peso' not found

¿Los datos deben cumplir algún requisito para poder obtener el intervalo de confianza anterior?

Redondea el intervalo de confianza a dos decimales:

    round(t.test(peso, conf.level = 0.95)$conf.int,2)

    #> Error in t.test(peso, conf.level = 0.95): object 'peso' not found

## 2. Test t para una media poblacional

La base de datos riesgos.csv es una muestra aleatoria de la población de trabajadores de un centro hospitalario de Valencia.

Se ha publicado un informe donde se indica que la media de la talla de todos los trabajadores en la Comunidad Valenciana es de 160 cm. Sin embargo, nosotros creemos que no es cierto y por ello nos gustaría utilizar los datos de nuestro estudio. Realizaremos los siguientes pasos: 1. Describimos la variable talla de forma numérica y gráfica.

    boxplot(talla, col = "red", main = "talla en población de trabjadores")

    #> Error in boxplot(talla, col = "red", main = "talla en población de trabjadores"): object 'talla' not found

    hist(talla)

    #> Error in hist(talla): object 'talla' not found

1. Plantea el contraste de hipótesis correspondiente. ¿Dos colas o una sola?

2. Resuelve el contraste en R considerando un nivel de significación de 0.05:

    t.test(peso, mu = 160, alt = "two.sided", conf.level = 0.95)

    #> Error in t.test(peso, mu = 160, alt = "two.sided", conf.level = 0.95): object 'peso' not found

## 3. Intervalo de confianza de la diferencia de dos medias poblacionales

Sospechamos que la edad de las personas que tienen exposición a carga física es menor que la edad de las personas no expuestas a este riesgo. Nos gustaría obtener un intervalo de confianza de la diferencia de estas medias:

Primero exploramos la muestra:

    mean(edad[carfisi == "sí"])

    #> Error in mean(edad[carfisi == "sí"]): object 'edad' not found

    mean(edad[carfisi == "no"])

    #> Error in mean(edad[carfisi == "no"]): object 'edad' not found

    plot(edad ~ carfisi, col = c("red", "green"))

    #> Error in eval(expr, envir, enclos): object 'edad' not found

    mean(edad[carfisi == "sí"]) - mean(edad[carfisi == "no"])

    #> Error in mean(edad[carfisi == "sí"]): object 'edad' not found

A partir de los datos de la muestra, ¿crees que hay diferencia de edad entre ambos grupos?

Determinamos el intervalo de confianza del 95% para la diferencia de estas dos medias:

    t.test(edad ~ carfisi, data = datos, conf.level = 0.95)$conf.int

    #> Error in eval(expr, envir, enclos): object 'datos' not found

    ## Otra opción para obtener el mismo intervalo de confianza:
    grupo1 <- edad[carfisi == "no"]

    #> Error in eval(expr, envir, enclos): object 'edad' not found

    grupo2 <- edad[carfisi == "sí"]

    #> Error in eval(expr, envir, enclos): object 'edad' not found

    t.test(grupo1, grupo2, conf.level = 0.95)$conf.int

    #> Error in t.test(grupo1, grupo2, conf.level = 0.95): object 'grupo1' not found

¿El valor 0 está incluido en este intervalo de confianza? ¿Qué significa esto?

## 4. Test t para dos medias poblacionales

En ocasiones nos gustaría comparar dos poblaciones. Una opción sería comparar las medias de ambos grupos pero antes debemos tener claro si las muestras son relacionadas o independientes. Comenta un ejemplo de cada tipo.

¿Hay diferencias de peso entre las personas que tienen carga psíquica y las que no están expuestas?

Vemos que ocurre en nuestra muestra:

    summary(peso[carpsiqui == "sí"])

    #> Error in summary(peso[carpsiqui == "sí"]): object 'peso' not found

    summary(peso[carpsiqui == "no"])

    #> Error in summary(peso[carpsiqui == "no"]): object 'peso' not found

    boxplot(peso ~ carpsiqui,  col= c("pink", "red"), main = "peso vs. carga psíquica")

    #> Error in eval(expr, envir, enclos): object 'peso' not found

Con esta información, ¿crees que hay diferencias entre ambos grupos? Comprueba si estas diferencias estadísticamente son estadísticamente significativas mediante la utilización del correspondiente test estadístico. t de comparación de 2 medias:

    t.test(peso ~ carpsiqui, data = datos, conf.level = 0.95)

    #> Error in eval(expr, envir, enclos): object 'datos' not found

Comenta los resultados obtenidos.

## 5. Pruebas no paramétricas: Wilcoxon

Los procedimientos t exigen el cumplimiento de normalidad de la variable de estudio. Sin embargo, si no se verifican los requisitos exigidos, no será aconsejable el uso de estas pruebas paramétricas y utilizaremos procedimientos no paramétricos, que no suelen exigir ningún requerimiento a nuestros datos.

El test de Wilcoxon es una opción no paramétrica que nos permite comparar dos poblaciones.

Vamos a evaluar si hay diferencias de peso entre las personas que presentan exposición a carga física y las que no están expuestas, utilizando el test de Wilcoxon:

    summary(peso[carfisi == "sí"])

    #> Error in summary(peso[carfisi == "sí"]): object 'peso' not found

    summary(peso[carfisi == "no"])

    #> Error in summary(peso[carfisi == "no"]): object 'peso' not found

    boxplot(peso ~ carfisi,  col= c("blue", "red"), main = "peso vs. carga psíquica")

    #> Error in eval(expr, envir, enclos): object 'peso' not found

    wilcox.test(peso ~ carfisi, data = datos, paired = F)

    #> Error in eval(expr, envir, enclos): object 'datos' not found

- Comenta cuáles son las hipótesis nula y alternativa del contraste.
- ¿Qué información nos proporciona el estadístico de contraste?
- ¿Qué nos indica el p-valor?
- ¿Qué podemos concluir en el contexto del problema?

## 6. Ejercicios

En la base de datos estres.csv se incluye información sobre los niveles de estrés de un grupo de trabajadores, así como otras variables de interés.

Realiza las siguientes actividades en R:

- A. Lee la base de datos estres, examina la estructura de los datos (str) y utiliza la función attach para hacerla accesible y trabajar más cómodamente con sus variables. ¿Qué variables son factor? ¿Y qué variables son integer?
- B. Describe la variable sueldo. ¿Parece una distribución normal?. Determina un intervalo de confianza del 90% para la media poblacional del sueldo de los trabajadores.
- C. Hace unos años se publicó un informe donde se indicaba que el colectivo de estos trabajadores presentaba una media del nivel de estrés de 5 puntos, aunque tenemos nuestras dudas…. Plantea un contraste de hipótesis sobre la media poblacional del nivel de estrés y considerando la información de nuestra muestra, resuelve el contraste en R. ¿Qué conclusiones obtenemos?
- D. ¿Hay diferencias de sueldo por género? Primero explora gráfica y numéricamente qué nos dice nuestra muestra respecto esta relación del sueldo y género. A continuación plantea el contraste correspondiente, resuélvelo con R y comenta los resultados obtenidos
- E. La variable carga física NO se distribuye como una variable normal. Nos gustaría confirmar si hay diferencias entre la exposición de carga física entre hombres y mujeres. ¿Qué procedimiento estadístico podríamos utilizar? Indica cuál es la hipótesis nula y la alternativa. Resuélve el contrate utilizando R y comenta los resultados obtenidos.

## 7. Bibliografía y enlaces interesantes:

- David S. Moore. Estadística aplicada básica. Editorial Antoni Bosch. Manual de Estadística Básica.

- Quick-R Web con recursos para trabajar con R.

- r-tutor An R Introduction to Statistics.