Anda di halaman 1dari 54

Estadstica para las Ciencias del Trabajo

M. Vargas Jimenez
2012/02/11

Indice general
2. Examen Exploratorio de los datos. Estadsticos univariantes.
Distribuciones de probabilidad. An
alisis de tablas de contingencia, tablas multidimensionales. Implementaci
on con R
2.1. Funciones estadsticas R mas frecuentes . . . . . . . . . . . . .
2.1.1. Resumen de una variable . . . . . . . . . . . . . . . . .
2.1.2. Generacion de variables con ave() . . . . . . . . . . . .
2.1.3. Correlacion entre variables . . . . . . . . . . . . . . . .
2.2. Distribuciones de modelos de probabilidad . . . . . . . . . . .
2.2.1. Funciones para las distribuciones ... . . . . . . . . . . .
2.2.2. Muestreo y generacion de valores... . . . . . . . . . . .
2.3. Construccion y manipulacion de tablas . . . . . . . . . . . . .
2.3.1. Creacion de una tabla a partir ... . . . . . . . . . . . .
2.3.2. Presentacion de tablas en frecuencias ... . . . . . . . . .
2.3.3. Adicion de marginales a una tabla... . . . . . . . . . .
2.3.4. Calculo de frecuencias condicionadas... . . . . . . . . .
2.3.5. Conversion de tabla en data.frame . . . . . . . . . . . .
2.3.6. Creacion de tablas a partir... . . . . . . . . . . . . . . .
2.3.7. Tablas de mas de 2 dimensiones . . . . . . . . . . . . .
2.3.8. Test de independencia chi-cuadrado... . . . . . . . . . .
2.4. Graficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1. Grafico de barras . . . . . . . . . . . . . . . . . . . . .
2.4.2. Histograma . . . . . . . . . . . . . . . . . . . . . . . .
2.4.3. Grafico caja . . . . . . . . . . . . . . . . . . . . . . . .
2.4.4. Grafico de sectores . . . . . . . . . . . . . . . . . . . .
2.4.5. Grafico de tallo y hojas . . . . . . . . . . . . . . . . . .
2.4.6. Otros graficos y opciones graficas . . . . . . . . . . . .
2.4.7. Division del dispositivo de ... . . . . . . . . . . . . . . .
2.4.8. Graficos para cuantiles de... . . . . . . . . . . . . . . .
2.4.9. Guardar grafico corriente en... . . . . . . . . . . . . . .
2.4.10. Graficos con el paquete lattice . . . . . . . . . . . . . .
3

5
5
5
8
9
9
10
11
13
13
14
15
16
18
19
22
29
31
31
35
39
41
42
43
49
51
52
52

INDICE GENERAL
2.4.11. Graficos para datos multivariantes . . . . . . . . . . . . 53

Captulo 2
Examen Exploratorio de los
datos. Estadsticos
univariantes. Distribuciones de
probabilidad. An
alisis de tablas
de contingencia, tablas
multidimensionales.
Implementaci
on con R

2.1.

Funciones estadsticas R m
as frecuentes

quantile(),ave(), cor(), median(), mean(), var(), sd(), range(), summary()


Recordaremos las tecnicas estadsticas descriptivas aplicandolas con R.
As mismo usaremos los modelos de de probabilidad mas populares para
determinar cuantiles y probabilidades. En las tablas de contingencia veremos
ejemplos de contrastes chi-cuadrado y calculo de candicionadas y marginales.
Manejaremos tablas multidimensionales con R mediante ejemplos, donde se
determinara 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 UNIVARI


Podemos realizar res
umenes de variables mediante valores n
umercos, tablas y graficos.
Resumen num
erico de la variable cuantitativa x
summary(variable)
Ejemplo
> x=1:10
> summary(x) # Resumen num
erico de la variable cuantitativa x
Min. 1st Qu.
1.00

3.25

Median
5.50

Mean 3rd Qu.


5.50

7.75

Max.
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 cuantile


> 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

Agrupaci
on 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.

FRECUENTES
2.1. FUNCIONES ESTADISTICAS R MAS

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

Curva acumulativa
ecdf(var) curva acumlativa de variable var
> x=rnorm(20)
> plot(ecdf(x))

8CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVARI

1.0

ecdf(x)

0.8

0.6

Fn(x)

0.4

0.2

0.0

Otros res
umenes de las variable
IQR(x) Calcula el rango intercuartlico del vector x
max(var) Calcula el maximo de var
mean(var) Calcula la media de un vector o para varias variables de un
data frame
median(var) Calcula la mediana de un vector o para varias variables de
un data frame
min(var) Calcula el mnimo de var
scale(var) estandariza la variable var
stem(var) grafico de tallo y hojas de la variable var

2.1.2.

Generaci
on de variables con ave()

ave(variable, factor, funcion)

2.2. DISTRIBUCIONES DE MODELOS DE PROBABILIDAD

ave(var, factor1, factor2,..., FUN= funcion) Genera una variable de la


misma longitud que var que contiene el resultado de calcular una funcion,
como por ejemplo media, mediana, mn, max, etc., para la variable var, en
los subgrupos formados por las combinaciones de los factores.
Ejemplo
Genera una variable de la misma longitud de Edad que contiene medias
de los grupos formados con el factor Sexo.
> dtf
Edad Sexo
1

20

25

30

28

40

50

> ave(dtf$Edad,dtf$Sexo,mean(dtf$Edad))
[1] 25.75 25.75 25.75 25.75 45.00 45.00

2.1.3.

Correlaci
on entre variables

cor(x,y) Determina la correlacion entre los vectores x e y. O matrices x e


y
cor(dataframeomatriz) Determina las correlaciones entre las variables del
data frame o matriz

2.2.

Distribuciones de modelos de probabilidad

10CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR

2.2.1.

Funciones para las distribuciones de modelos de


probabilidad

Normal norm(), binomial binom(), poison pois(), uniforme unif(), exponencial exp(), t de Student (t), Chi-cuadrado chisq(), etc.
Un modelo de probabilidad de una variable aleatoria tendra informacion
sobre:
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 precedido
de las letas d, p, q y r.
dnombremodelo determina la funcion de densidad, f(x), para un valor
x de la variable
pnombremodelo permite obtener p[X <x] para un valor de x. Si el
argumento 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 n
umero
de 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 tama
no
de muestra
Ejemplo
pbinom(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
Ejemplo
Calculo de cuantiles de la distribucion N(0,1)
> ordencuan=seq(0.1,0.8,0.2)
> qnorm(ordencuan,0,1) #cuantiles de la distribuci
on 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 distribuci


on N(50,10)
[1] 43.2551 50.0000 56.7449

2.2.2.

Muestreo y generaci
on de valores aleatorios

sample(), runif(),rbinom(), rnorm(),...


Seleccion de una muestra al azar:
sample(Vector de donde se selecciona, n
umero de selecciones, replace=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 probabilidad
discreta que toma los valores 1 a 3 con las siguientes probabilidades
Prob(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 UNIVAR


[1] 3 1 1 2 1 1 2 1 1 1
Seleccion de una distribucion uniforme.
El generador pseudo-aleatorio uniforme de n
umeros en R es runif().
Ejemplo
> runif(5) # selecciona 5 n
umeros 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
>

# n
um reales entre 0 y 1

Ejemplo
runif(10,20,30) 10 n
umeros 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 distribuci


on N(4,1)
[1] 4.336644 4.235742 5.141477
Seleccion de una distribucion binomial
Ejemplo
Generacion de una muestra de la distribucion normal

Y MANIPULACION
DE TABLAS
2.3. CONSTRUCCION

13

> rbinom(5,10,0.5)# 5 valores de la distribuci


on B(0.5,10)

[1] 4 2 4 6 5

2.3.

Construcci
on y manipulaci
on de tablas

Funciones usadas con tablas:


table(), ftable(), addmargins(), prop.table(), xtabs(), data.frame(), margin.table(), chisq.test(), summary()

2.3.1.

Creaci
on de una tabla a partir de datos sin tabular

La funcion table() permite construir tablas a partir de vectores o data.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

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 UNIVAR


y
h m
6 4

2.3.2.

Presentaci
on de tablas en frecuencias relativas

La funcion prop.table() permite expresar tablas dadas en frecuecias absolutas, a frecuencias relativas. Unidimensionales o multidimensionales.
La funcion ftable() permite expresar tablas de 2 o mas dimensiones en un
formato de mejor presentacion que table. Tambien crear tablas con 2 o mas
vectores o data.frames.
Ejemplo Tabla unidimensional en frecuencias relativas y tabla de frecuencias 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

77 66 57

> # Tabla en frecuencias relativas


> prop.table(t)

x
1

0.385 0.330 0.285

Y MANIPULACION
DE TABLAS
2.3. CONSTRUCCION

15

> # vector de longitud 200 de caracteres


> y=sample(c("h","m"),200,replace=T)
> t2=table(x,y)
> t2

y
x

1 41 36
2 34 32
3 27 30

> ftable(t2) # Una formato mejorado

x
1

41 36

34 32

27 30

2.3.3.

Adici
on de marginales a una tabla de contingencia

La funcion addmargins() permite a


nadir columnas y filas marginales a la
tabla.
Ejemplo
> t2

16CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


y
x

1 41 36
2 34 32
3 27 30
> addmargins(t2)# A~
nade columna y fila marginal
y
x

m Sum

41

36

77

34

32

66

27

30

57

Sum 102

98 200

> # addmargins(t2,1) a~
nade s
olo fila marginal
> # addmargins(t2,2) a~
nade s
olo columna marginal

2.3.4.

C
alculo de frecuencias condicionadas en la tabla

La funcion prop.table() permite dividir por totales fila, totales columna o totales capas en tablas de mas de 2 dimensiones, permitiendo obtener
distribuciones en distintas condiciones.
Ejemplo
> t2
y
x

Y MANIPULACION
DE TABLAS
2.3. CONSTRUCCION

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

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

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

18CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


1 0.4019608 0.3673469
2 0.3333333 0.3265306
3 0.2647059 0.3061224

2.3.5.

Conversi
on 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 denomina Freq. Las filas contienen las combinaciones de categorias de las variables
en la tabla.
Ejemplo
> t2
y
x

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

Y MANIPULACION
DE TABLAS
2.3. CONSTRUCCION
4 1 m

36

5 2 m

32

6 3 m

30

2.3.6.

19

Creaci
on de tablas a partir de data.frames

Dado un data.frame formado por factores, se puede construir la tabla


directamente mediante table o ftable.
Ejemplo
> d=data.frame(x,y)
> 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

1 41 36
2 34 32
3 27 30

#data.frame formado por 200 filas y 2 columnas

20CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


> ftable(d)
y

x
1

41 36

34 32

27 30

Nota: Observe que los data.frames dd y d tienen la misma informacion, pero


dd 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

Y MANIPULACION
DE TABLAS
2.3. CONSTRUCCION
1 41 36
2 34 32
3 27 30
> #Tabla marginal de x
> xtabs(Freq~x,data=dd)
x
1

77 66 57
> #Tabla marginal de y
> xtabs(Freq~y,data=dd)
y
h

102

98

Ejemplo
> # Data.frame datos con columna de frecuencias (Personas)
> datos
sexo peso Personas
1 Hombre Alto
2

20

Mujer Alto

3 Hombre Bajo

40

55

Mujer Bajo

21

22CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


> # tabla de frecuencias con xtabs
> xtabs(Personas~sexo+peso,data=datos)
peso
sexo

Alto Bajo

Hombre

20

40

Mujer

55

2.3.7.

Tablas de m
as de 2 dimensiones

El tratamiento es similar. Usaremos el ejemplo Titanic que proporciona


R. Use help() para mas informacion sobre los datos.
Hemos visto que la funcion ftable presenta un objeto tabla en formato
preferible al de table. Esto se aprecia mejor en tablas multidimensionales
(que usa capas cuando hay mas de dos variables). Tambien crea un objeto
tabla 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 n
umero, pueden ser especificadas bien por n
umero o por nombre entre comillas.
ftable(var1, var2, var3, ...) tabula las variables categoricas var1, var2,
var3, ...
Ejemplo
> ftable(Titanic) # Formato de presentaci
on de la tabla (sin capas)
Survived

No Yes

Class Sex

Age

1st

Child

Adult

118

57

Female Child

Male

Adult

4 140

Y MANIPULACION
DE TABLAS
2.3. CONSTRUCCION
2nd

3rd

Crew

Male

Child

11

Adult

154

14

Female Child

13

Adult

13

80

Child

35

13

Adult

387

75

Female Child

17

14

Adult

89

76

Child

Male

Male

Adult

23

670 192

Female Child

Adult

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 m
as lentamente, la
ultima variable, las var
a primero
Ejemplo
> Titanic
, , Age = Child, Survived = No

Sex
Class

Male Female

1st

2nd

3rd

35

17

24CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


Crew

, , Age = Adult, Survived = No

Sex
Class

Male Female

1st

118

2nd

154

13

3rd

387

89

Crew

670

, , Age = Child, Survived = Yes

Sex
Class

Male Female

1st

2nd

11

13

3rd

13

14

Crew

, , Age = Adult, Survived = Yes

Sex
Class
1st

Male Female
57

140

Y MANIPULACION
DE TABLAS
2.3. CONSTRUCCION
2nd

14

80

3rd

75

76

Crew

192

20

25

> ftable(Titanic,row.vars=1:2,col.vars="Survived") # marginal con combinaciones de


Survived

No Yes

Class Sex
1st

Male
Female

2nd

Male

Crew

62

4 141
154

25

13

93

Male

422

88

Female

106

90

Male

670 192

Female
3rd

118

Female

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 (mar


Class 1st 2nd 3rd Crew
Sex

26CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


Male

180 179 510

862

Female

145 106 196

23

> # Todas las combinaciones de las 4 variables en filas y 1 columna con frec
> ftable(Titanic,row.vars=1:4)
Class Sex

Age

1st

Child No

Male

Survived

Yes
Adult No
Yes
Female Child No
Yes
Adult No
Yes
2nd

Male

Child No
Yes
Adult No
Yes

Female Child No
Yes
Adult No
Yes
3rd

Male

Child No
Yes
Adult No

0
5
118
57
0
1
4
140
0
11
154
14
0
13
13
80
35
13
387

Y MANIPULACION
DE TABLAS
2.3. CONSTRUCCION
Yes
Female Child No
Yes

75
17
14

Adult No
Yes
Crew

Male

89
76

Child No

Yes
Adult No
Yes

0
670
192

Female Child No

Yes

Adult No
Yes

3
20

Conversion de la tabla en data.frame: Ejemplo


> data.frame(Titanic)
Class

Sex

Age Survived Freq

1st

Male Child

No

2nd

Male Child

No

3rd

Male Child

No

35

Crew

Male Child

No

1st Female Child

No

2nd Female Child

No

3rd Female Child

No

17

Crew Female Child

No

27

28CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


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

14

2nd Female Adult

No

13

15

3rd Female Adult

No

89

16

Crew Female Adult

No

17

1st

Male Child

Yes

18

2nd

Male Child

Yes

11

19

3rd

Male Child

Yes

13

20

Crew

Male Child

Yes

21

1st Female Child

Yes

22

2nd Female Child

Yes

13

23

3rd Female Child

Yes

14

24

Crew Female Child

Yes

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

Y MANIPULACION
DE TABLAS
2.3. CONSTRUCCION

2.3.8.

29

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.
Ejemplo
Contraste la hipotesis nula a un nivel de significacion = 0,01
H0 : x e y son independientes
H1 : x e y no son independientes
> t2
y
x

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 pvalor = 0,7932, = 0,01, por lo que no puede rechazarse
la hipotesis nula de independencia de las variables.
Ejemplo Clasificacion de mayores de 16 a
nos en Granada seg
un relacion
con actividad y sexo. Contraste la hipotesis de independencia de las variables
RelActiv y Sexo.
> # Construcci
on de tabla con dataframe con frecuencias
> tgr=xtabs(P2005~Sexo+RelActiv,data=GR1)
> tgr

30CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


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 hipotesis
nula 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
Ejemplo
Divide el salario en 2 clases y realiza test de la tabla 2x2
chisq.test(salario > 28880, b$sexo)
Ejemplo
Permite presentar o acceder a los valores de las frecuencias esperadas bajo
la hipotesis de independencia, as como los observados y resiuos (diferencias
entre 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.

Gr
aficos

Entre los graficos mas frecuentes se encuentran los que se describen por
las funciones siguientes:
barplot(), hist(), boxplot(), plot(), stem(), pie()
Otras funciones u
tiles para graficos son:
savePlot(), segments(), plot(ecdf()), abline(),lines()

2.4.1.

Gr
afico de barras

barplot() es muy u
til para usar con tablas cuyas distribuciones presentan
pocas modalidades distintas.
barplot(vecalturas, col = colorbarras, main=titulografico,...) grafico de
barras indicando el color y ttulo.
barplot(matrixalturas, col = color, main=titulografico,...) varios graficos de barras; cada vector de la matriz matrixalturas representa las alturas
de una serie de barras. Pueden ir apiladas o separadas, dependiendo del argumento 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 de
barras
Ejemplo
Grafico de barras
> barplot(c(10,2,4),names.arg=c("A","B","C"),col="orange")

10

32CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR

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="Distribuci
on del sexo")


2.4. GRAFICOS

33

10

15

20

25

Distribucin del sexo

hombre

mujer

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))

20

34CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR

10

15

mujer
hombre

20

25

30

Ejemplo

Grafico de barras para tabla bidimensional

> barplot(t(t),beside=F,legend=colnames(t))

# para tabla bidimensional


2.4. GRAFICOS

25

35

10

15

20

30
25
20

hombre

2.4.2.

mujer

Histograma

Funcion hist(Var, nclass= num,...) establece el n


umero 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 UNIVAR

8
6
0

Frequency

10

12

14

histograma

Ejemplo

> hist(x,br=quantile(x),col="grey")


2.4. GRAFICOS

37

0.2
0.0

0.1

Density

0.3

0.4

Histogram of x

Ejemplo
Histograma con curva normal
> x=rnorm(100,4,2)
> hist(x, freq=FALSE, col="grey", main="distribuci
on 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 UNIVAR


[1]

5 11 11 24 17 14 12

$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)))

0.10
0.00

0.05

Density

0.15

Histogram of x

10

15

20

2.4.3.

Gr
afico 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 UNIVAR


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.

10

12

14

16

18

20

> boxplot(x,col="red") # gr
afico caja de la variable cuantitativa x

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.4.4.

2.1

1.2

2.2

Gr
afico de sectores

Funcion textcolorredpie()
pie(vectorareasector, labels = names(vectorareasector),...,main=titulo del
grafico, ...) Grafico sectores
Ejemplo
Grafico de sectores.
> pie(table(Sexo),main="Clasificaci
on por Sexo",)

42CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR

Clasificacin por Sexo

hombre

mujer

2.4.5.

Gr
afico 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 gr
aficos y opciones gr
aficas

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 pendiente
especificadas
Ejemplo
Trazado de lneas 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 ho

44CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR

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 modelo
binomial 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

0.10
0.05
0.00

dbinom(0:20, 20, 0.4)

0.15

45

10

15

20

0:20

Funcion legend()
Dibuja leyendas en un grafico existente A
nade 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 etiqu
legend(coor,c("emp
rica","te
orica"),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","te
orica"),col=c("red","black"),lwd=c(2,1),lty=c(2,1)
Ejemplo
legend(min(x),max(y), c(hombre,mujer), pch=c(1,2), col=c(1,2))
Ejemplo
a=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 UNIVAR


Ejemplo
Grafico 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.25
0.05

0.10

0.15

0.20

B(20,0.4)
B(5,0.4)

0.00

dbinom(0:20, 20, 0.4)

0.30

0.35

Modelos binomiales

10

15

20

0:20

Funcion lines()
Dibuja lneas en un grafico existente:
A
nade lneas al grafico de distinto tipo, color y grosor
lines(vector de abscisas, vector de ordenadas)


2.4. GRAFICOS

47

lines(coordx,coordy, lty=ntipolinea, lwd=ngrueso, ...)


gEjemplo
lines(coordx, coordy,lty=4,col=4,lwd=3) a
nade lneas al grafico de tipo
linea 4, color 4 (rojo), grosor 3
Funcion grid()
Dibuja una rejilla sobre el grafico existente.
grid(n1, n2, lwd = 2) rejilla sobre grafico. n1 y n2 indican los n
umeros
de casillas de las lneas divisorias verticales y horizontales que apareceran en
el grafico. Si se sustituye alg
un n1 o n2 por NA no se tranzaran mas que
verticales u horizontales.
Ejemplo
Graficos con cuadrcula o grid
> plot(0:1,0:1,type="n")
> grid(3,3,lwd=2,col="green")

0.0

0.2

0.4

0:1

0.6

0.8

1.0

> grid(20,20,col = "lightgray", lty = "dotted")

0.0

0.2

0.4

0.6
0:1

Funcion points()

0.8

1.0

48CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


A
nade puntos a un grafico existente.
points(coordx, coordy = NULL, type = p, pch =num1:num2), col =,
...) A
nade puntos a un plot. pch indica con distintos valores numericos las
distintas formas posibles de representar la series de datos (circulo, triangulo,
cruz, etc.)
Funcion text()
A
nade texto a un grafico existente.
text(vcoordx,vcoordy., vtexto, ...) A
nade texto al grafico corriente.
Funcion title()
A
nade ttulo a un grafico existente.
title(textoTitulo) A
nade ttulo a un grafico existente. Vea argumentos
en ayuda.
Funcion axis()
A
nade ejes a un grafico.
axis()
Ejemplos:
axis(1, c(0.25,0.5,0.75), LETTERS[1:3], col.axis = blue) a
nade eje abscisas y coloca letras
axis(2) a
nade el eje vertical por defecto
Ejemplo

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=
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 Gr
afico", 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 co
> axis(2) #a~
nade el eje vertical por defecto

0:1

0.6

0.8

1.0

Ttulo del Grfico

0.0

0.2

0.4

Centro

0.0

0.2

1/3 0.4

0.6 2/3

0.8

1.0

0:1

2.4.7.

Divisi
on del dispositivo de salida del gr
afico

Funcion layout()
layout(matriz,...)
Divide el dispositivo de salida en filas y columnas con n
umeros que indican
las posiciones en que iran colocandose las figuras que van a
nadiendose. Los
valores numericos de la matriz van de 1 al n
umero de figuras. Por ejemplo
matriz=matrix(c(1:4),ncol=2). Ocupa los 4 = 2 x 2 espacios: uno para cada
figura. Matriz=matrix(c(1,0,1,2), 2,2, byrow=T)
Ejemplo
layout (matriz(1:4,nrow=2))

Divide el espacio gr
afico en 2x2 partes (2 filas y 2 columnas) para colocar los gr
af

50CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


Funcion mfrow()

Divide el dispositivo de salida grafico en n1 x n2 regiones y restablece


despues.

op=par(mfrow=c(n1,n2)) divide el dispositivo de salida grafico en n1 x


n2 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("Gr
afico 1")
> boxplot(y,col="lightblue")
> title("Gr
afico 2")
> par(ou)


2.4. GRAFICOS

51

Grfico 2

0.0

50

0.2

100

0.4

150

0.6

200

0.8

250

1.0

300

Grfico 1

20

2.4.8.

22

24

Gr
aficos para cuantiles de la distribuci
on 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 de
var con lnea 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 UNIVAR

2.4.9.

Guardar gr
afico 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.

Gr
aficos con el paquete lattice

Ejemplo
Presentamos un ejemplo con los datos de data.frame GR1:
> library(lattice)
> names(GR1)

[1] "Edad"

"RelActiv" "Sexo"

"P2005"

> t=xtabs(P2005~RelActiv+Sexo+Edad,data=GR1)
> barchart(t, auto.key = list())

"P2011"


2.4. GRAFICOS

53
<=30
>45
3045
0

Hombre

50000 100000 150000 200000

Mujer

parado

ocupado

inactivo

50000 100000 150000 200000

Freq

2.4.11.

Gr
aficos para datos multivariantes

Funciones pairs(), plot(), coplot(), matlines(), matplot(), matpoint()


pairs(X) scatterplot de las variables de las columnas de la matriz X
pairs(matrizvariabs,...) graficos de dispersion con m
ultiples pares de variables de la matriz o dataframe matrizvariabs
Ejemplo
pairs( x + y + z, data = datos ,...) graficos de dispersion con m
ultiples
variables de los pares de variables x, y , z de la formula.
plot(dataframe) graficos de dispersion de pares de columnas del dataframe.
plot(dataframe[n1:n2]) graficos de dispersion de pares de columnas seleccionadas en el dataframe.
Ejemplo
Scatterplot de a y b condicionados a los valores del factor c
coplot(a b | c)

54CAPITULO 2. EXAMEN EXPLORATORIO DE LOS DATOS. ESTADISTICOS UNIVAR


matlines(vectomatriz1, vecomatriz2, type=l, lty=1:5, ...) A
nade lneas
de multiples series a grafico existente.
matplot(vecomatriz1, vecomatriz2, type=p, lty=1:5, ...) Grafico de m
ultiples series de puntos o lneas.
matpoint(vecomatriz1, vecomatriz2, type=p, lty=1:5, ...) A
nade puntos
de m
ultiples 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.

Anda mungkin juga menyukai