por último vamos a correr nuestro modelo en el espacio de conducta, tenemos algunas
metas que queremos ver y sólo para recordarles a todos de nuevo, vamos a
mirar este experimento en blanco del espacio de conducta; este es el que en
verdad vamos a correr, vamos a modificar el número de personas en el modelo y los
resultados de correrlo obtenemos algunas salidas que se ven así, yo lo vuelco en un
excel así vemos más detalles
ahora que corrieron el modelo en el espacio de conducta y obtuvieron algunos
datos; si tienen excel en sus máquinas, simplemente tienen que hacer doble click
en el archivo csv y se abrirá y lo que verán es algo así y yo lo voy a usar en
forma muy rápida simplemente para que vean como se ven los datos
esperen que lo agrando un poco; ustedes ven que tenemos una información de
encabezado, tenemos el nombre del archivo, el nombre del experimento, cuando fue que
corrió y acá describe cual fue el mundo, entonces, dicho sea de paso, nuestro
experimento tiene un crecimiento de la población, desde 50 250, no es una
densidad poblacional muy grande, pero si tomamos a todo el mundo, en forma
constante, entonces sí la densidad de población es grande, debido a que se
aumenta la población, mantendiendo el mismo espacio a medida que crece la
población
ustedes ven este número de corrida y este número de corrida es solamente un número
único que se corresponde con esa corrida del modelo y que devuelve esos resultados
ustedes notarán que está fuera de los bordes, esto es debido a que desde que
NetLogo es multinuclear y así podemos sacarle el jugo al multinuclear en
nuestras máquinas, con cada corrida la 1ra que termina, en el núcleo que sea se va a
escribir en este archivo, en este caso es el núcleo 4 el que terminó 1ro, de hecho
el núcleo 1 es el último que terminó y eso es porque el núcleo 1 fue el que estuvo
corriendo siempre en la interfaz gráfica y debido a ello en verdad lleva más tiempo
que los otros, claro ustedes pueden ordenar estos datos por el número de
corrida, si así lo quieren,
en Excel y de esa manera obtendrán un orden, en términos de las formas de
respuesta; bueno del orden original; pero acá tenemos todas las variables, todos los
parámetros, disculpen, que incorporamos cuando creamos el modelo y también tenemos
los tics, que son la variable de salida, dicho sea de paso, en realidad no
necesitamos los tics de salida, debido a que NetLogo por defecto los muestra como
salida; el paso en el cual el modelo termina, pero yo lo agregué para
asegurarnos que lo íbamos a tener, hacerlo más explícito
y ustedes notarán que el número de personas va desde 50 hasta 250
esta es una forma rápida de mirar los datos y es por eso que se los quise
mostrar; ahora vamos a movernos a R para mostrarles en verdad como se pueden
resumir estos datos
antes de que empecemos a bucear en el código de R para resumir los datos,
hablemos un poco de por qué querríamos resumir los datos; si recuerdan estamos
buscando los datos crudos, estamos buscando 10 corridas para 4 variables
diferentes de salida y eso es algo difícil de hacer, especialmente a medida que los
datos se hacen más grandes, las variables de entrada y salida también se hacen más
grandes y así es más simple de hacer; las estadísticas de resumen son una forma de
caracterizar un conjunto de datos muy grande para entender qué es lo que está
sucediendo; no siempre funciona, si recuerdan el video de la distribución
completa que hice, algunas veces los promedios pueden ser los mismos para
distribuciones muy diferentes, entonces nos ayuda si visualizamos el patrón
completo de los datos, les voy a hablar un poco de como lo pueden hacer en R y vamos
a hablar un poco de los gráficos, pero una cosa que ustedes querrán hacer es calcular
el promedio y el desvío estándar de los resultados de la salida, entonces en
nuestro caso estamos hablando de cuántos tics llevó llegar al 100% tanto para 50
como para 100, 150 y 200 y acá calculé la media, que es el tiempo promedio y el
desvío estándar, que es la medida que indica cuanto varían, cuan lejos se
encuentran los otros números de esa media la media se calcula tomando todos los
valores de los tics y dividido por el número total y el desvío estándar se
calcula tomando las diferencias entre cada uno de los valores, elevándolos al
cuadrado, sumarizándolos, dividiendo por el número de corridas que hicimos y
sacando la raíz cuadrada; esto nos indica cuanto se dispersan los resultados de cada
corrida con respecto a la media; ustedes no tienen por qué memorizar estas fórmulas
ya que están construídas dentro del R y pueden usar el R para hacer esto, así que
voy a parar y les voy a mostrar
ok pueden ver que estamos en la consola de R, y traje esta población y este código
que escribí para analizar los datos y ustedes pueden usar un código muy similar
para analizar los datos de salida de su modelo, puedo enseñarles un poquito como
se hace esto; hay un par de cosas que aparecen acá y vamos a verlas 1 a 1, pero
esta no es una clase de R; yo lo uso así que espero poder mostrarles un poco y voy
a tratar de enseñarles a medida que avanzo pero si quieren tener una mirada más
profunda, hay muchos tutoriales muy buenos en R; lo primero que hago es traerme esta
biblioteca hmisc y ésta es una biblioteca que nos brinda un tipo de cálculo que se
llama rpart, que me gusta; si por alguna razón, hmisc no está instalada en sus
máquinas, se usa el instalador de paquetes y esto les sirve para cualquier
otra biblioteca que ustedes quieran, por alguna razón el CRAN, que es donde están
todos los paquetes para R, está caído, así que no puedo verlos, pero normalmente lo
que hacen es obtener la lista y escribir el nombre del paquete y entonces instalar
esta dependencia, así como el resto de los paquetes que quiera instalar, el hmisc,
así puedo obtener todos los paquetes en un solo lugar; ahora que tenemos instaladas
las dependencias, porque el hmisc se basa en otros paquetes es que nos tenemos que
asegurar que tenemos todos los que necesitamos para que ese paquete pueda
correr; una vez que hice todo eso ya estoy listo y no debería haber problemas, como
ven está cargando grid, lattice, survival; en realidad no necestito todos estos, pero
no molesta traerlos a todos; la próxima cosa que seguro notarán es este comando
llamado data = read.csv este es un comando nativo del R que nos permite leer un
archivo csv y en donde se especifica el archivo y que dice skip = 6, esto quiere
decir que va a saltearse la información del encabezado y va a traer todo cuando
cargue los datos y puedo ver esto en forma rápida, puedo escribir head(DATA), que nos
permite ver los datos, las 1ras líneas de datos y ustedes pueden ver que los datos
están todos ahí, la corrida, la variante, las conexiones, queda igual que como lo
vimos en excel; la siguiente línea es, dicho sea de paso, esta es una de esas
líneas que a veces confunde un poco a la gente, yo les doy el código exactamente
como lo ven acá, pero ustedes necesitan cambiar esta ruta a donde el archivo se
encuentra realmente, donde pusieron el archivo de salida y si ustedes llaman al
modelo de forma diferente, puede que lo hayan llamado "experimentos", algo que sea
diferente que el valor por defecto que escribe el NetLogo, entonces tienen que
cambiarlo también acá
esto es algo que a veces confunde a la gente cuando están levantando los datos,
la otra cosa que puede llegar a confundirlos es que los nombres de las
columnas están en un orden diferente que el mío; en este modelo tengo esto debido a
que estamos corriendo exactamente el mismo modelo; pero en otros casos, debemos hacer
cambios al modelo al mismo tiempo que yo puede suceder, debido al hecho de que si
ustedes tienen sus parámetros listados en forma diferente, entonces el orden será
diferente, una cosa que hay que verificar, es cuando hacemos el encabezado de los
datos, verificar que coincida con los nombres de columnas que elegimos, en este
caso es correr, correr, variant, variant grado, lazos por nodos, nro de personas,
nro de personas, número de infectados, número de infectados, decaimiento de la
enfermedad, decaimiento de la enfermedad, pasos y últimos ticks; está todo ahí, está
todo ok, en la próxima línea, voy a correr
en R, en las PCs, perdón en la Mac, tienen un comando que pueden correr, lo pueden
ver en sus notebooks
el próximo comando es el que usamos para agregar los datos por el nro inicial de
personas, usando la función del promedio y el promedio va a encontrar todos los casos
donde el nro inicial de personas es el mismo y entonces los promedia a los
resultados que aparecen en los renglones, si corro esto
me va a mostrar algunos errores, debido a que "variant" no es un valor numérico y
entonces no puede promediarlo, pero si miro a los resultados de esa corrida,
tengo 50, 100, 150 y 200 y entonces con un comando puedo ver todos estos valores de
promedio que queríamos ver desde antes y puedo hacer lo mismo con el desvío
estándar y la función que utilizo es sd en vez de la del promedio, más allá de eso
los comandos son los mismos, dicho sea de paso les comento que para llamar a las
cosas que están siendo agregadas como el nro de personas, esto significa que, es la
1ra columna donde se van a cargar los resultados agregados, nos permite verlos
ahí; ahora lo que hice luego es lo que se llama el vínculo de la columna o cbind,
vínculo de columna, no la columna de flores y si hago eso
voy a combinar el nro inicial de personas con el valor del promedio con un desvío
estándar, voy a sacar estas 3 columnas de la fuente de datos; acá está el código
agg.mean; lo que quiero es que esta columna, quiero esta columna, perdón esta
columna, que es el desvío estándar y esta columna que es el promedio, todos juntos y
corriendolo, puedo ver la salida y esta tabla es exactamente la misma tabla,
quiero decir, con datos diferentes que la vieja que acabamos de mirar; esto me
permite de resumir las estadísticas para cualquiera de mis modelos y este es un
molde común que seguramente querrán usar en muchos de sus modelos; van a cargar los
datos, van a renombrar las columnas debido a que los nombres originales de las
columnas que NetLogo coloca no son muy intuitivos y entonces van a agregar los
datos, usualmente usando el promedio y el desvío estándar y así poder mirar luego
los resultados y ahora podemos ver con claridad, que la 1ra respuesta a nuestra
pregunta, para el promedio, a medida que la población crece, el tiempo promedio
que lo representa va para abajo
es interesante que parece que los errores en 200 y 150 se solapan, debido a que el
de 15, 130, 148 y 21 para 148, se obtiene 127 que es eso; y como resultado de todo
esto, el promedio es estadísticamente significativo entre 115 y 200, eso es algo
que hay que investigar, será algo tipo como una presión sobre ellos