Está en la página 1de 5

Práctica Estadística Inferencial

Compilado por José L. Estrada P.


21/6/2019

Contents
Inferencia estadística con R 1
Inferencias sobre la media en distribuciones normales: t.test . . . . . . . . . . . . . . . . . . . . . . 1

Inferencia estadística con R


Fuente: Angelo Santana & Carmen Nieves Hernández,Departamento de Matemáticas, ULPGC

Inferencias sobre la media en distribuciones normales: t.test


La función t.test() es la encargada de los procedimientos de inferencia sobre la media en poblaciones normales.
Mediante esta función:
Podemos construir intervalos de confianza para una media y para la diferencia de medias entre dos poblaciones.
Podemos llevar a cabo contrastes de hipótesis, tanto unilaterales como bilaterales, sobre una media o sobre la
diferencia de medias entre dos poblaciones.
En el caso particular de la comparación de dos poblaciones, permite elegir entre considerar las varianzas
poblacionales iguales o distintas.
Veamos algunos ejemplos. Utilizaremos para ello algunas bases de datos incluídas en el paquete Lock5Data,
que deberemos instalar previamente

Inferencia sobre la media de una población normal


El conjunto de datos SleepStudy contiene 253 observaciones sobre patrones de sueño en estudiantes
universitarios. Para ello se realizó un seguimiento de estos alumnos durante dos semanas. La variable
AverageSleep contiene el número medio de horas de sueño de cada estudiante durante este periodo. En primer
lugar leemos los datos y presentamos un histograma de esta variable:
Instalar el paquete Lock5Data
install.packages(“Lock5Data”)
library(Lock5Data) # Cargamos el paquete que contiene los datos
data(SleepStudy) # Cargamos los datos del estudio de sueño
hist(SleepStudy$AverageSleep, col="lightSalmon", xlab="Promedio de horas de sueño diarias", main="Estudi

1
Estudio del sueño en estudiantes
50
40 universitarios
Frequency

30
20
10
0

5 6 7 8 9 10 11

Promedio de horas de sueño diarias

### Contraste bilateral


Supongamos que queremos determinar si es admisible la hipótesis de que estos alumnos duermen por término
medio 8 horas diarias. Utilizaríamos entonces la sintaxis:
t.test(SleepStudy$AverageSleep, mu=8)

##
## One Sample t-test
##
## data: SleepStudy$AverageSleep
## t = -0.56168, df = 252, p-value = 0.5748
## alternative hypothesis: true mean is not equal to 8
## 95 percent confidence interval:
## 7.846466 8.085392
## sample estimates:
## mean of x
## 7.965929
Obsérvese que para llevar a cabo el contraste basta con especificar la media que se desea poner a prueba
mediante mu=8. Como resultado del procedimiento se muestra el valor del estadístico t, sus grados de
libertad (df) y el p-valor del contraste (0.57483), que indica que la hipótesis planteada es admisible. Además
obtenemos también la estimación del número medio de horas de sueño en la muestra (7.96593) y un intervalo
de confianza al 95%. Podemos solicitar un intervalo a otro nivel de confianza especificándolo en la llamada al
t.test:
t.test(SleepStudy$AverageSleep, mu=8, conf.level=0.9)

##

2
## One Sample t-test
##
## data: SleepStudy$AverageSleep
## t = -0.56168, df = 252, p-value = 0.5748
## alternative hypothesis: true mean is not equal to 8
## 90 percent confidence interval:
## 7.865786 8.066072
## sample estimates:
## mean of x
## 7.965929

Estructura del objeto t.test


Si ejecutamos:
tt=t.test(SleepStudy$AverageSleep, mu=8)
str(tt)

## List of 10
## $ statistic : Named num -0.562
## ..- attr(*, "names")= chr "t"
## $ parameter : Named num 252
## ..- attr(*, "names")= chr "df"
## $ p.value : num 0.575
## $ conf.int : num [1:2] 7.85 8.09
## ..- attr(*, "conf.level")= num 0.95
## $ estimate : Named num 7.97
## ..- attr(*, "names")= chr "mean of x"
## $ null.value : Named num 8
## ..- attr(*, "names")= chr "mean"
## $ stderr : num 0.0607
## $ alternative: chr "two.sided"
## $ method : chr "One Sample t-test"
## $ data.name : chr "SleepStudy$AverageSleep"
## - attr(*, "class")= chr "htest"
podemos comprobar que el resultado de realizar un t-test es un objeto de clase htest compuesto por una lista
de elementos (statistic, parameter, etc). Ello facilita la extracción de elementos particulares del test; por
ejemplo, si sólo estuviésemos interesados en el intervalo de confianza o el p-valor bastaría ejecutar:
tt$conf.int

## [1] 7.846466 8.085392


## attr(,"conf.level")
## [1] 0.95
tt$p.value

## [1] 0.5748307
o de manera equivalente:
tt["conf.int"]

## $conf.int
## [1] 7.846466 8.085392
## attr(,"conf.level")
## [1] 0.95

3
tt["p.value"]

## $p.value
## [1] 0.5748307

Contraste unilateral
Si nuestro planteamiento original hubiese sido determinar si existe evidencia suficiente de que estos estudiantes
duermen en promedio más de 7 horas diarias, plantearíamos un test unilateral, especificando el sentido de la
hipótesis alternativa a contrastar (en este caso µ > 7):
t.test(SleepStudy$AverageSleep, mu=7, alternative="greater")

##
## One Sample t-test
##
## data: SleepStudy$AverageSleep
## t = 15.924, df = 252, p-value < 2.2e-16
## alternative hypothesis: true mean is greater than 7
## 95 percent confidence interval:
## 7.865786 Inf
## sample estimates:
## mean of x
## 7.965929

Validación de la hipótesis de normalidad


El paquete car proporciona la función qqPlot() que nos permite evaluar gráficamente si puede aceptarse la
hipótesis de normalidad de una variable:
library(car)

## Loading required package: carData


qqPlot(SleepStudy$AverageSleep)

4
10
SleepStudy$AverageSleep

9
8
7
6

85 3
5

−3 −2 −1 0 1 2 3

norm quantiles

## [1] 85 3
En este caso se aprecia una ligera asimetría en la cola inferior de la distribución. No obstante, el test de
Shapiro-Wilk permite aceptar la normalidad de esta variable:
shapiro.test(SleepStudy$AverageSleep)

##
## Shapiro-Wilk normality test
##
## data: SleepStudy$AverageSleep
## W = 0.99044, p-value = 0.0959
Para obtener el archivo en pdf acceder al link siguiente en el apartado de Estadística II clic aqui

También podría gustarte