5 Análisis Básico Modelo 1 : Buscador de Hongos Parte Dos
Nuestra Pregunta inicial de búsqueda nos ha llevado a construir un modelo y a modificarlo con el fin de intentar reponder a la pregunta, hemos decidido (de pronto arbitrariamente) que el parámetro clave del modelo es el tiempo de espera de los buscadores para pasar de una búsqueda local a una búsqueda más global, entonces trataremos de responder a la pregunta:
¿Cuál es el tiempo de espera que optimiza el número de hongos encontrados?
Recordemos que vamos a limitar el tiempo que tienen los buscadores a 800 unidades de tiempo, que si pensamos que cada unidad de tiempo es digamos 10 segundos, el tiempo de búsqueda sería 10*800= 8000 segundos que corresponde a algo mas de 133 minutos ó 2 horas y 15 minutos aproximadamente.
5.1 Reporteros en NetLogo
Es importante contabilizar en cada momento el número de hongos encontrados, así que vamos a definir una función que reporte este valor:
Escriba al final de la Pestaña de Código del modelo lo siguiente
to-report hongos-encontrados
report patches with [pcolor = yellow]
end
el reporter hongos-encontrados reporta el conjunto de parcelas que tienen color amarillo (patches with [pcolor = yellow]) o sea los hongos encontrados Para ver este reportero en acción vamos a definir un monitor que nos permita visualizar en la interfaz de NetLogo el número de hongos-encontrados a medida que el modelo está corriendo.
Vaya a la pestaña interfaz, del menú botón seleccione el elemento monitor:
Haga clic debajo del deslizador tiempo-espera, aparece una ventana llénela de la siguiente manera:
El monitor usa una función importante count que cuenta el número de elementos de un conjunto de agentes (en este caso de parcelas amarillas) Corra el modelo (setup y luego go) y observe como el monitor muestra los hongos encontrados a medida que los buscadores los encuentran:
Este monitor es una ayuda importante al análisis del modelo y en este momento podríamos jugar con el modelo y tratar de encontrar el tiempo de espera ideal:
- Deslizando tiempo-espera y colocando diferentes valores
- observando el valor del monitor de hongos encontrados.
Al jugar y experimentar con el modelo podríamos descubrir valores de tiempo de espera que pueden conducir a optimizar los hongos encontrados, pero muy pronto nos damos cuenta que:
- Los valores posibles de tiempo-espera son muchos
- Recolectar información de hongos encontrados para diferentes valores puede ser dispendioso y demorado.
Podríamos correr el modelo con diferentes valores de tiempo-espera y registrar los hongos encontrados luego de 800 ticks y luego llevar eso a una hoja electrónica para analizar la información, pero hay una manera mucho mejor de hacerlo en NetLogo y es usar el Analizador de Comportamiento
5.2 El Analizador de Comportamiento
La funcionalidad que ofrece BehaviorSpace es la de ejecutar muchas veces un modelo, modificando para cada ejecución sus parámetros y grabando los resultados que el usuario decida. Proporciona una forma de explorar secciones del espacio de posibles comportamientos y determinar, por ejemplo, qué combinaciones de configuraciones definen comportamientos interesantes o compararlas entre sí para ver la influencia de los parámetros en la dinámica BehaviorSpace ofrece así una forma ordenada y metódica de rea- lizar la exploración del espacio de parámetros. Una exploración que, aunque la mayoría de las veces no podrá ser exhaustiva, si se diseña adecuadamente permitirá una aproximación más eficiente a la comprensión del modelo.Además, los datos almacenados en cada experimento se graban en formatos que permiten ser analizados posteriormente con herramientas específicas de análisis de datos, en nuestro caso usaremos R y Rstudio
Para abrir el Analizador de Comportamiento, vaya al menu Herramientas y seleccione la opción Analizador de Comportamiento:
Aparece la siguiente ventana:
Haga Clic en Nuevo, al hacer clic aparece una ventana que nos permitirá definir lo que se denomina un experimento, que es simplemente una manera de decirla a NetLogo que datos y cuantos datos quiero generar del modelo:
LLenemos esta ventana de la siguiente manera:
Miremos como se lleno la información
Oprima el botón Ok, aparece la siguiente ventana:
Oprima el botón Ejecutar, aparecen las opciones para generar los datos:
Seleccione la opción Table Output y oprima Ok, aparece un cuadro de diálogo para guardar los datos, guarde los datos en el mismo directorio odnde se encuentra el modelo NetLlogo, no le cambie el nombre al archivo exportado:
Listo!!! Ya guardamos el archivo de datos generado por nuestro modelo
5.3 Importando y Analizando los datos en R
Ahora vamos a abrir Rstudio-Cloud para importar los datos y analizarlos Vaya a Rstudio cloud ( si no esta registrado registrese y cree una cuenta), al entrar verá lo siguiente:
Haga clic en New Project y cuando aparezca la interfaz de Rstudio, coloque en la parte superior el nombre al proyecto : BuscHongos:
Cree un Nuevo Script (un Script de R es un archivo donde colocaremos los diferentes comandos para imoportar los datos y analizarlos):
Salve el Archivo con Nombre,BuscHongos.Rmd:
Vamos a importar la libreria que usaremos para nuestro analisis (tiduverse),
para ello seleccionemos la opción insert chunk del menu code, esto crea un espacio dentro del archivo para colocar codigo R:
Coloque las siguientes lineas dentro del chunk de código:
install.packages(tidyverse)
library(tidyverse)
Sale el mensaje que el paquete tidyverse no está instalado haga clic en install y espere unos minutos que Rstudio instale los paquetes.
Finalmente hay que cargar el archivo de datos netLogo al proyecto Rstudio para ello haga clic en el botón Upload situado en la vbentana inferior derecha de Rstudio:
Busque el Archivo que generamos en Netlogo en su computador (“BusHongosAnalisis Anal1SerieTiempo-table.csv”) y carguelo, debe aparecer en Rstudio el archivo cargado:
Ahora coloquemos en el Archivo Script lo siguiente:
Oprima el botón Play situado en la parte derecha del chunk que lle os datos, debe aparecer a la derecha el archivo de datos (data), con la información : 2403 obs. of 4 variables, si oprima la fila donde aparece data puede observar los datos generados por NetLogo:
Renombremos las columnas con el comando:
colnames(data)<- c("run","tiempoEspera","ticks","encontrados")
finalmente grafiquemos los datos:
ggplot(data)+
geom_point(aes(ticks,encontrados,
group=tiempoEspera,
color=factor(tiempoEspera)))
Debe aparecer la siguiente gráfica: