x<-c('desocupado','estudia','trabaja')
ocupacion<-sample(x,100,replace=TRUE,prob=NULL)
y<-c('casado','soltero','divorciado','viudo')
estado<-sample(y,100,replace=TRUE,prob=NULL)Muestreo
Actividad: Crear una muestra de 100 personas que dicen establezcan la ocupacion y estado civil
ahora formaremos la tabla de las dos categorias.
categoria<-data.frame(ocupacion,estado);categoria ocupacion estado
1 estudia divorciado
2 trabaja viudo
3 trabaja casado
4 estudia soltero
5 desocupado soltero
6 trabaja viudo
7 desocupado viudo
8 trabaja casado
9 desocupado casado
10 trabaja soltero
11 estudia divorciado
12 desocupado casado
13 estudia soltero
14 desocupado soltero
15 estudia divorciado
16 estudia soltero
17 desocupado soltero
18 desocupado soltero
19 trabaja viudo
20 trabaja viudo
21 desocupado divorciado
22 desocupado soltero
23 desocupado soltero
24 estudia viudo
25 estudia casado
26 trabaja divorciado
27 estudia viudo
28 trabaja soltero
29 desocupado soltero
30 desocupado divorciado
31 trabaja soltero
32 estudia casado
33 estudia soltero
34 estudia casado
35 estudia casado
36 estudia soltero
37 estudia divorciado
38 desocupado viudo
39 desocupado viudo
40 trabaja viudo
41 estudia casado
42 desocupado soltero
43 desocupado divorciado
44 trabaja divorciado
45 desocupado viudo
46 trabaja viudo
47 estudia casado
48 estudia casado
49 desocupado soltero
50 desocupado soltero
51 estudia casado
52 trabaja divorciado
53 estudia viudo
54 estudia casado
55 trabaja viudo
56 desocupado viudo
57 estudia viudo
58 trabaja viudo
59 trabaja viudo
60 estudia soltero
61 desocupado divorciado
62 trabaja soltero
63 estudia casado
64 trabaja soltero
65 estudia viudo
66 estudia divorciado
67 estudia viudo
68 trabaja viudo
69 trabaja soltero
70 trabaja casado
71 estudia viudo
72 estudia casado
73 trabaja divorciado
74 estudia viudo
75 trabaja soltero
76 trabaja casado
77 desocupado soltero
78 trabaja soltero
79 estudia divorciado
80 estudia soltero
81 estudia divorciado
82 trabaja soltero
83 estudia soltero
84 trabaja soltero
85 trabaja soltero
86 estudia viudo
87 trabaja viudo
88 estudia viudo
89 trabaja casado
90 desocupado divorciado
91 desocupado divorciado
92 desocupado casado
93 desocupado casado
94 desocupado soltero
95 estudia divorciado
96 estudia casado
97 estudia viudo
98 estudia casado
99 desocupado divorciado
100 desocupado divorciado
Crearemos la tabla de doble entrada
tablacat<-table(categoria);tablacat estado
ocupacion casado divorciado soltero viudo
desocupado 4 8 12 5
estudia 13 8 8 11
trabaja 5 4 11 11
# Distribución marginal de X=Estado civil
suma.filas <- apply(tablacat, 1, sum); suma.filasdesocupado estudia trabaja
29 40 31
# El 1 indica que son totales por fila # Encuentra la suma de cada fila de la tabla de contingencia
# distribución marginal de Y=Ocupación
suma.columnas <- apply(tablacat,2,sum); suma.columnas casado divorciado soltero viudo
22 20 31 27
# 2 indica que son totales por columna # Gráficos de barras para tabla de contingencia.
# Barras apiladas
barplot(t(tablacat), main="Gráfico de barras (Estado, Ocupación)", xlab="Estado civil",
ylab="Ocupación", legend.text=TRUE,col=c('blue','red','yellow','purple'))# Note que t(tablacat) indica que las barras representan el Estado civil de los encuestados y que éstas se subdividen en cada una de las diferentes ocupaciones consideradas.
# En caso de usar únicamente tablaCont; las barras representarán las diferentes ocupaciones y éstas estarán subdividas en cada uno de los estados civiles. # Barras agrupadas
barplot(t(tablacat), main="Gráfico de barras (Estado, Ocupación)", xlab="Estado civil",
ylab="Ocupación", beside=TRUE, legend.text=TRUE)# Note que la instrucción beside =TRUE, indica que por cada una de las diferentes ocupaciones se creará una barra para cada estado civil. Note que al usar beside =FALSE se obtiene el mismo gráfico de la instrucción anterior.
barplot(tablacat, main="Gráfico de barras (Ocupación, Estado)", xlab="Ocupación\n",
ylab="Estado civil", beside=TRUE, legend.text=TRUE) Calcula tablas de proporciones o de probabilidades.
# Guardar las todas las opciones iniciales y modificar número de decimales
op <- options()
options(digits=3) # sólo imprime 3 lugares decimales
options('digits') $digits
[1] 3
# Proporciones basadas en el total de la muestra, la suma de filas y columnas suman 1.
propTotal <- prop.table(tablacat); propTotal estado
ocupacion casado divorciado soltero viudo
desocupado 0.04 0.08 0.12 0.05
estudia 0.13 0.08 0.08 0.11
trabaja 0.05 0.04 0.11 0.11
barplot(t(propTotal), main="Gráfico de barras (Estado, Ocupación)", xlab="Estado civil\n", ylab="Ocupación", beside=TRUE, legend.text=TRUE) # Proporciones basadas en el total por fila, cada fila suma 1.
propFila <- prop.table(tablacat, 1); propFila estado
ocupacion casado divorciado soltero viudo
desocupado 0.138 0.276 0.414 0.172
estudia 0.325 0.200 0.200 0.275
trabaja 0.161 0.129 0.355 0.355
# Total por fila se indica en 1
barplot(t(propFila), main="Gráfico de barras (Estado, Ocupación)", xlab="Estado civil\n",
ylab="Ocupación", beside=TRUE, legend.text=TRUE)# Proporciones basadas en el total por columna, cada columna suma 1.
propColum <- prop.table(tablacat, 2); propColum estado
ocupacion casado divorciado soltero viudo
desocupado 0.182 0.400 0.387 0.185
estudia 0.591 0.400 0.258 0.407
trabaja 0.227 0.200 0.355 0.407
# Total por columna se indica en 2
barplot(propColum, main="Gráfico de barras (Ocupación, Estado)", xlab="Ocupación\n",
ylab="Estado civil", beside=TRUE, legend.text=TRUE) Realizaremos el contraste chisq.test
prueba<-chisq.test(tablacat);prueba
Pearson's Chi-squared test
data: tablacat
X-squared = 10, df = 6, p-value = 0.1
prueba$expected # fij = fi./No. column estado
ocupacion casado divorciado soltero viudo
desocupado 6.38 5.8 8.99 7.83
estudia 8.80 8.0 12.40 10.80
trabaja 6.82 6.2 9.61 8.37