M. Vargas Jim enez 2012/02/11 - UGRmvargas/eccttTema2.pdf · 2012. 5. 8. · ecdf(x) x Fn(x) l l l...
Transcript of M. Vargas Jim enez 2012/02/11 - UGRmvargas/eccttTema2.pdf · 2012. 5. 8. · ecdf(x) x Fn(x) l l l...
Estadıstica para las Ciencias del Trabajo
M. Vargas Jimenez
2012/02/11
Indice general
2. Examen Exploratorio de los datos. Estadısticos univariantes.Distribuciones de probabilidad. Analisis de tablas de contin-gencia, tablas multidimensionales. Implementacion con R 52.1. Funciones estadısticas R mas frecuentes . . . . . . . . . . . . . 5
2.1.1. Resumen de una variable . . . . . . . . . . . . . . . . . 52.1.2. Generacion de variables con ave() . . . . . . . . . . . . 82.1.3. Correlacion entre variables . . . . . . . . . . . . . . . . 9
2.2. Distribuciones de modelos de probabilidad . . . . . . . . . . . 92.2.1. Funciones para las distribuciones ... . . . . . . . . . . . 102.2.2. Muestreo y generacion de valores... . . . . . . . . . . . 11
2.3. Construccion y manipulacion de tablas . . . . . . . . . . . . . 132.3.1. Creacion de una tabla a partir ... . . . . . . . . . . . . 132.3.2. Presentacion de tablas en frecuencias ... . . . . . . . . . 142.3.3. Adicion de marginales a una tabla... . . . . . . . . . . 152.3.4. Calculo de frecuencias condicionadas... . . . . . . . . . 162.3.5. Conversion de tabla en data.frame . . . . . . . . . . . . 182.3.6. Creacion de tablas a partir... . . . . . . . . . . . . . . . 192.3.7. Tablas de mas de 2 dimensiones . . . . . . . . . . . . . 222.3.8. Test de independencia chi-cuadrado... . . . . . . . . . . 29
2.4. Graficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.4.1. Grafico de barras . . . . . . . . . . . . . . . . . . . . . 312.4.2. Histograma . . . . . . . . . . . . . . . . . . . . . . . . 352.4.3. Grafico caja . . . . . . . . . . . . . . . . . . . . . . . . 392.4.4. Grafico de sectores . . . . . . . . . . . . . . . . . . . . 412.4.5. Grafico de tallo y hojas . . . . . . . . . . . . . . . . . . 422.4.6. Otros graficos y opciones graficas . . . . . . . . . . . . 432.4.7. Division del dispositivo de ... . . . . . . . . . . . . . . . 492.4.8. Graficos para cuantiles de... . . . . . . . . . . . . . . . 512.4.9. Guardar grafico corriente en... . . . . . . . . . . . . . . 522.4.10. Graficos con el paquete lattice . . . . . . . . . . . . . . 52
3
4 INDICE GENERAL
2.4.11. Graficos para datos multivariantes . . . . . . . . . . . . 53
Capıtulo 2
Examen Exploratorio de losdatos. Estadısticosunivariantes. Distribuciones deprobabilidad. Analisis de tablasde contingencia, tablasmultidimensionales.Implementacion con R
2.1. Funciones estadısticas R mas frecuentes
quantile(),ave(), cor(), median(), mean(), var(), sd(), range(), summary()
Recordaremos las tecnicas estadısticas descriptivas aplicandolas con R.Ası mismo usaremos los modelos de de probabilidad mas populares paradeterminar cuantiles y probabilidades. En las tablas de contingencia veremosejemplos de contrastes chi-cuadrado y calculo de candicionadas y marginales.Manejaremos tablas multidimensionales con R mediante ejemplos, donde sedeterminara si existe o no asociacion entre pares de variables.
2.1.1. Resumen de una variable
5
6CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
Podemos realizar resumenes de variables mediante valores numerıcos, ta-blas y graficos.
Resumen numerico de la variable cuantitativa x
summary(variable)Ejemplo
> x=1:10
> summary(x) # Resumen numerico de la variable cuantitativa x
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.00 3.25 5.50 5.50 7.75 10.00
Cuantiles de una variable
quantile(variable) permite determinar cuantiles de orden dado.quantile(Variable, vector con ordenes de los cuantiles)Ejemplo
> x=1:40
> ordencuan=seq(0.1,0.9,0.1) # genera un vector con el orden de los cuantiles
> quantile(x,ordencuan) #cuantiles de la variable x
10% 20% 30% 40% 50% 60% 70% 80% 90%
4.9 8.8 12.7 16.6 20.5 24.4 28.3 32.2 36.1
Agrupacion de variable en intervalos
cut(var, br=n1) Agrupa var en n1 clases o intervalos.Genera una variable de la misma longitud que var, pero cuyos valores son
intervalos de clases, obtenidos al dividir los valores de var en n1 intervalos.
2.1. FUNCIONES ESTADISTICAS R MAS FRECUENTES 7
Ejemplo
> x=50:55
> length(x) #longitud de la variable
[1] 6
> nx=cut(x, br=2)
> length(nx)
[1] 6
> nx
[1] (50,52.5] (50,52.5] (50,52.5] (52.5,55] (52.5,55] (52.5,55]
Levels: (50,52.5] (52.5,55]
> table(nx)
nx
(50,52.5] (52.5,55]
3 3
Curva acumulativa
ecdf(var) curva acumlativa de variable var
> x=rnorm(20)
> plot(ecdf(x))
8CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
−3 −2 −1 0 1
0.0
0.2
0.4
0.6
0.8
1.0
ecdf(x)
x
Fn(
x)
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Otros resumenes de las variable
IQR(x) Calcula el rango intercuartılico del vector x
max(var) Calcula el maximo de var
mean(var) Calcula la media de un vector o para varias variables de undata frame
median(var) Calcula la mediana de un vector o para varias variables deun data frame
min(var) Calcula el mınimo de var
scale(var) estandariza la variable var
stem(var) grafico de tallo y hojas de la variable var
2.1.2. Generacion de variables con ave()
ave(variable, factor, funcion)
2.2. DISTRIBUCIONES DE MODELOS DE PROBABILIDAD 9
ave(var, factor1, factor2,..., FUN= funcion) Genera una variable de lamisma longitud que var que contiene el resultado de calcular una funcion,como por ejemplo media, mediana, mın, max, etc., para la variable var, enlos subgrupos formados por las combinaciones de los factores.
EjemploGenera una variable de la misma longitud de Edad que contiene medias
de los grupos formados con el factor Sexo.
> dtf
Edad Sexo
1 20 m
2 25 m
3 30 m
4 28 m
5 40 h
6 50 h
> ave(dtf$Edad,dtf$Sexo,mean(dtf$Edad))
[1] 25.75 25.75 25.75 25.75 45.00 45.00
2.1.3. Correlacion entre variables
cor(x,y) Determina la correlacion entre los vectores x e y. O matrices x ey
cor(dataframeomatriz) Determina las correlaciones entre las variables deldata frame o matriz
2.2. Distribuciones de modelos de probabili-
dad
10CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
2.2.1. Funciones para las distribuciones de modelos de
probabilidad
Normal norm(), binomial binom(), poison pois(), uniforme unif(), expo-nencial exp(), t de Student (t), Chi-cuadrado chisq(), etc.
Un modelo de probabilidad de una variable aleatoria tendra informacionsobre:
Funcion de densidad o probabilidad (dnormal, dbinom, dunif, dpois,...)
Funcion de distribucion (pnormal, punif,...)
Cuantiles (qnormal, qpois, qunif,...)
Generacion aleatoria de muestras (rnomal, rpois, ...)
Para seleccionar estas funciones se toma el nombre del modelo precedidode las letas d, p, q y r.
dnombremodelo determina la funcion de densidad, f(x), para un valorx de la variable
pnombremodelo permite obtener p[X <x] para un valor de x. Si elargumento lower.tail=F calcula la probabilidad del suceso contrario(cola a la derecha)
qnombremodelo determina el cuantil de un orden p
rnombremodelo selecciona una muestra aleatoria del modelo.
Por ejemplo, para modelo binomial los argumentos size y prob son numerode pruebas y probabilidad de exito, respectivamente:
dbinom(x, size, prob,...)pbinom(q, size, prob, lower.tail = TRUE,...)qbinom(p, size, prob, lower.tail = TRUE,...)rbinom(n, size, prob, lower.tail = TRUE,...) El parametro n es el tamano
de muestraEjemplopbinom(14,20,0.4) determina la probabilidad de ser menor o igual a 14 en
B(20,0.4)
> pbinom(14,20,0.4)
2.2. DISTRIBUCIONES DE MODELOS DE PROBABILIDAD 11
[1] 0.9983885
EjemploCalculo de cuantiles de la distribucion N(0,1)
> ordencuan=seq(0.1,0.8,0.2)
> qnorm(ordencuan,0,1) #cuantiles de la distribucion N(0,1)
[1] -1.2815516 -0.5244005 0.0000000 0.5244005
> qnorm(c(0.25,0.5,0.75),50,10)#cuantiles de la distribucion N(50,10)
[1] 43.2551 50.0000 56.7449
2.2.2. Muestreo y generacion de valores aleatorios
sample(), runif(),rbinom(), rnorm(),...Seleccion de una muestra al azar:
sample(Vector de donde se selecciona, numero de selecciones, repla-ce=T)
Ejemplo
> sample(0:10,20,replace=T)
[1] 7 8 6 7 6 6 3 7 3 1 6 5 5 3 0 7 2 2 1 1
Ejemplo
Selecciona 10 valores de una variable X con distribucion de probabilidaddiscreta que toma los valores 1 a 3 con las siguientes probabilidadesProb(X=1)=0.7; Prob(X=2)=0.2 y Prob(X=3)=0.1
> sample(1 :3,10,prob=c(0.7,0.2,0.1),replace=T)
12CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
[1] 3 1 1 2 1 1 2 1 1 1
Seleccion de una distribucion uniforme.
El generador pseudo-aleatorio uniforme de numeros en R es runif().
Ejemplo
> runif(5) # selecciona 5 numeros reales entre 0 y 1
[1] 0.58219317 0.34036438 0.09576015 0.34157619 0.15305337
> matrix(runif(3*5),3,5) # construye una matriz con 15
[,1] [,2] [,3] [,4] [,5]
[1,] 0.07370804 0.6969644 0.8037797 0.91621709 0.9520561
[2,] 0.54000635 0.9299076 0.6766586 0.76783546 0.4223230
[3,] 0.58405985 0.7815784 0.3633767 0.08357606 0.1984924
> # num reales entre 0 y 1
Ejemplo
runif(10,20,30) 10 numeros reales de distribucion uniforme en intervalo(20,30)
Seleccion de un modelo normal
Ejemplo
> x=rnorm(100,20,4) #muestra de 100 valores de la N(20,4)
> rnorm(3,4,1) # 3 valores de la distribucion N(4,1)
[1] 4.336644 4.235742 5.141477
Seleccion de una distribucion binomial
Ejemplo
Generacion de una muestra de la distribucion normal
2.3. CONSTRUCCION Y MANIPULACION DE TABLAS 13
> rbinom(5,10,0.5)# 5 valores de la distribucion B(0.5,10)
[1] 4 2 4 6 5
2.3. Construccion y manipulacion de tablas
Funciones usadas con tablas:
table(), ftable(), addmargins(), prop.table(), xtabs(), data.frame(), mar-gin.table(), chisq.test(), summary()
2.3.1. Creacion de una tabla a partir de datos sin ta-
bular
La funcion table() permite construir tablas a partir de vectores o da-ta.frames. Unidimensionales y multidimensionales. En frecuencias absolutas.
Ejemplo
Tablas de frecuencias unidimensionales para las variables o vectores x e y
> x=sample(1:5,200,replace=T)# vector de longitud 200 con valores de 1 a 5
> table(x)
x
1 2 3 4 5
34 38 52 34 42
> # vector de longitud 10 de caracteres
> y=c("h","h","h","m","m","h","h","m","m","h")
> table(y)
14CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
y
h m
6 4
2.3.2. Presentacion de tablas en frecuencias relativas
La funcion prop.table() permite expresar tablas dadas en frecuecias ab-solutas, a frecuencias relativas. Unidimensionales o multidimensionales.
La funcion ftable() permite expresar tablas de 2 o mas dimensiones en unformato de mejor presentacion que table. Tambien crear tablas con 2 o masvectores o data.frames.
Ejemplo Tabla unidimensional en frecuencias relativas y tabla de frecuen-cias bidimensional para las variables o vectores x e y
> # Tabla unidimensional en frecuencias absolutas
> x=sample(1:3,200,replace=T)# vector de longitud 200 con valores de 1 a 3
> t=table(x)
> t
x
1 2 3
77 66 57
> # Tabla en frecuencias relativas
> prop.table(t)
x
1 2 3
0.385 0.330 0.285
2.3. CONSTRUCCION Y MANIPULACION DE TABLAS 15
> # vector de longitud 200 de caracteres
> y=sample(c("h","m"),200,replace=T)
> t2=table(x,y)
> t2
y
x h m
1 41 36
2 34 32
3 27 30
> ftable(t2) # Una formato mejorado
y h m
x
1 41 36
2 34 32
3 27 30
2.3.3. Adicion de marginales a una tabla de contingen-
cia
La funcion addmargins() permite anadir columnas y filas marginales a latabla.
Ejemplo
> t2
16CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
y
x h m
1 41 36
2 34 32
3 27 30
> addmargins(t2)# A~nade columna y fila marginal
y
x h m Sum
1 41 36 77
2 34 32 66
3 27 30 57
Sum 102 98 200
> # addmargins(t2,1) a~nade solo fila marginal
> # addmargins(t2,2) a~nade solo columna marginal
2.3.4. Calculo de frecuencias condicionadas en la tabla
La funcion prop.table() permite dividir por totales fila, totales colum-na o totales capas en tablas de mas de 2 dimensiones, permitiendo obtenerdistribuciones en distintas condiciones.
Ejemplo
> t2
y
x h m
2.3. CONSTRUCCION Y MANIPULACION DE TABLAS 17
1 41 36
2 34 32
3 27 30
> # Distribuciones condicionadas
> # Frecuencias relativas dividiento por totales de fila
> prop.table(t2,1)
y
x h m
1 0.5324675 0.4675325
2 0.5151515 0.4848485
3 0.4736842 0.5263158
> pt2=prop.table(t2,1)
> round(addmargins(pt2,2),3) # a~nade columna marginal y redondea a 3 dıgitos
y
x h m Sum
1 0.532 0.468 1.000
2 0.515 0.485 1.000
3 0.474 0.526 1.000
> # Frecuencias relativas dividiento por totales de columna
> prop.table(t2,2)
y
x h m
18CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
1 0.4019608 0.3673469
2 0.3333333 0.3265306
3 0.2647059 0.3061224
2.3.5. Conversion de tabla en data.frame
Para convertir una tabla en un data.frame usamos la funcion data.frame()El data.frame estara formado por tantas columnas como variables en la
tabla, mas una adicional que contendra las frecuencias. Por defecto, la deno-mina Freq. Las filas contienen las combinaciones de categorias de las variablesen la tabla.
Ejemplo
> t2
y
x h m
1 41 36
2 34 32
3 27 30
> # Convierte tabla t2 en data.frame:
> dd=data.frame(t2)
> dd
x y Freq
1 1 h 41
2 2 h 34
3 3 h 27
2.3. CONSTRUCCION Y MANIPULACION DE TABLAS 19
4 1 m 36
5 2 m 32
6 3 m 30
2.3.6. Creacion de tablas a partir de data.frames
Dado un data.frame formado por factores, se puede construir la tabladirectamente mediante table o ftable.
Ejemplo
> d=data.frame(x,y) #data.frame formado por 200 filas y 2 columnas
> head(d)
x y
1 3 m
2 2 m
3 1 m
4 2 h
5 2 h
6 2 m
> table(d)
y
x h m
1 41 36
2 34 32
3 27 30
20CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
> ftable(d)
y h m
x
1 41 36
2 34 32
3 27 30
Nota: Observe que los data.frames dd y d tienen la misma informacion, perodd contiene solo 6 filas y una columna de frecuencias.
Observaciones: ftable muestra una mejor presentacion de las tablas.Conversion del data.frame condensado (con columna de frecuencias) en
tabla. Usaremos, en este caso, la funcion xtabs().Ejemplo
> # data.frame dd con columna de frecuencias
> dd
x y Freq
1 1 h 41
2 2 h 34
3 3 h 27
4 1 m 36
5 2 m 32
6 3 m 30
> # Tabla bidimensional
> xtabs(Freq~x+y,data=dd)
y
x h m
2.3. CONSTRUCCION Y MANIPULACION DE TABLAS 21
1 41 36
2 34 32
3 27 30
> #Tabla marginal de x
> xtabs(Freq~x,data=dd)
x
1 2 3
77 66 57
> #Tabla marginal de y
> xtabs(Freq~y,data=dd)
y
h m
102 98
Ejemplo
> # Data.frame datos con columna de frecuencias (Personas)
> datos
sexo peso Personas
1 Hombre Alto 20
2 Mujer Alto 5
3 Hombre Bajo 40
4 Mujer Bajo 55
22CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
> # tabla de frecuencias con xtabs
> xtabs(Personas~sexo+peso,data=datos)
peso
sexo Alto Bajo
Hombre 20 40
Mujer 5 55
2.3.7. Tablas de mas de 2 dimensiones
El tratamiento es similar. Usaremos el ejemplo Titanic que proporcionaR. Use help() para mas informacion sobre los datos.
Hemos visto que la funcion ftable presenta un objeto tabla en formatopreferible al de table. Esto se aprecia mejor en tablas multidimensionales(que usa capas cuando hay mas de dos variables). Tambien crea un objetotabla a partir de variables sin tabular.
ftable(objetotable, row.vars=nº o nombres de variables del objeto, col.vars=nº o nombres de variables del objeto)
Presenta el objeto table con las filas y columnas especificadas por su nu-mero, pueden ser especificadas bien por numero o por nombre entre comillas.
ftable(var1, var2, var3, ...) tabula las variables categoricas var1, var2,var3, ...
Ejemplo
> ftable(Titanic) # Formato de presentacion de la tabla (sin capas)
Survived No Yes
Class Sex Age
1st Male Child 0 5
Adult 118 57
Female Child 0 1
Adult 4 140
2.3. CONSTRUCCION Y MANIPULACION DE TABLAS 23
2nd Male Child 0 11
Adult 154 14
Female Child 0 13
Adult 13 80
3rd Male Child 35 13
Adult 387 75
Female Child 17 14
Adult 89 76
Crew Male Child 0 0
Adult 670 192
Female Child 0 0
Adult 3 20
> # la ultima variable presenta sus categorıas en columnas
> # las combinaciones de las otras variables en filas: la primera variable
> # varıa sus categorıas mas lentamente, la ultima variable, las varıa primero
Ejemplo
> Titanic
, , Age = Child, Survived = No
Sex
Class Male Female
1st 0 0
2nd 0 0
3rd 35 17
24CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
Crew 0 0
, , Age = Adult, Survived = No
Sex
Class Male Female
1st 118 4
2nd 154 13
3rd 387 89
Crew 670 3
, , Age = Child, Survived = Yes
Sex
Class Male Female
1st 5 1
2nd 11 13
3rd 13 14
Crew 0 0
, , Age = Adult, Survived = Yes
Sex
Class Male Female
1st 57 140
2.3. CONSTRUCCION Y MANIPULACION DE TABLAS 25
2nd 14 80
3rd 75 76
Crew 192 20
> ftable(Titanic,row.vars=1:2,col.vars="Survived") # marginal con combinaciones de las
Survived No Yes
Class Sex
1st Male 118 62
Female 4 141
2nd Male 154 25
Female 13 93
3rd Male 422 88
Female 106 90
Crew Male 670 192
Female 3 20
> NA
[1] NA
> # columnas.
Ejemplos:
> # Variable 2 en filas y variable 1 en columnas
> ftable(Titanic,col.vars=1,row.vars=2) #Colapsa las variables del data frame (marginal).
Class 1st 2nd 3rd Crew
Sex
26CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
Male 180 179 510 862
Female 145 106 196 23
> # Todas las combinaciones de las 4 variables en filas y 1 columna con frecuencias
> ftable(Titanic,row.vars=1:4)
Class Sex Age Survived
1st Male Child No 0
Yes 5
Adult No 118
Yes 57
Female Child No 0
Yes 1
Adult No 4
Yes 140
2nd Male Child No 0
Yes 11
Adult No 154
Yes 14
Female Child No 0
Yes 13
Adult No 13
Yes 80
3rd Male Child No 35
Yes 13
Adult No 387
2.3. CONSTRUCCION Y MANIPULACION DE TABLAS 27
Yes 75
Female Child No 17
Yes 14
Adult No 89
Yes 76
Crew Male Child No 0
Yes 0
Adult No 670
Yes 192
Female Child No 0
Yes 0
Adult No 3
Yes 20
Conversion de la tabla en data.frame: Ejemplo
> data.frame(Titanic)
Class Sex Age Survived Freq
1 1st Male Child No 0
2 2nd Male Child No 0
3 3rd Male Child No 35
4 Crew Male Child No 0
5 1st Female Child No 0
6 2nd Female Child No 0
7 3rd Female Child No 17
8 Crew Female Child No 0
28CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
9 1st Male Adult No 118
10 2nd Male Adult No 154
11 3rd Male Adult No 387
12 Crew Male Adult No 670
13 1st Female Adult No 4
14 2nd Female Adult No 13
15 3rd Female Adult No 89
16 Crew Female Adult No 3
17 1st Male Child Yes 5
18 2nd Male Child Yes 11
19 3rd Male Child Yes 13
20 Crew Male Child Yes 0
21 1st Female Child Yes 1
22 2nd Female Child Yes 13
23 3rd Female Child Yes 14
24 Crew Female Child Yes 0
25 1st Male Adult Yes 57
26 2nd Male Adult Yes 14
27 3rd Male Adult Yes 75
28 Crew Male Adult Yes 192
29 1st Female Adult Yes 140
30 2nd Female Adult Yes 80
31 3rd Female Adult Yes 76
32 Crew Female Adult Yes 20
2.3. CONSTRUCCION Y MANIPULACION DE TABLAS 29
2.3.8. Test de independencia chi-cuadrado para tablas
de contingencia
Funcion chisq.test()Permite realizar contraste de hipotesis de independencia de las variables
en la tabla.EjemploContraste la hipotesis nula a un nivel de significacion α = 0,01H0 : x e y son independientesH1 : x e y no son independientes
> t2
y
x h m
1 41 36
2 34 32
3 27 30
> chisq.test(t2) # determina el test chi-cuadrado para la tabla bidimensional t2
Pearson's Chi-squared test
data: t2
X-squared = 0.4634, df = 2, p-value = 0.7932
Decision: el p−valor = 0,7932,≥ α = 0,01, por lo que no puede rechazarsela hipotesis nula de independencia de las variables.
Ejemplo Clasificacion de mayores de 16 anos en Granada segun relacioncon actividad y sexo. Contraste la hipotesis de independencia de las variablesRelActiv y Sexo.
> # Construccion de tabla con dataframe con frecuencias
> tgr=xtabs(P2005~Sexo+RelActiv,data=GR1)
> tgr
30CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
RelActiv
Sexo inactivo ocupado parado
Hombre 127200 200279 19645
Mujer 218495 113607 26851
> chisq.test(tgr)
Pearson's Chi-squared test
data: tgr
X-squared = 48974.94, df = 2, p-value < 2.2e-16
Decision: el p− valor = 0,≤ α = 0,05, por lo que se rechaza la hipotesisnula de independencia de las variables.
Ejemplo
Test chi-cuadrado con las variables seleccionadas del data.frame
chisq.test(b\$catlab, b\$sexo)
chisq.test(b\$sexo, b\$minorıa)\$expected
EjemploDivide el salario en 2 clases y realiza test de la tabla 2x2
chisq.test(salario > 28880, b$sexo)
EjemploPermite presentar o acceder a los valores de las frecuencias esperadas bajo
la hipotesis de independencia, ası como los observados y resiuos (diferenciasentre freccia observada y esperada)
a= chisq.test(table(datos))
a$expected # presenta valores esperados
2.4. GRAFICOS 31
a$observed # valores observados
a$residuals # residuos
2.4. Graficos
Entre los graficos mas frecuentes se encuentran los que se describen porlas funciones siguientes:
barplot(), hist(), boxplot(), plot(), stem(), pie()
Otras funciones utiles para graficos son:
savePlot(), segments(), plot(ecdf()), abline(),lines()
2.4.1. Grafico de barras
barplot() es muy util para usar con tablas cuyas distribuciones presentanpocas modalidades distintas.
barplot(vecalturas, col = colorbarras”, main=”titulografico”,...) grafico debarras indicando el color y tıtulo.
barplot(matrixalturas, col = color”, main=”titulografico”,...) varios grafi-cos de barras; cada vector de la matriz matrixalturas representa las alturasde una serie de barras. Pueden ir apiladas o separadas, dependiendo del ar-gumento beside= T o F.
barplot(tablefrecUnidi,col=colobarrasr”,main=”TituloGrafico”)
plot(tablafrecuencunidim, type = ”h”, col = numcolor, lwd = 5, main= ”tituloGrafico”, ylab = .etiquetaejey”, xlab = .etiquetaejex”, ...) grafico debarras
Ejemplo
Grafico de barras
> barplot(c(10,2,4),names.arg=c("A","B","C"),col="orange")
32CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
A B C
02
46
810
Ejemplo
Representacion en grafico de barras del objeto tabla t
> Sexo=rep(c("hombre","mujer"),c(25,20))
> t=table(Sexo)
> barplot(t,col=c("blue","pink"),main="Distribucion del sexo")
2.4. GRAFICOS 33
hombre mujer
Distribución del sexo
05
1015
2025
Ejemplo
Grafico de barras para tabla bidimensional
> Edad=c(30,rep(20,10),rep(25,20),rep(30,14))
> t=table(Sexo,Edad)
> barplot(t,beside=F,legend=rownames(t))
34CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
20 25 30
mujerhombre
05
1015
20
Ejemplo
Grafico de barras para tabla bidimensional
> barplot(t(t),beside=F,legend=colnames(t)) # para tabla bidimensional
2.4. GRAFICOS 35
hombre mujer
302520
05
1015
2025
2.4.2. Histograma
Funcion hist(Var, nclass= num,...) establece el numero de clases
hist(Var, br= num,...) indica los cortes para las clases en el vector num
Ejemplo
> x=rnorm(20,3,1)
> hist(x,nclass=3,col="orange",main="histograma")
36CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
histograma
x
Fre
quen
cy
0 1 2 3 4 5 6
02
46
810
1214
Ejemplo
> hist(x,br=quantile(x),col="grey")
2.4. GRAFICOS 37
Histogram of x
x
Den
sity
1 2 3 4 5
0.0
0.1
0.2
0.3
0.4
EjemploHistograma con curva normal
> x=rnorm(100,4,2)
> hist(x, freq=FALSE, col="grey", main="distribucion normal")
> points(x, dnorm(x, mean=mean(x),sd=sd(x)),col="red")
Ejemplo Propiedades del histograma, sin grafico.
> hist(x,plot=F)
$breaks
[1] 0 1 2 3 4 5 6 7 8 9
$counts
38CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
[1] 5 11 11 24 17 14 12 5 1
$intensities
[1] 0.05 0.11 0.11 0.24 0.17 0.14 0.12 0.05 0.01
$density
[1] 0.05 0.11 0.11 0.24 0.17 0.14 0.12 0.05 0.01
$mids
[1] 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5
$xname
[1] "x"
$equidist
[1] TRUE
attr(,"class")
[1] "histogram"
Ejemplo
> x1=rnorm(500,5,1)
> x2=rnorm(500,10,2)
> x=x1+x2
> mean(x)
2.4. GRAFICOS 39
[1] 15.04366
> sd(x)
[1] 2.236826
> hist(x,col=7,prob=T)
> lines(seq(6,24,0.1),dnorm(seq(6,24,0.1),15,sqrt(5)))
Histogram of x
x
Den
sity
10 15 20
0.00
0.05
0.10
0.15
2.4.3. Grafico caja
Funcion boxplot()boxplot(formula, data = datos, ..., subset=operadorlogico, col=color”)boxplot(formVarFactor,col=color”,names=.EtiquetasFactorParaCajas”,main=”TituloGrafico”)
boxplot(, data=misdatos, subset=sexo==”h”, col=”blue”)
40CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
Graficos caja. Uno por cada nivel del factor.
boxplot(variable, col=colorcaja”,...) Un grafico caja para la variable
boxplot(split(variable, factor), factor)
Ejemplo
Grafico caja.
> boxplot(x,col="red") # grafico caja de la variable cuantitativa x
●
●
●
●
810
1214
1618
20
Ejemplo
Un grafico caja para cada combinacion de factores
> x=c(rnorm(10),rnorm(10,1.5,1.2))
> f1=factor(c(rep(c(1,2,1,2),c(5,3,7,5))))
> f2=factor(c(rep(1,10),rep(2,10)))
> boxplot(x~f1+f2, col="green") #distingue por factor y
2.4. GRAFICOS 41
1.1 2.1 1.2 2.2
−1
01
23
4
2.4.4. Grafico de sectores
Funcion textcolorredpie()
pie(vectorareasector, labels = names(vectorareasector),...,main=”titulo delgrafico”, ...) Grafico sectores
Ejemplo
Grafico de sectores.
> pie(table(Sexo),main="Clasificacion por Sexo",)
42CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
hombre
mujer
Clasificación por Sexo
2.4.5. Grafico de tallo y hojas
Funcion stem()Ejemplo
> stem(Edad)
The decimal point is at the |
20 | 0000000000
22 |
24 | 00000000000000000000
26 |
2.4. GRAFICOS 43
28 |
30 | 000000000000000
2.4.6. Otros graficos y opciones graficas
Funcion abline()
Dibuja recta sobre grafico existente: abline(intercept, pendiente)
abline(h=altura en el eje) traza una recta horizontal
abline(v=distancia del eje) traza una recta vertical
abline(intercept, pendiente) traza una recta con intercept y pendienteespecificadas
Ejemplo
Trazado de lıneas en el grafico
> x=1:5
> y=x
> plot(x,y)
> abline(h = 1:5, v = 1:5, col = "lightgray", lty=3)# dibuja lineas verticals y horizontales
44CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
●
●
●
●
●
1 2 3 4 5
12
34
5
x
y
Funcion example()
Use la opcion example para ver ejemplos de graficos.
example(barplot)
example(hist)
example(plot)
Funcion segments()
Dibuja segmentos en un grafico existente
segments(coor un extremo, coor de otro extremo, col=, lty=, lwd=, ...)
segments(x0,y0,x1,y1,col=red”,lwd=4) segmento desde el punto (x0,y0)al (x1,y1)
Ejemplo
Trazado de segmentos Grafico de funcion de probabilidad del modelobinomial B(20,0.4)
> plot(0:20,dbinom(0:20,20,0.4),type="n")
> segments(0:20,rep(0,21),0:20,dbinom(0:20,20,0.4),col="red",lty=3,lwd=3)
2.4. GRAFICOS 45
0 5 10 15 20
0.00
0.05
0.10
0.15
0:20
dbin
om(0
:20,
20,
0.4
)
Funcion legend()Dibuja leyendas en un grafico existente Anade a un grafico una leyenda en
la posicion indicada por abscisa y ordenada. Vea ayuda para mas opciones.legend(coordenadas , texto, ...)legend(abscisa, ordenada, ”textoleyenda”)Ejemplo:
coor=locator(1) #espera a que el usuario elija las coordenadas para colocar la etiqueta
legend(coor,c("empırica","teorica"),col=c("red","black"),lwd=c(2,1),lty=c(2,1))
# O bien directamente de forma equivalente mediante
legend(locator(1),c("empırica","teorica"),col=c("red","black"),lwd=c(2,1),lty=c(2,1))
Ejemplolegend(min(x),max(y), c(”hombre”,”mujer”), pch=c(1,2), col=c(1,2))Ejemploa=locator(1) b=c(”Mujer”,”Varon”) legend(a,b,lty=c(1,3),col=c(2,5),text.col=c(2,5),box.lwd=2,
pt.cex=0.7,box.lty=2)
46CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
EjemploGrafico de funcion de probabilidad del modelo binomial B(20,0.4)
> plot(0:20,dbinom(0:20,20,0.4),type="n",ylim=c(0,0.35))
> segments(0:20,rep(0,21),0:20,dbinom(0:20,20,0.4),col="red",lty=3,lwd=3)
> # binomial B(5,0.4)
> segments(0:5,rep(0,6),0:5,dbinom(0:5,5,0.4),col="blue",lty=4,lwd=3)
> legend(list(x=13,y=0.27),c("B(20,0.4)","B(5,0.4)"),lty=c(3,4),lwd=c(3,3),
+ col=c(2,4),text.col=c(2,4),box.lwd=2)
> title("Modelos binomiales",col.main=4)
0 5 10 15 20
0.00
0.05
0.10
0.15
0.20
0.25
0.30
0.35
0:20
dbin
om(0
:20,
20,
0.4
) B(20,0.4)B(5,0.4)
Modelos binomiales
Funcion lines()Dibuja lıneas en un grafico existente:Anade lıneas al grafico de distinto tipo, color y grosorlines(vector de abscisas, vector de ordenadas)
2.4. GRAFICOS 47
lines(coordx,coordy, lty=nºtipolinea, lwd=nºgrueso, ...)gEjemplolines(coordx, coordy,lty=4,col=4,lwd=3) anade lıneas al grafico de tipo
linea 4, color 4 (rojo), grosor 3Funcion grid()Dibuja una rejilla sobre el grafico existente.grid(n1, n2, lwd = 2) rejilla sobre grafico. n1 y n2 indican los numeros
de casillas de las lıneas divisorias verticales y horizontales que apareceran enel grafico. Si se sustituye algun n1 o n2 por NA no se tranzaran mas queverticales u horizontales.
EjemploGraficos con cuadrıcula o grid
> plot(0:1,0:1,type="n")
> grid(3,3,lwd=2,col="green")
> grid(20,20,col = "lightgray", lty = "dotted")
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
0:1
0:1
Funcion points()
48CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
Anade puntos a un grafico existente.points(coordx, coordy = NULL, type = ”p”, pch =num1:num2), col =,
...) Anade puntos a un plot. pch indica con distintos valores numericos lasdistintas formas posibles de representar la series de datos (circulo, triangulo,cruz, etc.)
Funcion text()Anade texto a un grafico existente.text(vcoordx,vcoordy., vtexto, ...) Anade texto al grafico corriente.Funcion title()Anade tıtulo a un grafico existente.title(”textoTitulo”) Anade tıtulo a un grafico existente. Vea argumentos
en ayuda.Funcion axis()Anade ejes a un grafico.axis()Ejemplos:axis(1, c(0.25,0.5,0.75), LETTERS[1:3], col.axis = ”blue”) anade eje abs-
cisas y coloca letrasaxis(2) anade el eje vertical por defectoEjemplo
Edad=rep(0,9)
A~no=2000:2008
plot(Edad,A~no,type="n",axes=F,xlab="Edad",ylab="A~no", ylim=c(2000,2008),xlim=c(0,9))
axis(2,at=c(2000:2008),col.axis=5)
axis(1,at=c(0:9),col.axis=5)
Ejemplo
> plot(0:1,0:1,type="n")
> grid(3,3,lwd=2,col="green")
> grid(20,20,col = "lightgray", lty = "dotted")
> text(0.5,0.5,"Centro",col=4)
> title("Tıtulo del Grafico", col.main="red",cex.main=0.7)
2.4. GRAFICOS 49
> axis(1, c(0.33,0.67),c("1/3","2/3"), col.axis = "blue") #a~nade eje abscisas y coloca letras
> axis(2) #a~nade el eje vertical por defecto
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
0:1
0:1 Centro
Título del Gráfico
1/3 2/3
0.0
0.2
0.4
0.6
0.8
1.0
2.4.7. Division del dispositivo de salida del grafico
Funcion layout()layout(matriz,...)Divide el dispositivo de salida en filas y columnas con numeros que indican
las posiciones en que iran colocandose las figuras que van anadiendose. Losvalores numericos de la matriz van de 1 al numero de figuras. Por ejemplomatriz=matrix(c(1:4),ncol=2). Ocupa los 4 = 2 x 2 espacios: uno para cadafigura. Matriz=matrix(c(1,0,1,2), 2,2, byrow=T)
Ejemplo
layout (matriz(1:4,nrow=2))
Divide el espacio grafico en 2x2 partes (2 filas y 2 columnas) para colocar los graficos
50CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
Funcion mfrow()
Divide el dispositivo de salida grafico en n1 x n2 regiones y restablecedespues.
op=par(mfrow=c(n1,n2)) divide el dispositivo de salida grafico en n1 xn2 regiones instrucciones de graficos, etc. par(op)
Ejemplo
> x=sample(20:25,1000,prob=c(0.1,0.2,0.3,0.3,0.05,0.05),replace=T)
> t=table(x)
> y=runif(100,0,1)
> ou=par(mfrow = c(1, 2))
> barplot(t,col="mistyrose")
> title("Grafico 1")
> boxplot(y,col="lightblue")
> title("Grafico 2")
> par(ou)
2.4. GRAFICOS 51
20 22 24
050
100
150
200
250
300
Gráfico 1
0.0
0.2
0.4
0.6
0.8
1.0
Gráfico 2
2.4.8. Graficos para cuantiles de la distribucion de la
variable
Funcion qqnorm() y funcion qqplot()
qqnorm(var) compara cuantiles de var con los de una normal
qqnorm(var);qqline(var,col=numcolor) grafico de cuantiles normales y devar con lınea que pasa por primer y tercer cuartil (version R2.0)
qqplot(var1,var2) Grafico de cuantiles de var1 frente a los de var2
qqplot(var, qnorm(ppoints(var), mean = valormedia, sd = valorsigma));
abline(0,1, col = num, lty = num)
52CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
2.4.9. Guardar grafico corriente en archivo de distinto
tipo o formato
Funcion savePlot()
savePlot(filename = ”MIgrafico”,type = ”pdf”, restoreConsole = TRUE)
El formato del fichero que se guarda puede ser de varios tipos:
type = c(”wmf”, .emf”, ”png”, ”jpg”, ”jpeg”, ”bmp”, ”tif”, ”tiff”, ”ps”, .eps”,”pdf”)
2.4.10. Graficos con el paquete lattice
Ejemplo
Presentamos un ejemplo con los datos de data.frame GR1:
> library(lattice)
> names(GR1)
[1] "Edad" "RelActiv" "Sexo" "P2005" "P2011"
> t=xtabs(P2005~RelActiv+Sexo+Edad,data=GR1)
> barchart(t, auto.key = list())
2.4. GRAFICOS 53
Freq
inactivo
ocupado
parado
0 50000 100000 150000 200000
Hombre
0 50000 100000 150000 200000
Mujer
<=30>4530−45
2.4.11. Graficos para datos multivariantes
Funciones pairs(), plot(), coplot(), matlines(), matplot(), matpoint()pairs(X) scatterplot de las variables de las columnas de la matriz Xpairs(matrizvariabs,...) graficos de dispersion con multiples pares de va-
riables de la matriz o dataframe matrizvariabsEjemplopairs( x + y + z, data = datos ,...) graficos de dispersion con multiples
variables de los pares de variables x, y , z de la formula.plot(dataframe) graficos de dispersion de pares de columnas del datafra-
me.plot(dataframe[n1:n2]) graficos de dispersion de pares de columnas selec-
cionadas en el dataframe.EjemploScatterplot de a y b condicionados a los valores del factor ccoplot(a b | c)
54CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARIANTES. DISTRIBUCIONES DE PROBABILIDAD. ANALISIS DE TABLAS DE CONTINGENCIA, TABLAS MULTIDIMENSIONALES. IMPLEMENTACION CON R
matlines(vectomatriz1, vecomatriz2, type=”l”, lty=1:5, ...) Anade lıneasde multiples series a grafico existente.
matplot(vecomatriz1, vecomatriz2, type=”p”, lty=1:5, ...) Grafico de mul-tiples series de puntos o lıneas.
matpoint(vecomatriz1, vecomatriz2, type=”p”, lty=1:5, ...) Anade puntosde multiples series a grafico existente.
Funciones usadas en tema 2
abline, addmargins, ave, axis, barplot, binom, boxplot, chisq, chisq.test,coplot, cor, example, exp, ftable, grid, hist, layout, legend, lines, margin.table,matlines, matplot, matpoint, mean, median, mfrow, norm, pairs, pie, plot,points, pois, prop.table, qqnorm, qqplot, quantile, range, rbinom, rnorm,rpois, runif, sample, savePlot, sd, segments, stem, summary, table, text, title,unif, var, xtabs.