Análisis de correspondencias en R
Lectura de datos, el tipo de BD debe corresponder en su mayoría a variables categóricas; si se cuentan con variables continuas, estas deben reescalar a categóricas por rangos.
datos <- read.csv("creditos_otorgados_a_microempresarios-CORRESPONDENCIAS.csv", sep = ";", dec = ",", header = T)
print(head(datos))
edad sexo actividad comuna
1 62 hombre produccion 90
2 51 hombre comercio 4
3 40 mujer servicios 16
4 39 hombre produccion 90
5 35 hombre servicios 12
6 43 hombre produccion 80
str(datos)
'data.frame': 9425 obs. of 4 variables:
$ edad : int 62 51 40 39 35 43 36 46 47 45 ...
$ sexo : chr "hombre" "hombre" "mujer" "hombre" ...
$ actividad: chr "produccion" "comercio" "servicios" "produccion" ...
$ comuna : int 90 4 16 90 12 80 16 16 10 16 ...
datos[,"edad"] <- as.character(datos[,"edad"])
datos[,"comuna"] <- as.character(datos[,"comuna"])
str(datos)
'data.frame': 9425 obs. of 4 variables:
$ edad : chr "62" "51" "40" "39" ...
$ sexo : chr "hombre" "hombre" "mujer" "hombre" ...
$ actividad: chr "produccion" "comercio" "servicios" "produccion" ...
$ comuna : chr "90" "4" "16" "90" ...
Selección de las variables a analizar y creación de la tabla de contingencia:
df <- datos[,c("sexo", "actividad")]
La tabla de contingencia es la frecuencia de los datos por cada una de
las categorías, en donde se comparan entre los atributos, la función
table()
de la base, puede hacer este conteo de frecuencias.
contingencias <- table(df)
print(contingencias)
actividad
sexo comercio produccion servicios
hombre 1921 496 753
mujer 3837 1348 1070
install.packages("gplots")
library(gplots)
Warning message:
"package 'gplots' was built under R version 4.1.3"
Attaching package: 'gplots'
The following object is masked from 'package:stats':
lowess
Graficamos las frecuencias de la tabla de contingencias para encontrar
visualmente donde hay mayores pesos. Para ello, se recomienda el uso de
la librería gplots
con la función ballonplot()
.
balloonplot(t(contingencias), main ="Créditos otorgados a microempresarios",
xlab = "", ylab= "",
label = T, # Para mostrar los valores de cada celda en el gráfico.
show.margins = T) # Para mostrar la suma por filas.
![../../_images/output_13_0.png](../../_images/output_13_0.png)
Independencia:
El análisis de la independencia debe sugerir que existen relación entre
los perfiles, por lo que al aplicar la prueba de hipótesis basado en el
estadístico chi-cuadrado, se rechaza la hipótesis nula, indicando
dependencia entre ellas. Con el paquete pander
se puede realizar el
análisis.
install.packages("pander")
library(pander)
Warning message:
"package 'pander' was built under R version 4.1.3"
print(pander(chisq.test(contingencias)))
| Test statistic | df | P value | |:--------------:|:--:|:----------------:| | 85.74 | 2 | 2.411e-19 * * * | Table: Pearson's Chi-squared test: contingencias NULL
Para encontrar los perfiles o sumas marginales, simplemente se suma la matriz de contingencias y se grafica en el ballonplot.
n <- sum(contingencias)
print(n)
[1] 9425
balloonplot(t(contingencias/n), main ="Créditos otorgados a microempresarios",
xlab = "", ylab= "",
label = T,
show.margins = T)
![../../_images/output_21_01.png](../../_images/output_21_01.png)
Ahora se calculan las cargas o los pesos (centros de gravedad), primero se calculan las contribuciones por fila, y se procede a diagonalizar.
r <- rowSums(contingencias)/n
print(r)
hombre mujer
0.3363395 0.6636605
Luego se diagonaliza la matriz para encontrar las contribuciones e inercias.
Dr <- diag(r)
print(Dr)
[,1] [,2]
[1,] 0.3363395 0.0000000
[2,] 0.0000000 0.6636605
Forma diagonal de Jordan para Dr:
Extraemos los valores y vectores propios, se resuelve el sistema de ecuaciones, se calcula la inversa y se saca raiz, con esto hallamos las inercias de cada fila (atributos)
X <- eigen(Dr)
T <- X$vectors
J <- diag(x = X$values )
Tinv <- solve(T)
Jinvsqrt <- diag(x = 1/sqrt(X$values))
Drinvsqrt <- T %*% Jinvsqrt %*% Tinv
Contribución por columna:
c <- colSums(contingencias)/n
print(c)
comercio produccion servicios
0.6109284 0.1956499 0.1934218
Dc <- diag(c)
print(Dc)
[,1] [,2] [,3]
[1,] 0.6109284 0.0000000 0.0000000
[2,] 0.0000000 0.1956499 0.0000000
[3,] 0.0000000 0.0000000 0.1934218
Forma diagonal de Jordan para Dc:
Se repite l mismo procedimiento pero esta vez para las columnas.
X <- eigen(Dc)
T <- X$vectors
J <- diag(x = X$values)
Tinv <- solve(T)
Jinvsqrt <- diag(x = 1/sqrt(X$values) )
Dcinvsqrt <- T %*% Jinvsqrt %*% Tinv
P <- as.matrix(contingencias/n)
print(P)
actividad
sexo comercio produccion servicios
hombre 0.20381963 0.05262599 0.07989390
mujer 0.40710875 0.14302387 0.11352785
S <- Drinvsqrt %*% (P - r %*% t(c)) %*% Dcinvsqrt
print(S)
[,1] [,2] [,3]
[1,] -0.003661456 -0.05137440 0.05817669
[2,] 0.002606572 0.03657318 -0.04141569
print(n*sum(diag(S %*% t(S))))
[1] 85.73841
print(svd(S %*% t(S)))
$d
[1] 9.096913e-03 7.065994e-19
$u
[,1] [,2]
[1,] -0.8146536 0.5799479
[2,] 0.5799479 0.8146536
$v
[,1] [,2]
[1,] -0.8146536 0.5799479
[2,] 0.5799479 0.8146536
Contribución a la inercia por filas:
Perfiles por fila:
Cálculo de las inercias para el resto de la matriz
N_tot <- cbind(contingencias, Total = rowSums(contingencias))
N_tot <- rbind(N_tot, Total = colSums(N_tot))
print(N_tot)
comercio produccion servicios Total
hombre 1921 496 753 3170
mujer 3837 1348 1070 6255
Total 5758 1844 1823 9425
perfil_fila <- prop.table(as.matrix(N_tot[, -ncol(N_tot)]), 1)
print(perfil_fila)
comercio produccion servicios
hombre 0.6059937 0.1564669 0.2375394
mujer 0.6134293 0.2155076 0.1710631
Total 0.6109284 0.1956499 0.1934218
Perfil de los hombres:
print(prop.table(as.matrix(N_tot[, -ncol(N_tot)]), 1)[1,])
comercio produccion servicios
0.6059937 0.1564669 0.2375394
Perfil de los mujeres:
print(prop.table(as.matrix(N_tot[, -ncol(N_tot)]), 1)[2,]) # Row prof
comercio produccion servicios
0.6134293 0.2155076 0.1710631
Perfiles de columna:
print(N_tot)
comercio produccion servicios Total
hombre 1921 496 753 3170
mujer 3837 1348 1070 6255
Total 5758 1844 1823 9425
perfil_columna <- prop.table(as.matrix(N_tot[-nrow(N_tot),]),2) # Col prof
print(perfil_columna)
comercio produccion servicios Total
hombre 0.3336228 0.2689805 0.4130554 0.3363395
mujer 0.6663772 0.7310195 0.5869446 0.6636605
Cálculo de las distancias e identificación de similitudes (bajo Chi-cuadrado)
Razones de contingencia:
print(prop.table(as.matrix(N_tot[-nrow(N_tot),]),2)[,1] / prop.table(as.matrix(N_tot[-nrow(N_tot),]),2)[,ncol(contingencias)])
hombre mujer
0.807695 1.135332
Distancia Chi-cuadrado:
print(sqrt(sum((perfil_fila[1,] - perfil_fila[3,])^2 / perfil_fila[3,])))
[1] 0.1339772
Distancia entre hombre y mujer:
print(sqrt(sum( (perfil_fila[1,] - perfil_fila[2,])^2 / perfil_fila[3,])))
[1] 0.2018762
Contribución Chi-cuadrado:
Exploración de los residuales estandarizados de cada casilla y su contribución.
chisq <- chisq.test(contingencias)
print(chisq)
Pearson's Chi-squared test
data: contingencias
X-squared = 85.738, df = 2, p-value < 2.2e-16
library(corrplot)
corrplot 0.92 loaded
Contribuciones de las filas hacia las columnas. los valores en rojo reflejan menores asociaciones y los azules mayores, el tamaño indica la intensidad de la asociación. sin embargo, se observa mejor en el gráfico de proporciones de contribución.
corrplot(chisq$residuals, is.cor = FALSE, main='Residuales')
![../../_images/output_61_0.png](../../_images/output_61_0.png)
Contribución en porcentaje:
Contribución de los residuales de Pearson a la celda. Si se buscan asociaciones, se espera encontrar más cercanía entre las celdas donde la relación sea positiva y el tamaño sea el mayor.
contrib <- 100*chisq$residuals^2/chisq$statistic
corrplot(contrib, is.cor = FALSE, main='Contribución de cada celda al Chi²')
![../../_images/output_63_0.png](../../_images/output_63_0.png)
Contribución por fila:
Porcentaje de representación por contribución por modalidad.
print(rowSums(chisq$residuals^2)/n)
hombre mujer
0.006037262 0.003059652
Múltiple - MCA:
Siguiendo el mismo proceso, pero ya con múltiples variables y
modalidades, se procede con el análisis múltiple, en este caso, su
cálculo manual es más complejo por lo que se utiliza la librería
FactoExtra
con la función MCA()
. Para el cálculo de la matriz de
contingencias por bloques o mejor conocidas como matriz de BURT. La
librería FactoMiner
también proporciona soluciones.
library(FactoMineR)
library(factoextra)
library(ca)
Warning message:
"package 'FactoMineR' was built under R version 4.1.3"
Warning message:
"package 'factoextra' was built under R version 4.1.3"
Loading required package: ggplot2
Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
Warning message:
"package 'ca' was built under R version 4.1.3"
En el caso de hacer análisis de correspondencias múltiple, se debe especificar el argumento método, para determinar el cálculo con la matriz “BURT”, si se deja por defecto el método, utilizará la matriz de indicadoras.
res_mca <- MCA(datos,method = 'Burt')
summary(res_mca)
Call:
MCA(X = datos, method = "Burt")
Eigenvalues
Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6 Dim.7
Variance 0.098 0.085 0.080 0.077 0.076 0.076 0.075
% of var. 1.952 1.698 1.598 1.533 1.514 1.504 1.488
Cumulative % of var. 1.952 3.649 5.248 6.781 8.295 9.799 11.287
Dim.8 Dim.9 Dim.10 Dim.11 Dim.12 Dim.13 Dim.14
Variance 0.074 0.074 0.073 0.072 0.072 0.071 0.071
% of var. 1.471 1.463 1.444 1.435 1.431 1.421 1.417
Cumulative % of var. 12.758 14.221 15.665 17.100 18.531 19.951 21.368
Dim.15 Dim.16 Dim.17 Dim.18 Dim.19 Dim.20 Dim.21
Variance 0.070 0.070 0.070 0.069 0.068 0.068 0.067
% of var. 1.403 1.397 1.386 1.379 1.359 1.346 1.330
Cumulative % of var. 22.771 24.168 25.554 26.933 28.293 29.638 30.968
Dim.22 Dim.23 Dim.24 Dim.25 Dim.26 Dim.27 Dim.28
Variance 0.066 0.065 0.063 0.063 0.063 0.063 0.063
% of var. 1.312 1.299 1.244 1.244 1.244 1.244 1.244
Cumulative % of var. 32.280 33.579 34.823 36.066 37.310 38.554 39.797
Dim.29 Dim.30 Dim.31 Dim.32 Dim.33 Dim.34 Dim.35
Variance 0.063 0.063 0.063 0.063 0.063 0.063 0.063
% of var. 1.244 1.244 1.244 1.244 1.244 1.244 1.244
Cumulative % of var. 41.041 42.285 43.528 44.772 46.016 47.259 48.503
Dim.36 Dim.37 Dim.38 Dim.39 Dim.40 Dim.41 Dim.42
Variance 0.063 0.063 0.063 0.063 0.063 0.062 0.062
% of var. 1.244 1.244 1.244 1.244 1.244 1.244 1.244
Cumulative % of var. 49.747 50.990 52.234 53.478 54.721 55.965 57.208
Dim.43 Dim.44 Dim.45 Dim.46 Dim.47 Dim.48 Dim.49
Variance 0.062 0.062 0.062 0.062 0.062 0.062 0.062
% of var. 1.244 1.244 1.244 1.244 1.244 1.244 1.244
Cumulative % of var. 58.452 59.696 60.939 62.183 63.427 64.670 65.914
Dim.50 Dim.51 Dim.52 Dim.53 Dim.54 Dim.55 Dim.56
Variance 0.062 0.062 0.062 0.062 0.062 0.062 0.062
% of var. 1.244 1.244 1.244 1.244 1.244 1.244 1.244
Cumulative % of var. 67.158 68.401 69.645 70.889 72.132 73.376 74.620
Dim.57 Dim.58 Dim.59 Dim.60 Dim.61 Dim.62 Dim.63
Variance 0.062 0.059 0.059 0.058 0.057 0.056 0.056
% of var. 1.244 1.173 1.166 1.148 1.144 1.120 1.117
Cumulative % of var. 75.863 77.036 78.202 79.350 80.493 81.614 82.730
Dim.64 Dim.65 Dim.66 Dim.67 Dim.68 Dim.69 Dim.70
Variance 0.056 0.055 0.055 0.054 0.054 0.053 0.053
% of var. 1.109 1.099 1.088 1.083 1.072 1.064 1.057
Cumulative % of var. 83.839 84.938 86.027 87.109 88.181 89.245 90.303
Dim.71 Dim.72 Dim.73 Dim.74 Dim.75 Dim.76 Dim.77
Variance 0.053 0.052 0.052 0.051 0.051 0.049 0.049
% of var. 1.052 1.042 1.026 1.018 1.011 0.980 0.976
Cumulative % of var. 91.355 92.397 93.424 94.441 95.453 96.433 97.409
Dim.78 Dim.79 Dim.80
Variance 0.048 0.042 0.040
% of var. 0.957 0.845 0.789
Cumulative % of var. 98.366 99.211 100.000
Individuals (the 10 first)
Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3 ctr cos2
1 | -0.084 0.000 0.000 | -0.323 0.004 0.003 | 0.852 0.027 0.019 |
2 | 0.191 0.001 0.003 | 0.534 0.010 0.022 | 0.334 0.004 0.009 |
3 | 0.228 0.002 0.003 | -0.868 0.027 0.038 | 0.303 0.003 0.005 |
4 | 0.225 0.002 0.002 | -0.546 0.011 0.011 | 0.385 0.006 0.006 |
5 | 1.018 0.035 0.042 | -1.130 0.046 0.052 | -0.691 0.018 0.020 |
6 | -0.348 0.004 0.005 | -0.145 0.001 0.001 | 1.138 0.049 0.052 |
7 | 0.742 0.019 0.034 | 0.223 0.002 0.003 | 0.670 0.017 0.028 |
8 | 0.830 0.023 0.036 | -0.415 0.006 0.009 | 1.018 0.039 0.055 |
9 | 1.099 0.041 0.079 | 0.174 0.001 0.002 | -0.289 0.003 0.005 |
10 | -0.231 0.002 0.003 | 0.048 0.000 0.000 | 0.421 0.007 0.009 |
Categories (the 10 first)
Dim.1 ctr cos2 v.test Dim.2 ctr cos2 v.test
edad_18 | 0.538 0.180 0.003 2.584 | -0.737 0.389 0.005 -3.540 |
edad_19 | 0.348 0.502 0.008 4.345 | -0.107 0.054 0.001 -1.329 |
edad_20 | 0.384 0.610 0.010 4.790 | -0.242 0.279 0.004 -3.020 |
edad_21 | 0.380 0.784 0.012 5.442 | -0.859 4.615 0.064 -12.315 |
edad_22 | 0.440 0.977 0.016 6.073 | -0.509 1.507 0.021 -7.033 |
edad_23 | 0.226 0.292 0.005 3.323 | -0.422 1.174 0.016 -6.215 |
edad_24 | 0.364 0.733 0.012 5.265 | -0.443 1.253 0.017 -6.419 |
edad_25 | 0.311 0.649 0.010 4.966 | -0.356 0.979 0.014 -5.685 |
edad_26 | 0.168 0.196 0.003 2.726 | -0.144 0.164 0.002 -2.328 |
edad_27 | 0.391 1.018 0.016 6.218 | -0.291 0.649 0.009 -4.630 |
Dim.3 ctr cos2 v.test
edad_18 -0.390 0.116 0.001 -1.874 |
edad_19 0.126 0.080 0.001 1.570 |
edad_20 -0.500 1.265 0.016 -6.240 |
edad_21 -0.175 0.203 0.003 -2.505 |
edad_22 0.452 1.259 0.016 6.237 |
edad_23 -0.373 0.972 0.013 -5.488 |
edad_24 0.024 0.004 0.000 0.347 |
edad_25 0.215 0.378 0.005 3.430 |
edad_26 0.383 1.238 0.016 6.207 |
edad_27 0.193 0.302 0.004 3.065 |
Categorical variables (eta2)
Dim.1 Dim.2 Dim.3
edad | 0.305 0.462 0.457 |
sexo | 0.386 0.014 0.051 |
actividad | 0.326 0.329 0.146 |
comuna | 0.236 0.362 0.480 |
Extracción de los centros de gravedad o masas:
print(colSums(res_mca$var$contrib))
Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
100 100 100 100 100
Análisis de los residuales de la matriz y sus contribuciones a las dimensiones, se realiza por el método de sedimentación en este caso, minimizando las distancias chi-cuadrado. Para este caso 1 dimensión bastaría, para recoger el 98% de las inercias.
res_mjca <- mjca(datos, lambda = 'Burt')
summary(res_mjca)
Principal inertias (eigenvalues):
dim value % cum% scree plot
1 0.098091 2.0 2.0 *
2 0.085315 1.7 3.6
3 0.080311 1.6 5.2
4 0.077062 1.5 6.8
5 0.076107 1.5 8.3
6 0.075565 1.5 9.8
7 0.074772 1.5 11.3
8 0.073923 1.5 12.8
9 0.073512 1.5 14.2
10 0.072593 1.4 15.7
11 0.072098 1.4 17.1
12 0.071911 1.4 18.5
13 0.071388 1.4 20.0
14 0.071205 1.4 21.4
15 0.070499 1.4 22.8
16 0.070206 1.4 24.2
17 0.069676 1.4 25.6
18 0.069300 1.4 26.9
19 0.068321 1.4 28.3
20 0.067620 1.3 29.6
21 0.066832 1.3 31.0
22 0.065913 1.3 32.3
23 0.065299 1.3 33.6
24 0.062500 1.2 34.8
25 0.062500 1.2 36.1
26 0.062500 1.2 37.3
27 0.062500 1.2 38.6
28 0.062500 1.2 39.8
29 0.062500 1.2 41.0
30 0.062500 1.2 42.3
31 0.062500 1.2 43.5
32 0.062500 1.2 44.8
33 0.062500 1.2 46.0
34 0.062500 1.2 47.3
35 0.062500 1.2 48.5
36 0.062500 1.2 49.7
37 0.062500 1.2 51.0
38 0.062500 1.2 52.2
39 0.062500 1.2 53.5
40 0.062500 1.2 54.7
41 0.062500 1.2 56.0
42 0.062500 1.2 57.2
43 0.062500 1.2 58.5
44 0.062500 1.2 59.7
45 0.062500 1.2 60.9
46 0.062500 1.2 62.2
47 0.062500 1.2 63.4
48 0.062500 1.2 64.7
49 0.062500 1.2 65.9
50 0.062500 1.2 67.2
51 0.062500 1.2 68.4
52 0.062500 1.2 69.6
53 0.062500 1.2 70.9
54 0.062500 1.2 72.1
55 0.062500 1.2 73.4
56 0.062500 1.2 74.6
57 0.062500 1.2 75.9
58 0.058926 1.2 77.0
59 0.058607 1.2 78.2
60 0.057684 1.1 79.3
61 0.057474 1.1 80.5
62 0.056309 1.1 81.6
63 0.056111 1.1 82.7
64 0.055720 1.1 83.8
65 0.055230 1.1 84.9
66 0.054697 1.1 86.0
67 0.054425 1.1 87.1
68 0.053872 1.1 88.2
69 0.053470 1.1 89.2
70 0.053134 1.1 90.3
71 0.052886 1.1 91.4
72 0.052378 1.0 92.4
73 0.051578 1.0 93.4
74 0.051149 1.0 94.4
75 0.050830 1.0 95.5
76 0.049258 1.0 96.4
77 0.049044 1.0 97.4
78 0.048114 1.0 98.4
79 0.042474 0.8 99.2
80 0.039626 0.8 100.0
-------- -----
Total: 5.025517 100.0
Columns:
name mass qlt inr k=1 cor ctr k=2 cor ctr
1 | edad:18 | 1 8 12 | -538 3 2 | 737 5 4 |
2 | edad:19 | 4 9 12 | -348 8 5 | 107 1 1 |
3 | edad:20 | 4 14 12 | -384 10 6 | 242 4 3 |
4 | edad:21 | 5 77 12 | -380 12 8 | 859 64 46 |
5 | edad:22 | 5 37 12 | -440 16 10 | 509 21 15 |
6 | edad:23 | 6 21 12 | -226 5 3 | 422 16 12 |
7 | edad:24 | 5 29 12 | -364 12 7 | 443 17 13 |
8 | edad:25 | 7 24 12 | -311 10 6 | 356 14 10 |
9 | edad:26 | 7 5 12 | -168 3 2 | 144 2 2 |
10 | edad:27 | 7 25 12 | -391 16 10 | 291 9 6 |
11 | edad:28 | 6 36 12 | -360 13 8 | 487 23 17 |
12 | edad:29 | 7 11 12 | 60 0 0 | 313 11 8 |
13 | edad:30 | 7 12 12 | -131 2 1 | 297 10 7 |
14 | edad:31 | 6 15 12 | -342 12 8 | 156 3 2 |
15 | edad:32 | 6 14 12 | 124 2 1 | 347 12 9 |
16 | edad:33 | 6 5 12 | -100 1 1 | -208 4 3 |
17 | edad:34 | 6 0 12 | 66 0 0 | 1 0 0 |
18 | edad:35 | 7 12 12 | -53 0 0 | 326 12 8 |
19 | edad:36 | 7 1 12 | -18 0 0 | -64 0 0 |
20 | edad:37 | 6 13 12 | 379 13 8 | -37 0 0 |
21 | edad:38 | 6 13 12 | 374 13 8 | 11 0 0 |
22 | edad:39 | 6 2 12 | -141 2 1 | -44 0 0 |
23 | edad:40 | 5 12 12 | 262 6 4 | 266 6 4 |
24 | edad:41 | 5 9 12 | 286 7 4 | -170 2 2 |
25 | edad:42 | 5 1 12 | 69 0 0 | -105 1 1 |
26 | edad:43 | 5 9 12 | 319 9 5 | 4 0 0 |
27 | edad:44 | 5 16 12 | 439 16 10 | -17 0 0 |
28 | edad:45 | 5 19 12 | 465 19 12 | 3 0 0 |
29 | edad:46 | 6 7 12 | 244 6 4 | -127 2 1 |
30 | edad:47 | 6 6 12 | 201 4 2 | 166 3 2 |
31 | edad:48 | 6 2 12 | 112 1 1 | 121 1 1 |
32 | edad:49 | 6 8 12 | 150 2 1 | -247 6 4 |
33 | edad:50 | 5 27 12 | 265 6 4 | -511 21 15 |
34 | edad:51 | 6 10 12 | 245 6 4 | -214 4 3 |
35 | edad:52 | 6 21 12 | 296 8 5 | -375 13 9 |
36 | edad:53 | 6 7 12 | 201 4 3 | -154 2 2 |
37 | edad:54 | 6 55 12 | 601 35 22 | -462 21 15 |
38 | edad:55 | 5 4 12 | 182 3 2 | -132 1 1 |
39 | edad:56 | 4 0 12 | 36 0 0 | 67 0 0 |
40 | edad:57 | 4 19 12 | 278 5 3 | -455 14 10 |
41 | edad:58 | 4 18 12 | -325 6 4 | -452 12 8 |
42 | edad:59 | 3 39 12 | -369 7 5 | -774 32 23 |
43 | edad:60 | 4 22 12 | -68 0 0 | -618 22 16 |
44 | edad:61 | 3 3 12 | 191 2 1 | -189 2 1 |
45 | edad:62 | 3 6 12 | 246 3 2 | -304 4 3 |
46 | edad:63 | 3 9 12 | -281 4 2 | -341 5 4 |
47 | edad:64 | 3 29 12 | -359 5 3 | -758 24 18 |
48 | edad:65 | 2 53 12 | -859 19 12 | -1124 33 24 |
49 | edad:66 | 2 28 12 | -268 2 1 | -1048 27 19 |
50 | edad:67 | 1 5 12 | -441 4 2 | -264 1 1 |
51 | edad:68 | 1 30 12 | -905 11 7 | -1165 18 13 |
52 | edad:69 | 1 2 12 | 33 0 0 | -384 2 1 |
53 | edad:70 | 0 12 12 | -1331 12 8 | -266 0 0 |
54 | edad:71 | 0 9 12 | -607 2 1 | -1001 6 5 |
55 | edad:72 | 0 2 12 | -790 1 1 | -546 1 0 |
56 | edad:73 | 0 18 12 | -1523 3 2 | -3389 15 11 |
57 | edad:74 | 0 5 12 | 1574 2 1 | -1726 3 2 |
58 | edad:75 | 0 29 12 | -4185 15 9 | -4076 14 10 |
59 | sexo:hombre | 84 482 9 | -488 465 204 | -91 16 8 |
60 | sexo:mujer | 166 482 4 | 247 465 104 | 46 16 4 |
61 | actividad:comercio | 153 278 5 | -52 16 4 | -206 261 76 |
62 | actividad:produccion | 49 321 10 | 580 319 168 | 48 2 1 |
63 | actividad:servicios | 48 505 10 | -424 168 89 | 601 337 205 |
64 | comuna:1 | 23 20 11 | -15 0 0 | 224 20 13 |
65 | comuna:10 | 21 433 12 | -665 157 94 | -879 275 189 |
66 | comuna:11 | 2 16 12 | -635 16 10 | -130 1 0 |
67 | comuna:12 | 4 24 12 | -310 7 4 | 484 17 12 |
68 | comuna:13 | 19 19 12 | 183 11 7 | 155 8 5 |
69 | comuna:14 | 1 0 12 | -25 0 0 | 74 0 0 |
70 | comuna:15 | 4 25 12 | -282 5 3 | 557 20 15 |
71 | comuna:16 | 9 21 12 | -371 20 12 | 101 1 1 |
72 | comuna:2 | 14 31 12 | -44 0 0 | 361 31 22 |
73 | comuna:3 | 14 9 12 | 161 6 4 | -105 3 2 |
74 | comuna:4 | 31 9 11 | 56 2 1 | -113 7 5 |
75 | comuna:5 | 15 3 12 | 97 2 1 | -52 1 0 |
76 | comuna:50 | 1 11 12 | 708 5 3 | -815 6 5 |
77 | comuna:6 | 13 7 12 | 154 5 3 | 77 1 1 |
78 | comuna:60 | 8 37 12 | 452 27 17 | -265 9 7 |
79 | comuna:7 | 24 3 11 | 46 1 1 | 71 2 1 |
80 | comuna:70 | 0 2 12 | -410 1 1 | 385 1 1 |
81 | comuna:8 | 14 39 12 | 401 39 24 | 34 0 0 |
82 | comuna:80 | 5 4 12 | 24 0 0 | 210 4 3 |
83 | comuna:9 | 21 2 11 | 56 1 1 | 43 1 0 |
84 | comuna:90 | 4 41 12 | -233 4 2 | 726 37 27 |
Analisis de dependencia por bloque
chisq.test(datos$edad, datos$sexo)
Warning message in chisq.test(datos$edad, datos$sexo):
"Chi-squared approximation may be incorrect"
Pearson's Chi-squared test
data: datos$edad and datos$sexo
X-squared = 161.15, df = 57, p-value = 7.023e-12
chisq.test(datos$edad, datos$actividad)
Warning message in chisq.test(datos$edad, datos$actividad):
"Chi-squared approximation may be incorrect"
Pearson's Chi-squared test
data: datos$edad and datos$actividad
X-squared = 250.56, df = 114, p-value = 2.975e-12
chisq.test(datos$edad, datos$comuna)
Warning message in chisq.test(datos$edad, datos$comuna):
"Chi-squared approximation may be incorrect"
Pearson's Chi-squared test
data: datos$edad and datos$comuna
X-squared = 1156.2, df = 1140, p-value = 0.3629
chisq.test(datos$actividad, datos$sexo)
Pearson's Chi-squared test
data: datos$actividad and datos$sexo
X-squared = 85.738, df = 2, p-value < 2.2e-16
chisq.test(datos$actividad, datos$comuna)
Warning message in chisq.test(datos$actividad, datos$comuna):
"Chi-squared approximation may be incorrect"
Pearson's Chi-squared test
data: datos$actividad and datos$comuna
X-squared = 154.47, df = 40, p-value = 2.298e-15