Multidimensional Scaling
Data
Recopilada de las principales ciudades del Perú
library(kableExtra)
dreal <- read.table("distanciareal.csv", header = TRUE,fill = TRUE, sep = ";")
dreal %>% kable() %>% kable_styling()
Distancias | Abancay | Arequipa | Ayacucho | Cajamarca | Cerro.de.Pasco | Cusco | Chachapoyas | Chiclayo | Chimbote | Huancavelica | Huancayo | Huanuco | Huaraz | Ica | Lima | Moquegua | Moyobamba | Piura | Pucallpa | Pto..Maldonado | Puno | Tacna | Trujillo | Tumbes |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Abancay | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Arequipa | 340.07 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Ayacucho | 154.19 | 461.75 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Cajamarca | 946.62 | 1276.85 | 815.47 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Cerro de Pasco | 492.18 | 815.28 | 353.54 | 463.08 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Cusco | 99.21 | 323.13 | 246.96 | 1005.81 | 563.13 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Chachapoyas | 987.68 | 1324.75 | 868.47 | 128.76 | 526.75 | 1036.48 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Chiclayo | 1070.85 | 1401.42 | 940.06 | 152.43 | 586.97 | 1142.47 | 227.72 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Chimbote | 802.62 | 1117.50 | 658.63 | 212.30 | 311.96 | 875.09 | 328.15 | 291.19 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Huancavelica | 245.28 | 546.42 | 91.54 | 735.31 | 272.30 | 335.39 | 795.52 | 855.55 | 571.22 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Huancayo | 307.12 | 624.22 | 162.65 | 653.93 | 191.18 | 387.35 | 711.75 | 777.41 | 496.88 | 84.20 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Huanuco | 550.47 | 881.43 | 421.26 | 396.28 | 84.20 | 612.86 | 449.26 | 529.62 | 275.08 | 346.25 | 262.56 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Huaraz | 681.35 | 1002.50 | 541.26 | 284.51 | 189.18 | 750.92 | 370.42 | 398.92 | 127.04 | 456.79 | 378.62 | 148.45 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Ica | 311.43 | 519.90 | 191.53 | 825.24 | 380.22 | 410.57 | 903.01 | 327.66 | 636.49 | 164.26 | 229.31 | 463.30 | 540.78 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Lima | 483.11 | 764.57 | 328.96 | 567.72 | 174.54 | 572.85 | 655.80 | 664.14 | 372.98 | 238.01 | 197.98 | 252.39 | 286.11 | 264.08 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Moquegua | 448.27 | 109.50 | 571.08 | 1386.31 | 924.57 | 423.53 | 1434.05 | 1510.45 | 1225.91 | 655.14 | 733.45 | 990.94 | 1111.54 | 620.84 | 870.36 | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Moyobamba | 955.98 | 1295.66 | 847.78 | 212.58 | 523.14 | 996.45 | 99.76 | 327.33 | 382.75 | 781.96 | 697.80 | 440.55 | 394.14 | 903.36 | 670.15 | 1404.23 | NA | NA | NA | NA | NA | NA | NA | NA |
Piura | 1265.11 | 1592.20 | 1130.47 | 320.25 | 776.93 | 1325.87 | 328.03 | 194.84 | 486.02 | 1047.38 | 968.01 | 714.78 | 590.72 | 1122.44 | 858.99 | 1701.46 | 416.17 | NA | NA | NA | NA | NA | NA | NA |
Pucallpa | 611.41 | 949.57 | 532.65 | 457.45 | 317.54 | 637.16 | 436.44 | 609.88 | 450.99 | 491.78 | 416.00 | 252.90 | 351.73 | 644.97 | 491.11 | 1055.69 | 373.27 | 759.13 | NA | NA | NA | NA | NA | NA |
Pto. Maldonado | 416.81 | 492.43 | 549.98 | 1187.14 | 799.70 | 319.10 | 1185.96 | 1335.39 | 1099.68 | 628.63 | 658.03 | 824.70 | 972.74 | 727.14 | 855.24 | 544.92 | 1123.20 | 1502.18 | 750.94 | NA | NA | NA | NA | NA |
Puno | 393.61 | 172.73 | 541.52 | 1336.09 | 885.60 | 332.21 | 1368.69 | 1470.15 | 1196.22 | 632.52 | 700.15 | 941.19 | 1074.72 | 644.34 | 865.75 | 179.33 | 1327.67 | 1655.70 | 964.25 | 371.82 | NA | NA | NA | NA |
Tacna | 562.76 | 225.48 | 687.13 | 1502.33 | 1040.61 | 532.16 | 1549.48 | 1626.41 | 1341.57 | 771.01 | 849.49 | 1106.87 | 1227.51 | 732.11 | 984.46 | 116.05 | 1518.64 | 1817.49 | 1167.49 | 612.80 | 242.62 | NA | NA | NA |
Trujillo | 909.28 | 1229.29 | 768.68 | 119.30 | 417.14 | 977.58 | 247.63 | 174.44 | 117.23 | 682.96 | 606.16 | 366.93 | 227.98 | 753.36 | 490.10 | 1338.10 | 324.33 | 369.09 | 493.76 | 1186.57 | 1302.55 | 1453.96 | NA | NA |
Tumbes | 1394.16 | 1727.97 | 1267.62 | 453.99 | 916.58 | 1446.92 | 412.46 | 361.58 | 645.74 | 1188.88 | 1106.93 | 84662.00 | 737.51 | 1277.04 | 1016.27 | 1837.47 | 474.06 | 182.17 | 844.49 | 1595.43 | 1778.97 | 1953.36 | 529.15 | NA |
Preparación de la data
Hacemos que las ciudades sean el nombre de fila
La función as.dist()
convierte nuestra data en una
matriz de distancias
## Abancay Arequipa Ayacucho Cajamarca Cerro de Pasco Cusco
## Arequipa 340.07
## Ayacucho 154.19 461.75
## Cajamarca 946.62 1276.85 815.47
## Cerro de Pasco 492.18 815.28 353.54 463.08
## Cusco 99.21 323.13 246.96 1005.81 563.13
## Chachapoyas 987.68 1324.75 868.47 128.76 526.75 1036.48
## Chiclayo 1070.85 1401.42 940.06 152.43 586.97 1142.47
## Chimbote 802.62 1117.50 658.63 212.30 311.96 875.09
## Huancavelica 245.28 546.42 91.54 735.31 272.30 335.39
## Huancayo 307.12 624.22 162.65 653.93 191.18 387.35
## Huanuco 550.47 881.43 421.26 396.28 84.20 612.86
## Huaraz 681.35 1002.50 541.26 284.51 189.18 750.92
## Ica 311.43 519.90 191.53 825.24 380.22 410.57
## Lima 483.11 764.57 328.96 567.72 174.54 572.85
## Moquegua 448.27 109.50 571.08 1386.31 924.57 423.53
## Moyobamba 955.98 1295.66 847.78 212.58 523.14 996.45
## Piura 1265.11 1592.20 1130.47 320.25 776.93 1325.87
## Pucallpa 611.41 949.57 532.65 457.45 317.54 637.16
## Pto. Maldonado 416.81 492.43 549.98 1187.14 799.70 319.10
## Puno 393.61 172.73 541.52 1336.09 885.60 332.21
## Tacna 562.76 225.48 687.13 1502.33 1040.61 532.16
## Trujillo 909.28 1229.29 768.68 119.30 417.14 977.58
## Tumbes 1394.16 1727.97 1267.62 453.99 916.58 1446.92
## Chachapoyas Chiclayo Chimbote Huancavelica Huancayo Huanuco
## Arequipa
## Ayacucho
## Cajamarca
## Cerro de Pasco
## Cusco
## Chachapoyas
## Chiclayo 227.72
## Chimbote 328.15 291.19
## Huancavelica 795.52 855.55 571.22
## Huancayo 711.75 777.41 496.88 84.20
## Huanuco 449.26 529.62 275.08 346.25 262.56
## Huaraz 370.42 398.92 127.04 456.79 378.62 148.45
## Ica 903.01 327.66 636.49 164.26 229.31 463.30
## Lima 655.80 664.14 372.98 238.01 197.98 252.39
## Moquegua 1434.05 1510.45 1225.91 655.14 733.45 990.94
## Moyobamba 99.76 327.33 382.75 781.96 697.80 440.55
## Piura 328.03 194.84 486.02 1047.38 968.01 714.78
## Pucallpa 436.44 609.88 450.99 491.78 416.00 252.90
## Pto. Maldonado 1185.96 1335.39 1099.68 628.63 658.03 824.70
## Puno 1368.69 1470.15 1196.22 632.52 700.15 941.19
## Tacna 1549.48 1626.41 1341.57 771.01 849.49 1106.87
## Trujillo 247.63 174.44 117.23 682.96 606.16 366.93
## Tumbes 412.46 361.58 645.74 1188.88 1106.93 84662.00
## Huaraz Ica Lima Moquegua Moyobamba Piura Pucallpa
## Arequipa
## Ayacucho
## Cajamarca
## Cerro de Pasco
## Cusco
## Chachapoyas
## Chiclayo
## Chimbote
## Huancavelica
## Huancayo
## Huanuco
## Huaraz
## Ica 540.78
## Lima 286.11 264.08
## Moquegua 1111.54 620.84 870.36
## Moyobamba 394.14 903.36 670.15 1404.23
## Piura 590.72 1122.44 858.99 1701.46 416.17
## Pucallpa 351.73 644.97 491.11 1055.69 373.27 759.13
## Pto. Maldonado 972.74 727.14 855.24 544.92 1123.20 1502.18 750.94
## Puno 1074.72 644.34 865.75 179.33 1327.67 1655.70 964.25
## Tacna 1227.51 732.11 984.46 116.05 1518.64 1817.49 1167.49
## Trujillo 227.98 753.36 490.10 1338.10 324.33 369.09 493.76
## Tumbes 737.51 1277.04 1016.27 1837.47 474.06 182.17 844.49
## Pto. Maldonado Puno Tacna Trujillo
## Arequipa
## Ayacucho
## Cajamarca
## Cerro de Pasco
## Cusco
## Chachapoyas
## Chiclayo
## Chimbote
## Huancavelica
## Huancayo
## Huanuco
## Huaraz
## Ica
## Lima
## Moquegua
## Moyobamba
## Piura
## Pucallpa
## Pto. Maldonado
## Puno 371.82
## Tacna 612.80 242.62
## Trujillo 1186.57 1302.55 1453.96
## Tumbes 1595.43 1778.97 1953.36 529.15
MDS
Con k = 3 determinamos que la proyección de los datos sea en 3 dimensiones
## Warning: package 'MASS' was built under R version 4.3.1
## $points
## [,1] [,2] [,3]
## Abancay -3.823493e+00 -361.0616057 2.803881e+01
## Arequipa -7.185814e+00 -689.4297484 -5.695043e+01
## Ayacucho -2.573379e+00 -227.4427206 -3.112791e+01
## Cajamarca 5.593515e+00 585.8017376 5.088899e+01
## Cerro de Pasco 9.551556e-01 126.3830505 -1.432646e+01
## Cusco -4.281111e+00 -417.5003215 1.019389e+02
## Chachapoyas 6.071243e+00 619.5186100 1.600811e+02
## Chiclayo 6.769793e+00 703.7890084 -2.700960e+02
## Chimbote 3.864660e+00 428.1611982 -7.707694e+01
## Huancavelica -1.769508e+00 -142.6070093 -5.928677e+01
## Huancayo -9.578501e-01 -64.6233248 -2.961463e+01
## Huanuco -4.232806e+04 1.7863555 2.210633e-02
## Huaraz 2.796159e+00 314.2722540 -3.057939e+01
## Ica -2.494132e+00 -155.3539481 -3.760759e+02
## Lima 1.503375e-01 63.9515891 -1.577391e+02
## Moquegua -8.282609e+00 -798.5252803 -6.893303e+01
## Moyobamba 5.702115e+00 572.1425158 2.355805e+02
## Piura 8.710478e+00 903.8883914 2.368014e+01
## Pucallpa 2.042229e+00 199.9009783 2.564425e+02
## Pto. Maldonado -5.153121e+00 -540.0928032 3.556939e+02
## Puno -7.599892e+00 -749.8726297 8.277161e+01
## Tacna -9.442985e+00 -914.5692298 -7.665344e+01
## Trujillo 5.023977e+00 541.1582987 -4.668423e+01
## Tumbes 4.233394e+04 0.3246338 5.667867e-03
##
## $stress
## [1] 83.19931
## [1] 83.199
Modelamiento para diferentes valores de k
Resultados <- rep(NA, 5)
for(i in 1:length(Resultados)){
Resultados[i] = isoMDS(dreal, k = i,
trace = FALSE)$stress
}
Resultados
## [1] 84.77796 83.31448 83.19931 83.15835 83.15828
Representamos los valores de ajuste
## Warning: package 'ggplot2' was built under R version 4.3.2
## Warning: package 'reshape2' was built under R version 4.3.1
DatosGrafico <- data.frame(
Dim1 = mds$points[, 1],
Dim2 = mds$points[, 2],
Dim3 = mds$points[, 3]
)
DatosGrafico
## Dim1 Dim2 Dim3
## Abancay -3.823493e+00 -361.0616057 2.803881e+01
## Arequipa -7.185814e+00 -689.4297484 -5.695043e+01
## Ayacucho -2.573379e+00 -227.4427206 -3.112791e+01
## Cajamarca 5.593515e+00 585.8017376 5.088899e+01
## Cerro de Pasco 9.551556e-01 126.3830505 -1.432646e+01
## Cusco -4.281111e+00 -417.5003215 1.019389e+02
## Chachapoyas 6.071243e+00 619.5186100 1.600811e+02
## Chiclayo 6.769793e+00 703.7890084 -2.700960e+02
## Chimbote 3.864660e+00 428.1611982 -7.707694e+01
## Huancavelica -1.769508e+00 -142.6070093 -5.928677e+01
## Huancayo -9.578501e-01 -64.6233248 -2.961463e+01
## Huanuco -4.232806e+04 1.7863555 2.210633e-02
## Huaraz 2.796159e+00 314.2722540 -3.057939e+01
## Ica -2.494132e+00 -155.3539481 -3.760759e+02
## Lima 1.503375e-01 63.9515891 -1.577391e+02
## Moquegua -8.282609e+00 -798.5252803 -6.893303e+01
## Moyobamba 5.702115e+00 572.1425158 2.355805e+02
## Piura 8.710478e+00 903.8883914 2.368014e+01
## Pucallpa 2.042229e+00 199.9009783 2.564425e+02
## Pto. Maldonado -5.153121e+00 -540.0928032 3.556939e+02
## Puno -7.599892e+00 -749.8726297 8.277161e+01
## Tacna -9.442985e+00 -914.5692298 -7.665344e+01
## Trujillo 5.023977e+00 541.1582987 -4.668423e+01
## Tumbes 4.233394e+04 0.3246338 5.667867e-03
Gráfico Dim1 vs Dim2
ggplot(DatosGrafico, aes(x = Dim1, y = Dim2)) +
geom_point() +
labs(x = "Dimensión 1",
y = "Dimensión 2",
title = "Espacio bidimensional") +
geom_text(label = rownames(DatosGrafico),
vjust = -0.5,
size = 5) +
theme(text = element_text(size = 25),
plot.title = element_text(hjust = 0.5))
Gráfico Dim 1 vs Dim 3
ggplot(DatosGrafico, aes(x = Dim1, y = Dim3)) +
geom_point() +
labs(x = "Dimensión 1",
y = "Dimensión 3",
title = "Espacio bidimensional") +
geom_text(label = rownames(DatosGrafico),
vjust = -0.5,
size = 3) +
theme(text = element_text(size = 15),
plot.title = element_text(hjust = 0.5))
#Gráfico Dim3 vs Dim2
ggplot(DatosGrafico, aes(x = Dim3, y = Dim2)) +
geom_point() +
labs(x = "Dimensión 3",
y = "Dimensión 2",
title = "Espacio bidimensional") +
geom_text(label = rownames(DatosGrafico),
vjust = -0.5,
size = 3) +
theme(text = element_text(size = 15),
plot.title = element_text(hjust = 0.5))