Upload
lythuan
View
219
Download
0
Embed Size (px)
Citation preview
Análisis Estadísticos con RIbon Martínez
http://fdesnedecor.wordpress.com/
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 1/22
Los datos
Vamos a plantear una serie de análisis estadísticos con R, para los cuales
vamos a utilizar los datos que vienen por defecto en las instalaciones de R,iris.
> iris[c(1:3, 51:53, 101:103), ]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
51 7.0 3.2 4.7 1.4 versicolor
52 6.4 3.2 4.5 1.5 versicolor
53 6.9 3.1 4.9 1.5 versicolor
101 6.3 3.3 6.0 2.5 virginica
102 5.8 2.7 5.1 1.9 virginica
103 7.1 3.0 5.9 2.1 virginica
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 2/22
Descriptivos - La función summary
> summary(iris$Sepal.Length)
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.300 5.100 5.800 5.843 6.400 7.900
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 3/22
Descriptivos - La función summary
> tapply(iris$Sepal.Length, INDEX = iris$Species, FUN = "summary")
$setosa
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.300 4.800 5.000 5.006 5.200 5.800
$versicolor
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.900 5.600 5.900 5.936 6.300 7.000
$virginica
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.900 6.225 6.500 6.588 6.900 7.900
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 4/22
Descriptivos - La función quantile
> quantile(iris$Sepal.Length)
0% 25% 50% 75% 100%
4.3 5.1 5.8 6.4 7.9
> quantile(iris$Sepal.Length, probs = c(0, 0.2, 0.4, 0.6, 0.8, 1))
0% 20% 40% 60% 80% 100%
4.30 5.00 5.60 6.10 6.52 7.90
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 5/22
Descriptivos - La función quantile
> tapply(iris$Sepal.Length, INDEX = iris$Species, FUN = "quantile")
$setosa
0% 25% 50% 75% 100%
4.3 4.8 5.0 5.2 5.8
$versicolor
0% 25% 50% 75% 100%
4.9 5.6 5.9 6.3 7.0
$virginica
0% 25% 50% 75% 100%
4.900 6.225 6.500 6.900 7.900
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 6/22
Descriptivos - La función fivenum
la función fivenum devuelve los cinco números de Tukey (mínimo, primer
cuartil, mediana, tercer cuartil, máximo) de los datos.
> fivenum(iris$Sepal.Length)
[1] 4.3 5.1 5.8 6.4 7.9
> tapply(iris$Sepal.Length, INDEX = iris$Species, FUN = "fivenum")
$setosa
[1] 4.3 4.8 5.0 5.2 5.8
$versicolor
[1] 4.9 5.6 5.9 6.3 7.0
$virginica
[1] 4.9 6.2 6.5 6.9 7.9
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 7/22
Descriptivos - Más funciones
Hay muchísimas funciones en R que permiten describir una distribución
mediante estadísticos: mean, media, IQR, boxplot.stat, range, min, max, . . .
Hay otras funciones descriptivas, por ejemplo el coeficiente de asimetría, que
no se encuentran en los paquetes básicos . . . , pero, un momento, nosotros yasabemos programar:
> skewness = function(x) {
+ x <- x[!is.na(x)]
+ m3 = mean((x - mean(x))^3)
+ skew = m3/(sd(x)^3)
+ skew
+ }
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 8/22
Distribuciones de probabilidad
Un uso común es proporcionar un amplio conjunto de funciones estadísticas.
Las funciones están previstas para evaluar la función de densidad deprobabilidad, la función de distribución acumulada P (X ≤ x) y la función
cuantil (dado q, el valor más pequeño x tal que P (X ≤ x) > q), y simular unadistribución.
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 9/22
Distribuciones de probabilidad
Un uso común es proporcionar un amplio conjunto de funciones estadísticas.
Las funciones están previstas para evaluar la función de densidad deprobabilidad, la función de distribución acumulada P (X ≤ x) y la función
cuantil (dado q, el valor más pequeño x tal que P (X ≤ x) > q), y simular unadistribución.
En general, las funciones de probabilidad en R vienen dadas por el nombrepor el que se las conoce en inglés (normal = norm, poisson = pois, binomial =
binom, . . . ) y vienen precedidas por un prefijo según los valores a obtener, asítenemos d, dnorm si queremos valores de una distribución normal, p, pnorm si
queremos valores de probabilidad, q, qnorm si queremos valores cuantiles y r,rnorm si queremos valores aleatorios de una distribución normal.
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 9/22
Distribuciones de probabilidad
Distribucion Normal
Tenemos las siguientes opciones:
dnorm(x,mean = 0, sd = 1, log = FALSE)
pnorm(q,mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
qnorm(p,mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
rnorm(n,mean = 0, sd = 1)
> dnorm(5, mean = 3, sd = 1)
[1] 0.05399097
> rnorm(5, mean = 5, sd = 5)
[1] 9.977295 8.089685 7.488384 12.769087 14.684620
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 10/22
Distribuciones de probabilidad
Distribucion Uniforme
Tenemos las siguientes opciones:
dunif(x,min = 0,max = 1, log = FALSE)
punif(q,min = 0,max = 1, lower.tail = TRUE, log.p = FALSE)
qunif(p,min = 0,max = 1, lower.tail = TRUE, log.p = FALSE)
runif(n,min = 0,max = 1)
> runif(6, min = 10, max = 20)
[1] 12.76328 16.65845 10.36147 15.08264 12.42076 10.94568
> qunif(c(0.25, 0.5, 0.75), min = 0, max = 1)
[1] 0.25 0.50 0.75
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 11/22
Distribuciones de probabilidad
Distribucion de Poisson
Tenemos las siguientes opciones:
dpois(x, lambda, log = FALSE)
ppois(q, lambda, lower.tail = TRUE, log.p = FALSE)
qpois(p, lambda, lower.tail = TRUE, log.p = FALSE)
rpois(n, lambda)
> rpois(6, lambda = 10)
[1] 8 9 8 13 7 6
> qpois(c(0.25, 0.5, 0.75), lambda = 5)
[1] 3 5 6
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 12/22
Distribuciones de probabilidad
Y así con un montón de distribuciones más: beta, binom, cauchy, chisq, exp, f,
gamma, geom, hyper, lnorm, logis, nbinom, t, weibull, wilcox, . . .
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 13/22
Test Estadísticos - Dos muestras
Uno de los análisis más comunes es la comparación de medias de dos
poblaciones. vamos a realizar un análisis completo de una muestra en R.
Consideremos el siguiente conjunto de observaciones. Son los tiempos de
espera en minutos hasta que nos traen la comida en dos restaurantes
Restaurante A:
1.40 3.23 1.60 0.91 2.28 2.49 0.74 0.51 3.15 2.47Restaurante B:
3.18 1.96 1.89 3.31 3.93 1.91 3.64 2.78 2.48 2.03
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 14/22
Test Estadísticos - Dos muestras
Lo primero, un análisis gráfico para ver los tiempos en los dos restaurantes.
> boxplot(A, B, col = c("red", "green"))
1 2
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 15/22
Test Estadísticos - Dos muestras
Tras una primera comprobación visual, tenemos que los tiempos de espera no
parecen iguales, pero ¿esta diferencia gráfica es significativa?, ¿podemosafirmar que los tiempos son diferentes y que las diferencias no son debidas a
la dispersión propia de las medidas?
Para comprobar la igualdad de medias, realizamos un t-test no pareado.
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 16/22
Test Estadísticos - Dos muestras
> t.test(A, B, paired = FALSE)
Welch Two Sample t-test
data: A and B
t = -2.1067, df = 17, p-value = 0.0503
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-1.667230785 0.001230785
sample estimates:
mean of x mean of y
1.878 2.711
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 17/22
Test Estadísticos - Dos muestras
La prueba indica que no hay diferencias significativas, asumiendo normalidad.
Nos da un p-valor de 0.0503 por lo que no hay evidencias para rechazar lahipótesis nula H0 y aceptamos que la verdadera diferencia de medias es igual
a 0, es decir, tardan lo mismo en los dos restaurantes.
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 18/22
Test Estadísticos - Dos muestras
La prueba indica que no hay diferencias significativas, asumiendo normalidad.
Nos da un p-valor de 0.0503 por lo que no hay evidencias para rechazar lahipótesis nula H0 y aceptamos que la verdadera diferencia de medias es igual
a 0, es decir, tardan lo mismo en los dos restaurantes.
Pero ... ¿está bien aplicado el test? En la salida del test nos dice Welch Two
Sample t-test y es que por defecto R no asume varianzas iguales en lasmuestras y aplica el test de Welch. Realizamos y test F para probar la
igualdad de varianzas.
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 18/22
Test Estadísticos - Dos muestras
> var.test(A, B)
F test to compare two variances
data: A and B
F = 1.6403, num df = 9, denom df = 9, p-value = 0.4724
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.4074332 6.6039331
sample estimates:
ratio of variances
1.640324
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 19/22
Test Estadísticos - Dos muestras
La prueba nos da un p-valor de 0.472 por lo que no hay evidencias pararechazar la hipótesis H0, es decir, asumimos que la razón de varianzas es
igual a 1.
Por lo tanto, hemos aplicado mal el t-test ya que hemos asumido como
hipótesis que ambas muestras tienen varianzas diferentes.
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 20/22
Test Estadísticos - Dos muestras
> t.test(A, B, paired = FALSE, var.equal = TRUE)
Two Sample t-test
data: A and B
t = -2.1067, df = 18, p-value = 0.04944
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-1.663714776 -0.002285224
sample estimates:
mean of x mean of y
1.878 2.711
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 21/22
Test Estadísticos - Dos muestras
Ahora la prueba indica que hay diferencias significativas, asumiendo
normalidad. Nos da un p-valor de 0.0494 por lo que hay evidencias pararechazar la hipótesis nula H0 y aceptamos que la verdadera diferencia de
medias no es igual a 0, es decir, no tardan lo mismo.
´ µ ¸¹ ½ http://fdesnedecor.wordpress.com/, Agosto 2011 – p. 22/22