“Modelación de flujo de turistas en Parque Nacional Torres del Paine”

Autores Derek Corcoran y Rodrigo Gomez

Last update: 2015-05-03

Estudio de distribución del flujo de turistas

Distribución horaria de las visitas

Inicialmente se realizará un estudio de la distribución de turistas para el parque Torres del Paine. En forma de ejemplo se utilizarán los datos disponibles actualmente para el contador de los Cuernos.

Usaremos las horas y fechas tanto como factores como tiempos por lo que agregaremos algunas variables

date.as.date<-dmy(Eco_Cuernos$X)
date.time1<-paste(Eco_Cuernos$X,Eco_Cuernos$X.1, sep="-")
date.time <-dmy_hm(date.time1)
colnames(Eco_Cuernos)[1] <- "date.as.factor"
Eco_Cuernos<-cbind(Eco_Cuernos, date.time ,date.as.date)
Eco_Cuernos$dia.semana <- weekdays(Eco_Cuernos$date.as.date)
Eco_Cuernos$Hora <- hour(date.time)
str(Eco_Cuernos)
## 'data.frame':    622 obs. of  9 variables:
##  $ date.as.factor : Factor w/ 27 levels "01/02/2015","02/02/2015",..: 24 24 24 24 24 24 24 24 24 24 ...
##  $ X.1            : Factor w/ 24 levels "00:00","01:00",..: 13 14 15 16 17 18 19 20 21 22 ...
##  $ Eco.Cuernos    : int  97 36 16 17 24 24 16 5 1 0 ...
##  $ Eco.Cuernos_IN : int  40 20 6 13 7 8 1 0 0 0 ...
##  $ Eco.Cuernos_OUT: int  57 16 10 4 17 16 15 5 1 0 ...
##  $ date.time      : POSIXct, format: "2015-01-28 12:00:00" "2015-01-28 13:00:00" ...
##  $ date.as.date   : POSIXct, format: "2015-01-28" "2015-01-28" ...
##  $ dia.semana     : chr  "miércoles" "miércoles" "miércoles" "miércoles" ...
##  $ Hora           : int  12 13 14 15 16 17 18 19 20 21 ...

Primero que nada observemos lo que ocurre al graficar la cantidad de turistas totales agrupados por horas en que se mueven.

opcion grafica 2

p <- ggplot(Eco_Cuernos,aes(Hora, Eco.Cuernos))
p + geom_point(aes(color = factor(dia.semana)))+ stat_smooth(geom = "errorbar")

p + geom_point(aes(color = factor(dia.semana)))+ stat_smooth()

ts <- ggplot(Eco_Cuernos,aes(date.time, Eco.Cuernos))
ts + geom_point(aes(color = factor(dia.semana)))+  geom_line()

Observamos un peak en actividad a las 11 y 12 del día e inicios de actividad cercano a las 9 am finalizando al rededor de las 21 horas

Esto es para el total de turistas, si solo consideramos la entrada o salida de turistas vemos que esto cambia.

El estudiar estos flujos permitiría el estudiar los horarios con mayor número de encuentros en sentido contrario, lo cual no necesariamente debe coincidir con el numero total de turistas.

Analisis estadistico de factores (Dia de semana y hora)

para estudiar esta relacion se realizara un analisis de dos vias, primero veamos un resumen de el numero de turistas por hora para cada dia

lunes martes miércoles jueves viernes sábado domingo
14.89 17.82 17.62 15.15 14.77 14.89 13.54

y el numero de turistas por hora

00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 23:00
0 0.08 0 0.04 0 0 0.42 0.96 2.08 8.42 39.6 65.72 71.58 54.54 38.54 31.46 22.12 16.54 11.96 4.62 2.92 0.96 0.04 0.12

Ahora realizamos un ANOVA de dos vias

attach(Eco_Cuernos)
## The following objects are masked _by_ .GlobalEnv:
## 
##     date.as.date, date.time
ANOVA.Cuernos <- aov(Eco.Cuernos ~ X.1*dia.semana)
summary(ANOVA.Cuernos)
##                 Df Sum Sq Mean Sq F value Pr(>F)    
## X.1             23 300703   13074 163.049 <2e-16 ***
## dia.semana       6   1102     184   2.290 0.0345 *  
## X.1:dia.semana 138  12904      94   1.166 0.1237    
## Residuals      454  36404      80                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
interaction.plot(X.1, dia.semana, Eco.Cuernos, type="b")

Comparación post-HOC via test de Tukey

TukeyHSD(ANOVA.Cuernos, which="dia.semana", ordered=TRUE)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
##     factor levels have been ordered
## 
## Fit: aov(formula = Eco.Cuernos ~ X.1 * dia.semana)
## 
## $dia.semana
##                        diff        lwr      upr     p adj
## viernes-domingo   1.2291667 -2.5986742 5.057008 0.9638370
## sábado-domingo    1.3437500 -2.4840909 5.171591 0.9445284
## jueves-domingo    1.6041667 -2.2236742 5.432008 0.8776575
## lunes-domingo     3.0960600 -0.8918188 7.083939 0.2465250
## miércoles-domingo 3.2555678 -0.7066240 7.217760 0.1870952
## martes-domingo    4.2777778  0.1432371 8.412318 0.0371476
## sábado-viernes    0.1145833 -3.7132576 3.942424 1.0000000
## jueves-viernes    0.3750000 -3.4528409 4.202841 0.9999512
## lunes-viernes     1.8668934 -2.1209855 5.854772 0.8089862
## miércoles-viernes 2.0264011 -1.9357907 5.988593 0.7359715
## martes-viernes    3.0486111 -1.0859296 7.183152 0.3063706
## jueves-sábado     0.2604167 -3.5674242 4.088258 0.9999944
## lunes-sábado      1.7523100 -2.2355688 5.740189 0.8512044
## miércoles-sábado  1.9118178 -2.0503740 5.874010 0.7858997
## martes-sábado     2.9340278 -1.2005129 7.068568 0.3533798
## lunes-jueves      1.4918934 -2.4959855 5.479772 0.9255740
## miércoles-jueves  1.6514011 -2.3107907 5.613593 0.8804509
## martes-jueves     2.6736111 -1.4609296 6.808152 0.4712810
## miércoles-lunes   0.1595077 -3.9575027 4.276518 0.9999998
## martes-lunes      1.1817177 -3.1014165 5.464852 0.9831695
## martes-miércoles  1.0222100 -3.2370181 5.281438 0.9919297
plot(TukeyHSD(ANOVA.Cuernos, which="dia.semana"))

simulación

Para cada hora, se realizará un estudio de distribución del numero de turistas que llegarían. Por ejemplo, para el mes de Febrero, a la hora peak (12:00), encontramos la siguiente histograma correspondiente a la distrubucion de turistas.

La cual corresponde a una distribución normal de acuerdo al test de Shapiro-wilk

shapiro.test(eco.cuernos.12$Eco.Cuernos)
## 
##  Shapiro-Wilk normality test
## 
## data:  eco.cuernos.12$Eco.Cuernos
## W = 0.93584, p-value = 0.1068

Con una media de 71.5769231 y una desviación estandard de 20.2645959.

Dado esto, si hicieramos simulaciones aleatorias del número de turistas que pasarían por los cuernos en 20 días consecutivos tendríamos como resultado los siguientes 20 numeros.

set.seed(100)
b<-rnorm(20, mean=mean(eco.cuernos.12$Eco.Cuernos), sd=sd(eco.cuernos.12$Eco.Cuernos))
print(b, digits=2)
##  [1]  61  74  70  90  74  78  60  86  55  64  73  74  67  87  74  71  64
## [18]  82  53 118

Distribución diaria del uso por turistas

Además de esto se debe estudiar como varia por fecha la cantidad de turistas diarios, para esto sumaremos la cantidad de turistas al día y se estudiará el comportamiento de cada mes, asi como los días de semana y fin de semana.

Modelación espacialmente explicita

Estas caracterizaciones se utilizaran para una simulación espacialmente explicita utilizando modelaciónes en base de agentes, apoyandose en la información generada por el resto de los grupos del CEQUA.