Paso 1. Obtener los datos

df <- fread("/Users/antoniodiaz/Desktop/MODULO2/turismo_mexico_2019_2023.csv")

# Ver datos
print(df)
##       Año Visitantes_internacionales Turistas_internacionales
##     <int>                      <int>                    <int>
##  1:  1995                    8233000                  2516000
##  2:  1996                    8692270                  2219270
##  3:  1997                    8635667                  2297667
##  4:  1998                    8961106                  2172396
##  5:  1999                    9019718                  1771718
##  6:  2000                  105673370                 20641370
##  7:  2001                  100718403                 19810459
##  8:  2002                  100153185                 19666677
##  9:  2003                   92329842                 18665384
## 10:  2004                   99249706                 20617748
## 11:  2005                  103146067                 21914917
## 12:  2006                   97700995                 21352605
## 13:  2007                   93582018                 21605754
## 14:  2008                   92947651                 22930584
## 15:  2009                   88044044                 22346260
## 16:  2010                   81953293                 23289749
## 17:  2011                   75731791                 23403263
## 18:  2012                   76748672                 23402545
## 19:  2013                   78100172                 24150514
## 20:  2014                   81042075                 29345610
## 21:  2015                   87128633                 32093324
## 22:  2016                   94853116                 35079365
## 23:  2017                   99349286                 39290943
## 24:  2018                   96497026                 41312720
## 25:  2019                   97406037                 45024453
## 26:  2020                   51128042                 24283536
## 27:  2021                   55301421                 31860392
## 28:  2022                   65994498                 38325550
## 29:  2023                   74817746                 41949428
##       Año Visitantes_internacionales Turistas_internacionales
##     Excursionistas_internacionales
##                              <int>
##  1:                        5717000
##  2:                        6473000
##  3:                        6338000
##  4:                        6788710
##  5:                        7248000
##  6:                       85032000
##  7:                       80907944
##  8:                       80486508
##  9:                       73664458
## 10:                       78631958
## 11:                       81231150
## 12:                       76348390
## 13:                       71976264
## 14:                       70017066
## 15:                       65697784
## 16:                       58663544
## 17:                       52328528
## 18:                       53346127
## 19:                       53949658
## 20:                       51696465
## 21:                       55035309
## 22:                       59773751
## 23:                       60058343
## 24:                       55184306
## 25:                       52381584
## 26:                       26844506
## 27:                       23441029
## 28:                       27668948
## 29:                       32868318
##     Excursionistas_internacionales

Paso 2. Preparar los datos

# Quitamos la columna Año
df_cluster <- df[, -c("Año")]

# Escalamos los datos
df_scaled <- scale(df_cluster)

Paso 3. Determinar número de clusters

fviz_nbclust(df_scaled, kmeans, method = "wss")

Paso 4. Determinar número de clusters

set.seed(123) # semilla para reproducibilidad
km <- kmeans(df_scaled, centers = 3, nstart = 25)

# Añadir columna de cluster al dataset original
df$Cluster <- km$cluster

# Mostrar resultados
print(df)
##       Año Visitantes_internacionales Turistas_internacionales
##     <int>                      <int>                    <int>
##  1:  1995                    8233000                  2516000
##  2:  1996                    8692270                  2219270
##  3:  1997                    8635667                  2297667
##  4:  1998                    8961106                  2172396
##  5:  1999                    9019718                  1771718
##  6:  2000                  105673370                 20641370
##  7:  2001                  100718403                 19810459
##  8:  2002                  100153185                 19666677
##  9:  2003                   92329842                 18665384
## 10:  2004                   99249706                 20617748
## 11:  2005                  103146067                 21914917
## 12:  2006                   97700995                 21352605
## 13:  2007                   93582018                 21605754
## 14:  2008                   92947651                 22930584
## 15:  2009                   88044044                 22346260
## 16:  2010                   81953293                 23289749
## 17:  2011                   75731791                 23403263
## 18:  2012                   76748672                 23402545
## 19:  2013                   78100172                 24150514
## 20:  2014                   81042075                 29345610
## 21:  2015                   87128633                 32093324
## 22:  2016                   94853116                 35079365
## 23:  2017                   99349286                 39290943
## 24:  2018                   96497026                 41312720
## 25:  2019                   97406037                 45024453
## 26:  2020                   51128042                 24283536
## 27:  2021                   55301421                 31860392
## 28:  2022                   65994498                 38325550
## 29:  2023                   74817746                 41949428
##       Año Visitantes_internacionales Turistas_internacionales
##     Excursionistas_internacionales Cluster
##                              <int>   <int>
##  1:                        5717000       1
##  2:                        6473000       1
##  3:                        6338000       1
##  4:                        6788710       1
##  5:                        7248000       1
##  6:                       85032000       2
##  7:                       80907944       2
##  8:                       80486508       2
##  9:                       73664458       2
## 10:                       78631958       2
## 11:                       81231150       2
## 12:                       76348390       2
## 13:                       71976264       2
## 14:                       70017066       2
## 15:                       65697784       2
## 16:                       58663544       2
## 17:                       52328528       2
## 18:                       53346127       2
## 19:                       53949658       2
## 20:                       51696465       3
## 21:                       55035309       3
## 22:                       59773751       3
## 23:                       60058343       3
## 24:                       55184306       3
## 25:                       52381584       3
## 26:                       26844506       3
## 27:                       23441029       3
## 28:                       27668948       3
## 29:                       32868318       3
##     Excursionistas_internacionales Cluster
# Revisar tamaño de cada cluster
table(df$Cluster)
## 
##  1  2  3 
##  5 14 10
# Revisar centroides de cada cluster
km$centers
##   Visitantes_internacionales Turistas_internacionales
## 1                 -1.9675265               -1.7061757
## 2                  0.5554222               -0.1232594
## 3                  0.2061722                1.0256510
##   Excursionistas_internacionales
## 1                     -1.6760597
## 2                      0.7581984
## 3                     -0.2234480

Paso 5. Visualización de los clusters

fviz_cluster(km, 
             data = df_scaled,
             geom = "point",        
             ellipse.type = "convex",
             ggtheme = theme_minimal(),
             main = "Clusters de Turismo Internacional en México (1995–2023)")

Paso 6: Conclusión

El análisis de clusterización de los años 1995–2023 en el turismo internacional de México permitió identificar tres clusters:

Cluster 1: Años de crisis turística (como 2009 y 2020), que fueron por caídas fuertes en visitantes y excursionistas.

Cluster 2: Años donde vinieron muchos visitantes de paso (excursionistas), pero menos turistas que se quedaran varios días.

Cluster 3: Años buenos, donde llegaron muchos turistas internacionales que se quedaban varios días, época de auge turístico.

Estos resultados muestran cómo el turismo en México ha atravesado épocas de caída, recuperación y crecimiento sostenido, reflejando el impacto de factores externos (crisis económicas, pandemia) y el fortalecimiento de México como destino internacional.

LS0tCnRpdGxlOiAiQ2x1c3Rlcml6YWNpw7NuIFR1cmlzbW8gZW4gTcOpeGljbyAxOTk1LTIwMjMiCmF1dGhvcjogIkFudG9uaW8gRMOtYXogQTAwODM3MjU5IgpkYXRlOiAiMjAyNS0wOC0xOSIKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHRydWUKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQogICAgdGhlbWU6IGRhcmtseQotLS0KPGNlbnRlcj4KIVtdKC9Vc2Vycy9hbnRvbmlvZGlhei9EZXNrdG9wL3R1cmlzbW8tZW4tbcOpeGljby5qcGcpCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KI2luc3RhbGwucGFja2VnZXMoImNsdXN0ZXIiKSAjQW7DoWxpc2lzIGRlIEFncnVwYW1pZW50bwpsaWJyYXJ5KGNsdXN0ZXIpCiNpbnN0YWxsLnBhY2tlZ2VzKCJnZ3Bsb3QyIikgI0dyYWZpY2FyCmxpYnJhcnkoZ2dwbG90MikKI2luc3RhbGwucGFja2VnZXMoImRhdGEudGFibGUiKSAjTWFuZWpvIGRlIG11Y2hvcyBkYXRvcwpsaWJyYXJ5KGRhdGEudGFibGUpCiNpbnN0YWxsLnBhY2thZ2VzKCJmYWN0b2V4dHJhIikgI0dyYWZpY2Egb3B0aW1pemFjacOzbiBkZSBuw7ptZXJvIGRlIGNsdXN0ZXJzCmxpYnJhcnkoZmFjdG9leHRyYSkKYGBgCgoKIyA8c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW47Ij4gUGFzbyAxLiBPYnRlbmVyIGxvcyBkYXRvcyA8L3NwYW4+CmBgYHtyfQpkZiA8LSBmcmVhZCgiL1VzZXJzL2FudG9uaW9kaWF6L0Rlc2t0b3AvTU9EVUxPMi90dXJpc21vX21leGljb18yMDE5XzIwMjMuY3N2IikKCiMgVmVyIGRhdG9zCnByaW50KGRmKQpgYGAKCgojIDxzcGFuIHN0eWxlPSJjb2xvcjpncmVlbjsiPiBQYXNvIDIuIFByZXBhcmFyIGxvcyBkYXRvcyA8L3NwYW4+CmBgYHtyfQojIFF1aXRhbW9zIGxhIGNvbHVtbmEgQcOxbwpkZl9jbHVzdGVyIDwtIGRmWywgLWMoIkHDsW8iKV0KCiMgRXNjYWxhbW9zIGxvcyBkYXRvcwpkZl9zY2FsZWQgPC0gc2NhbGUoZGZfY2x1c3RlcikKYGBgCgoKIyA8c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW47Ij4gUGFzbyAzLiBEZXRlcm1pbmFyIG7Dum1lcm8gZGUgY2x1c3RlcnMgPC9zcGFuPgpgYGB7cn0KZnZpel9uYmNsdXN0KGRmX3NjYWxlZCwga21lYW5zLCBtZXRob2QgPSAid3NzIikKYGBgCgoKIyA8c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW47Ij4gUGFzbyA0LiBEZXRlcm1pbmFyIG7Dum1lcm8gZGUgY2x1c3RlcnMgPC9zcGFuPgpgYGB7cn0KCnNldC5zZWVkKDEyMykgIyBzZW1pbGxhIHBhcmEgcmVwcm9kdWNpYmlsaWRhZAprbSA8LSBrbWVhbnMoZGZfc2NhbGVkLCBjZW50ZXJzID0gMywgbnN0YXJ0ID0gMjUpCgojIEHDsWFkaXIgY29sdW1uYSBkZSBjbHVzdGVyIGFsIGRhdGFzZXQgb3JpZ2luYWwKZGYkQ2x1c3RlciA8LSBrbSRjbHVzdGVyCgojIE1vc3RyYXIgcmVzdWx0YWRvcwpwcmludChkZikKCiMgUmV2aXNhciB0YW1hw7FvIGRlIGNhZGEgY2x1c3Rlcgp0YWJsZShkZiRDbHVzdGVyKQoKIyBSZXZpc2FyIGNlbnRyb2lkZXMgZGUgY2FkYSBjbHVzdGVyCmttJGNlbnRlcnMKYGBgCgoKIyA8c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW47Ij4gUGFzbyA1LiBWaXN1YWxpemFjacOzbiBkZSBsb3MgY2x1c3RlcnMgPC9zcGFuPgpgYGB7cn0KZnZpel9jbHVzdGVyKGttLCAKICAgICAgICAgICAgIGRhdGEgPSBkZl9zY2FsZWQsCiAgICAgICAgICAgICBnZW9tID0gInBvaW50IiwgICAgICAgIAogICAgICAgICAgICAgZWxsaXBzZS50eXBlID0gImNvbnZleCIsCiAgICAgICAgICAgICBnZ3RoZW1lID0gdGhlbWVfbWluaW1hbCgpLAogICAgICAgICAgICAgbWFpbiA9ICJDbHVzdGVycyBkZSBUdXJpc21vIEludGVybmFjaW9uYWwgZW4gTcOpeGljbyAoMTk5NeKAkzIwMjMpIikKYGBgCgoKIyA8c3BhbiBzdHlsZT0iY2xvbG9yOmdyZWVuOyI+IFBhc28gNjogQ29uY2x1c2nDs24gPC9zcGFuPgoqRWwgYW7DoWxpc2lzIGRlIGNsdXN0ZXJpemFjacOzbiogZGUgbG9zIGHDsW9zIDE5OTXigJMyMDIzIGVuIGVsIHR1cmlzbW8gaW50ZXJuYWNpb25hbCBkZSBNw6l4aWNvIHBlcm1pdGnDsyBpZGVudGlmaWNhciB0cmVzIGNsdXN0ZXJzOgoKKkNsdXN0ZXIgMToqIEHDsW9zIGRlIGNyaXNpcyB0dXLDrXN0aWNhIChjb21vIDIwMDkgeSAyMDIwKSwgcXVlIGZ1ZXJvbiBwb3IgY2HDrWRhcyBmdWVydGVzIGVuIHZpc2l0YW50ZXMgeSBleGN1cnNpb25pc3Rhcy4KCipDbHVzdGVyIDI6KiBBw7FvcyBkb25kZSB2aW5pZXJvbiBtdWNob3MgdmlzaXRhbnRlcyBkZSBwYXNvIChleGN1cnNpb25pc3RhcyksIHBlcm8gbWVub3MgdHVyaXN0YXMgcXVlIHNlIHF1ZWRhcmFuIHZhcmlvcyBkw61hcy4KCipDbHVzdGVyIDM6KiBBw7FvcyBidWVub3MsIGRvbmRlIGxsZWdhcm9uIG11Y2hvcyB0dXJpc3RhcyBpbnRlcm5hY2lvbmFsZXMgcXVlIHNlIHF1ZWRhYmFuIHZhcmlvcyBkw61hcywgw6lwb2NhIGRlIGF1Z2UgdHVyw61zdGljby4KCkVzdG9zIHJlc3VsdGFkb3MgbXVlc3RyYW4gY8OzbW8gZWwgdHVyaXNtbyBlbiBNw6l4aWNvIGhhIGF0cmF2ZXNhZG8gw6lwb2NhcyBkZSBjYcOtZGEsIHJlY3VwZXJhY2nDs24geSBjcmVjaW1pZW50byBzb3N0ZW5pZG8sIHJlZmxlamFuZG8gZWwgaW1wYWN0byBkZSBmYWN0b3JlcyBleHRlcm5vcyAoKmNyaXNpcyBlY29uw7NtaWNhcywgcGFuZGVtaWEqKSB5IGVsIGZvcnRhbGVjaW1pZW50byBkZSBNw6l4aWNvIGNvbW8gZGVzdGlubyBpbnRlcm5hY2lvbmFsLg==