3 Taller 3: Modelo de Negocio Simple (Analisis de Sensibilidad)

3.1 Taller 3: Introduccion

En este último análisis vamos a estudiar el efecto de dos variables claves del modelo que hasta ahora no hemos tomado en cuenta:

  • El número de inversores
  • El tamaño del mundo

¿Que efecto tiene estas dos variables (de manera simultanea) sobre la riqueza de los inversores después de 25 años?

(El modelo básico lo puede bajar del siguiente enlace:

Enlace al modelo )

3.2 Taller 3: Modificando el Modelo

3.2.1 Deslizadores

Definamos dos deslizadores:

  • num-inversores: para variar el número de inversores
  • tam-mundo: para variar el tamaño del mundo




3.2.2 Procedimientos

Ahora modifiquemos el modelo, primero modifiquemos setup-inversores para incluir el deslizador:

to setup-inversores
  ask n-of num-inversores patches [   ; Nuevo:  Inversores controlados por deslizador num-inversores 
    sprout-inversores 1
  ]
  ask inversores [
    set W 0             ; dinero en 0
    pen-down           ; rastro para visualizar como cada agente busca inversiones
  ]
end

Ahora modifiquemos el setup, añadiendo un procedimiento setup-mundo para poder cambiar con el deslizador construido el tamaño del mundo

to setup
  clear-all
  setup-mundo   ; Nuevo Proc setup-mundo 
  setup-parcelas
  setup-inversores
  interruptores     ; ayudas de visualización del modelo
  reset-ticks
end


 to setup-mundo   ; Nuevo se crea mundo de acuerdo al deslizador tam-mundo
resize-world (- tam-mundo / 2) tam-mundo / 2 (- tam-mundo / 2) tam-mundo / 2
set-patch-size 216 * 2.2  / tam-mundo   ;  el tamaño de la parcela se cuadra para que el mundo siempre se vea de un tamaño adecuado
end 

setup-mundo cambia tanto el tamaño del mundo (resize-world) como el de las parcelas (set-patch-size) de tal manera que el mundo se visualize correctamente. El modelo con un tamaño de 8 y 50 inversores sería el siguiente:



3.2.3 El Experimento

Creemos el experimento para poder analizar el efecto del número de inversores y el tamaño del mundo sobre la riqueza:



Solo variamos los deslizadores que definimos y deascativamos “Evaluar las ejecuciones a cada paso” ya que solo queremos observar resultados finales ( a los 25 años). Corra el experiemnto y guarde los datos resuiltantes.

3.3 Taller 3: Rstudio

Importemos los datos a Rstudio

##   X.run.number. num.inversores tam.mundo X.step.
## 1             4             50        15      25
## 2             3             50        15      25
## 3             1             50        15      25
## 4             6             50        15      25
## 5             5             50        15      25
## 6             7             50        15      25
##   mean..W..of.inversores
## 1               135951.9
## 2               128363.4
## 3               122975.7
## 4               124873.4
## 5               134091.1
## 6               163788.2

Seleccionemos las tres columnas que nos interesan:

## ── Attaching packages ───────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.0     ✓ purrr   0.3.4
## ✓ tibble  3.0.1     ✓ dplyr   0.8.5
## ✓ tidyr   1.1.0     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.4.0
## ── Conflicts ──────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
##   inversores mundo  riqueza
## 1         50    15 135951.9
## 2         50    15 128363.4
## 3         50    15 122975.7
## 4         50    15 124873.4
## 5         50    15 134091.1
## 6         50    15 163788.2

Agrupemos los datos por inversores y tamaño del mundo:

## # A tibble: 6 x 3
## # Groups:   inversores [1]
##   inversores mundo riquezaP
##        <int> <int>    <dbl>
## 1         50    15  135799.
## 2         50    20  141836.
## 3         50    25  139714.
## 4         50    30  155572.
## 5         50    35  147588.
## 6         50    40  157463.

Con los datos agrupados podemos construir una matriz con :

  • filas(y) : tamaño del mundo
  • columnas (x) : número de inversores
  • valores matriciales (z): riqueza

Usaremos la librería plotly para visualizar la matriz en 2D:

## 
## Attaching package: 'reshape2'
## The following object is masked from 'package:tidyr':
## 
##     smiths
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout

Usaremos la librerpia plotly para visualizar la matriz en 3D:

3.4 Preguntas

Estas gráficas (contour 3D plots) son muy útiles para analizar modelos basados en agnetes cuando queremos ver la influencia simultanea de dos diferentes variables sobre una tercera. A partir de esta gráfica se pueden responder muchas preguntas como:

  • ¿Para que valores de tamaño del mundo e inversores la riqueza de estos es máxima?
  • ¿Para que valores de tamaño del mundo e inversores la riqueza de estos es mínima?
  • ¿ En donde hay mayor y menor variación de la riqueza?
¿Qué otras preguntas se podrían formular? ¿Se le ocurren algunas?