---
title: "Maestría en Energía"
date: "`r Sys.Date()`"
author: "Ricardo R. Palma (PhD)"
output:
  rmdformats::material:
    highlight: kate
    self_contained: true
    code_folding: show
    thumbnails: true
    gallery: true
    fig_width: 4
    fig_height: 4
    df_print: kable
    use_bookdown : TRUE
    incremental : TRUE
---


```{r knitr_init, echo=FALSE, results="asis", cache=FALSE}
library(knitr)
library(rmdformats)

## Global options
options(max.print = "75")
opts_chunk$set(echo = FALSE,
	             cache = FALSE,
               prompt = FALSE,
               tidy = FALSE,
               comment = NA,
               message = FALSE,
               warning = FALSE)
opts_knit$set(width = 75)
```





# La Teoría de las Restricciones

<h2>El Modelo Mental de la Theory of Constraints </h2>

<h3>Dr. Eli Goldrat </h3>
![goldrat](goldratt1.jpg)
<hr>





<h2>Bibliografía </h2>







<table>
<tr>
<td>
* La Meta

- Un Proceso de Mejora Continua 
- Género: Novela
- Primer libro de la serie



<hr>
Material disponible en https://www.cuspide.com/9789506418069/La+Meta
<hr>

<br>
</td>
<td>

<img src="La Meta.png" width="250" align="right"
     alt="Markdown Monster icon"
     style="float: left; margin-right: 10px;" />

</td>
</tr>
</table>



<table>
<tr>
<td>
* Necesario pero No Suficiente

- Gestión de la Tecnología (Bolsa)
- Género: Gerencial - Interrogativo
- Segundo libro de la serie
- Fragilidad de las Grandes Empresas
- Nos enseña a revertir la tendencia



<hr>
Material disponible en https://www.cuspide.com/9788479784874/Necesario+Pero+No+Suficiente
<hr>

<br>
</td>
<td>

<img src="Necesario_Suficiente.png" width="250" align="right"
     alt="Markdown Monster icon"
     style="float: left; margin-right: 10px;" />

</td>
</tr>
</table>





# Rigurosidad


Es necesario comprender que cuando hablamos de formar un modelo mental para la toma de decisiones en gobiernos o empresas, debemos atenernos a la rigurosidad. Que tan cierto es lo que estoy diciendo?. O en otras palabras que margen de error puedo esperar respecto a lo que afirmo.

Goldrat recurre al truco que luego fue más desarrollado en el “Cúrculo de Oro” de Somon Sinek, y ataca por el lado de las dudas antes que por el de las certezas.  

Para ello usa el paradigma que menos certezas tiene , La TEORÍA 
<br>

<table>
<tr>
<td> Paradigma </td> <td> Rigor </td> </tr>
<td> Ley </td> <td> Se cumple en todo lugar del universo. Ej. Ley Gravitación Universal </td> </tr>

<td> Principio </td> <td> Es casi tan riguroso como la ley, pero no se ha validado universalmente. Ej. Principio 1 de la Termodinámica </td> </tr>

<td> Empirismo </td> <td> Funciona, pero no se sabe por qué. Ej. Ciclos de mantenimiento de cojinetes </td> </tr>

<td> Paradigma </td> <td> Está tan fuertemente arraigado que parece una ley, pero no lo es. Ej. My Flower </td> </tr>

<td> Teoría </td> <td> Tienen un modelo con el que se ha encontrado respuesta, es muy verosimil, pero su autor lo limita hasta encontrar más evidencia. Ej. TOC </td> </tr>

<td> Evidencia <br> Congetura </td> <td> Con suerte puede derivar en un empirismo </td> </tr>

<td> Teorema </td> <td> Matemática y Filosóficamente es perfecto. Pero su aplicación a la realidad da lugar a sofismas, falacias y paradojas </td> </tr>



</table>

#Modelar con teoremas es más fácil:


<img src="Teorema_1.png" width="450" align="right"
     alt="Markdown Monster icon"
     style="float: left; margin-right: 10px;" />
<hr>

<img src="Teorema_2.png" width="450" align="right"
     alt="Markdown Monster icon"
     style="float: left; margin-right: 10px;" />

<hr>
<img src="Teorema_3.png" width="450" align="right"
     alt="Markdown Monster icon"
     style="float: left; margin-right: 10px;" />

<hr>

## Modelar estos problemas

* 1) Modele el problema de una presa
hidroeléctrica destinada a producir
electricidad y suministro de agua potable.

* 2) Modelar una glorieta en en centro de una
plaza a la que convergen varias 8 calles.

* 3) Describa un ecosistema en el que hay varias
especies (animal y vegetal) y recursos
(campo de hierbas)



Situación Problema
===

* Presentamos esta situación problema. Dos redes consumen la energía que poducimos que llamaremos P y Q

*¿Qué cantidad de P y qué cantidad de Q nos conviene entregar?


<img src="TOC_Energia.png" width="850" align="right"
     alt="Markdown Monster icon"
     style="float: left; margin-right: 10px;" />



* Consignas:

*El Mercado P consume 100 GW/Sem* <br>
Podemos cobrale $90 / GWh

*El Mercado Q consume 50 GW/Sem* <br>
Podemos cobrarle $100 / GWh

<hr>
Tengo una oficina D encargada de : <br>

* Calidad*
* Eficiencia*
* Data Engineering*
* IOIT*
* Sistema Interconectado*

<hr>

Las Horas Hombre del secor D son: <br>
* 15 min / GWh si vendo en el mercado P*
* 05 min / GWh si vendo en el mercado Q*

<hr>

* Tengo tres material primas (combustibles y lubricantes)*
* Para facilitar los cáculos supongo a todos con el mismo costo*
* MP_1 es quemado en el equipo que opera el Sr. A y custas $20/ GWh*
* MP_2 los usa B para mantenimientode  equipo que opera el Sr. B y custas $20/ GWh*
* MP_3 es quemado en el equipo que opera el Sr. A y custas $20/ GWh*

<hr>
Los Ingenieros Expertos A y B necesitan trabajar <br>
* 15 min / GWh si generamos para P*
* 10 min / GWh si generamos para Q*
* El Mantenimiento B ocupa 15 Minutos para P y 15 para Q*

<hr>

<strong>Impuestos:</strong>
Cuando vendo energía a P , tengo que pagar $5 / GWh 

<hr>

<strong>Horas Hombre Disponibles </strong>
2.400 Horas por semana de A,B,C y D

<hr>
<strong> Costos Operativos </strong>
Genero o no genere, venda o no venda; al final de semana tengo que gastar $ 6000 <br>
Operating Expenses

<hr>

#¿Que Cantidad de P y Q Tengo que Vender para Oprimizar Ganancia

          Habitualmente nos centramos en las resupestas,pero encontrar la pregunta indicada es simpre mejor que hallar la respuesta correcta

          Maríe Curié
          
# Primea Aproximación Caja Negra

* Tenemos más informción de la que necesitamos.
* Pensemos en un sistema entrada salida

<img src="TOC_Energia2 .png" width="850" align="right"
     alt="Markdown Monster icon"
     style="float: left; margin-right: 10px;" />

<hr>

Según este esquema : <p>

* Potencial de mercado de $P = 100 GW/sem$
* Descuento Costos e Ingresos  <br>
  $100 GW /sem * (90 -40 -5) =  4.500 por semana (Ingreso)$

<hr>

* Potencial de mercado de $P = 50 GW/sem$
* Descuento Costos e Ingresos  <br>
  $50 GW /sem * (100 -40) =  3.000 por semana (Ingreso)$

<hr>

*Resultado operativo*
$Utilidad_Neta = 4.500 + 3.000 - 6.000 = 1.500$ por semana

Un Excelente resultado si comparamos con la inversión.

#Primer Falacia TOC

<h2> Muy Simple </h2> <h1> MUY MAL</h1>
* B tendría que trabajar 3600 horas por semana para satisfacer a todo lo que esperamos de él.

          Hemos Violado la Restricción B = 2.400 min





**_NOTA_**   Hemos Violado la Restricción B = 2.400 min


```
Box made with Triple Backticks
It works with almost all markdown flavours (the below blank line matters).

```





# Encontrar las restricciones

* Todo sistema está sujeto a un a más restricciones
* Si no fuese así nada impediría que sus resultados aumenten hasta el infinito
*Sabemos que hay algo que impide que esto suceda.

## Que tipo de restricciones podemos tener

* Restricción de MP -> ISO 9000 recomienda desarrollo proveedor
* Restricción de Canal -> Gobierno, plan, Marketing, Industria 4.0
* Pronóstico colaborativos funciona en muchos países
<br>
Si la restrucción está dentro de la empresa aplico TOC

### Primer principio
* Cada centavo que gasto en optimizar algo que no sea la restricción
en lugar de mejorar, empeora las cosas.

* TOC se especializa en encontrar los cuellos de botella.

# Cómo Identificar las Restricciones

Necesito crear nuevos indicadores para tomar decisiones




SIMULACIÓN sustantivo femenino

1. Acción de simular. ejemplo :"las simulaciones orales ante un experto ayudan muchísimo a quienes tienen que rendir un examen oral" <br>
2. Efecto de simular. <br>
3. DERECHO
Alteración aparente de la causa, la índole o el objeto verdaderos de un acto o contrato.
<br>
<hr>
*Sinónimos:*
ficción
fingimiento
apariencia
pamema
paripé
<br>
*Antónimos:*
verdad, sinceridad

<hr>

* Primera Definición Formal <br>
<table>
<tr>
<td>
Es una técnica numérica para conducir experimentos en una 
computadora digital...
<td>      H. Maisel (1971)
<tr>
<td>
<br>
... con el propósito de entender el comportamiento
de un sistema (mecánico) o de predecirlo y elaborar
estrategias para el futuro.
				
<td>      Robert Shannon (1948)
</tr>
</table>

<hr>

<br>
*Expresiones recurrentes en la bibliografía*
<br>
<br>
1 - A simulation is an approximate imitation of the operation of a process or system; the act of simulating first *requires a model* is developed. This model is a well-defined description of the simulated subject, and represents its key characteristics, such as its behaviour, functions and abstract or physical properties. The model represents the system itself, whereas the *simulation represents its operation over time*.

2 - Simulation is used in many contexts, such as simulation of technology for performance optimization, safety engineering, testing, training, education, and video games. Often, computer experiments are used to study simulation models. Simulation is also used with scientific modelling of natural systems or human systems to gain insight into their functioning, as in economics. Simulation can be used to show the eventual real effects of alternative conditions and courses of action. Simulation is also used when the real system cannot be engaged, because it may not be accessible, or it may be dangerous or unacceptable to engage, or it is being designed but not yet built, or it may simply not exist.

3 - Key issues in simulation include the *acquisition of valid source information about the relevant selection of key characteristics and behaviours*, the use of simplifying approximations and assumptions within the simulation, and fidelity and validity of the simulation outcomes. Procedures and protocols for model verification and validation are an ongoing field of academic study, refinement, research and development in simulations technology or practice, particularly in the field of computer simulation.


<hr>

<h1> La simulación no cambia la realidad </h1>

- Apenas es capaz de cambiar la percepción de la realidad
- Y eso lo cambia todo
- Leer la quinta disciplina (Peter Senge) y se entenderá lo que es un modelo mental
<hr>

<h2> El modelo mental del Pierre Collet (Univ. de Strasbour) </h2>

<table>
<tr>
<td>
Modelo Mental del Cómputo 
<td>
<img src="Colet_1.png" width="250" align="right"
     alt="Cómputo"
     style="float: left; margin-right: 10px;" />

<tr>
<td>
Modelo Mental de Simulación y Aprendizaje Profundo
<td>
<img src="Colet_2.png" width="250" align="right"
     alt="Simulación"
     style="float: left; margin-right: 10px;" />
</tr>
</table>

<br>
Esto no puede hacerlo simplemente en una hoja de cálculo


<h1> ¿Es necesario usar una computadora para hacer una simulación? </h1>

* No necesariamente
* Minicaso #1 - <strong> ¿Cómo has hecho para aprender? ¿La inteligencia es natural o se adquiere? </strong>

<table>
<tr>
<td>
<img src="espejo2.jpg" width="450" align="right"
     alt="Simulación"
     style="float: left; margin-right: 10px;" />

<td>
<img src="espejo1.jpg" width="450" align="right"
     alt="Simulación"
     style="float: left; margin-right: 10px;" />

</tr>
</table>

<table>
<tr>
<td>

* <strong>Se puede aprender jugando</strong>
* La Universidad ha enseñado por más de 500 años
* Pero la humanidad ha aprendido por el diálogo millones de años
* El método del caso es un cuento
* El cuento es un juego
* El pensamiento de Maturana & Varela

<td>

* Los Grobos
* Vamos Manao
* Sie Tu Helados
* Son historias que emocionan
* Sin emoción no hay pasión
* Sin pasión no hay aprendizaje
<hr>
<tr>
<td>


Clasificación de juegos de simulación

<td>


-   De realidad limitada (ceteris paribus)
-   Juegos con cartas
-   Juegos secuenciales
-   Juegos en solitario 
-   Juegos de Dinámica de Sistemas
-   Juegos de Guerra
-   Juegos de Nash (Suma Cero)
<hr>
<tr>
<td>
Juegos para descargar :
<br>  
http://eduscol.education.fr/numerique/dossier/apprendre/jeuxserieux

<td>
- Beer Game (SCM)
- Hotzone (Bomberos)
- MEG Balkans (ONU)
- Merchant (Conflicto)
- Triskelion (Desarrollo personal)
- Los carteles de San Luis (5S)
- Juego del Tomate (Corrupción) 

</tr>
</table>







* Minicaso #2 - <strong> ¿Por qué estás estudiando este posgrado?</strong>



Ejemplos de Simuladores
===

Este simulador puede ser accedido en http://themys.sid.uncu.edu.ar/r-cran/Talca/simulador


<img src="Simulador_Performance.png" width="1250" align="right"
     alt="Simulador icon"
     style="float: left; margin-right: 10px;" />


<hr>
<h1> Código de ética del simulador </h1>

* Recuerde siempre que Economía  es una Ciencia Social.
* Toda la economía es microeconomía.
* Piensa primero !!! calcula después.
* Conoce (bien) tus datos.
* SEAMOS   ÉTICOS.
* <h6> seamos humildes.</h6>

<hr>
<h1>Receta para disfrutar la aventura de realizar una simulación </h1>

- 1 Defina el sistema
- 2 Formule el modelo
- 3 Coleccione datos
- 4 Implemente el modelo en una computadora
- 5 Valide el modelo
- 6 Use esto como su “bola de cristal”
- 7 Jugar es APRENDER


Simulación con Modelos Determinísticos
=====

<u> Minicaso 3  Freight Forwarder </u>

Un caso de emprendedora exitoso en la región vitı́cola de Menoza Argentina
está ligado a una egresada de la carrera de ingenierı́a industrial que a comienzos de la década de 1990, ante la incertidumbre de las crisis económicas decidió, sincapital alguno, lanzarse como free lance en el negocio de mover containers con vino a los puertos de Valparaı́so y San Antonio - Chile. Su empresa actuava como intgradora de servicios entre transportistas, despachantes de aduana, bodegas, navieras y clientes de brokers en el extranjero.
<br>
Un factor clave de éxito ( KPI ) era el tamaño de lote óptimo a transportar
en cada envı́o.
Es bien conocido el modelo de Wilson que data de la década de 1920, pero que
hoy resulta casi una garantı́a al fracaso si se utiliza en contextos tan turbulentos como los que nos toca vivir.
A pesar de ello el modelo aún se estudia y no es descartado, pués sirve de
base para ser mejorado. El modelo tiene tres variables independientes y una
dependiente, a saber:


<h1> El modelo de Wilson </h1>

<h2> Variables Independientes</h2>

- Demanda Media Anual *D* (en Containers por año)

- Costo de almacenamiento unitario *Ca* (\$ por mes)

- Costo de emisión o gestión *Ce* (\$ por orden)

<h2> Variable Dependiente</h2>




- Tamaño de Lote Mensual *EOQ*

<hr>

<h2>Modelo Mateático</h2>

$$ {EOQ} = \sqrt {(\frac  {2*D * Ce} {Ca} )}$$

<h2>El caso de la Bodega Torrenti operada por el Freight Forwarder</h2>

Esta bodega tiene tres destinos principales de exportación. 

- Estados Unidos demanda 500 TEUs al año
- Brasil demanda 53 TEUs al año
- Cadandá demand 28 TEUs al año

<hr>


- Costo de Almacenamiento U\$D 2.500 

- Costo de Gestión U\$D 750

<h2>Modelado numérico en R-CRAN</h2>

```{r echo=TRUE}
D1 <-500
D2 <-52
D3 <-28

D<- D1+D2+D3

Ca <- 2500
Ce <- 750

EOQ <- sqrt(2*D*Ce/Ca)

EOQ


```

Simulación con modelos Estocásticos
===
<h2>Cálculo del EOQ por Montecarlo</h2>

Este método no concibe a las variables independientes como fijas, sino que las considera variables aleatorias e introduce Ruido en el modelo matemático.
En esta parte deberíaos analizar el comportamento de cada variable y asociarle una distribución (función paramétrica) de probabilidad. Por sencillez supondremos en este ejemplo que las varaibles siguen una distribución normal.
<br>
En rigor deberíamos estudiar que distribución siguen los datos con los que alimentaremos el modelo.
<bR
R-Cran tiene por defecto definidas las siguientes distribuciones de probabilidad.

- Normal
- Logística
- Uniforme
- Gamma
- Lognormal
- Weibull
- Cauchy
- Exponencial
- Chi-cuadrado
- F
- T-Student.

<br>




<h2>Estocatización de Variables</h2>



- Estados Unidos demanda promedio 500 TEUs al año con una varianza de 90

- Cadandá demanda promedio 28 TEUs con una varianza de 6 al año

- Brasil demanda promedio 93 TEUs al año con una varianza de 8


<hr>



- Costo de Almacenamiento U\$D 2.500 Varianza 1.000

- Costo de Gestión U\$D 750 varianza 250

<h2>Cálculo del EOQ Montecarlo</h2>


```{r, echo=TRUE}
#Genero tres variables aleatorias normales con 
#una cantidad de muestras m igual a tres veces #el tamaño de la media 

m1 <- 500*3
D1 <- rnorm(m1,500,90)
m2 <- 93*3
D2 <- rnorm(m2,93,8)
m3 <- 28*3
D3 <- rnorm(m3,28,6)
D <- c(D1,D2,D3)
# m_d muestras de demanda
m_d <- length(D)

#Generamos las variables aleatorias de costos igual a la cantidad de muestras de demanda que tenemos.

Ca <- rnorm(m_d,2500,1000)

Ce <- rnorm (m_d,750,250)

# Preparo área de graficos 3 filas 1 columna
#par(mfcol=c(1,3))

#Grafico 1
plot(density(D), 
xlab="Demanda TEU", #Change the x-axis label
ylab="Densidad", #y-axis label
main="Muestras de Demanda 5 años")#Main title


#Grafico 2
plot(density(Ca),
xlab="Costo Almacenamiento", #x-axis label
ylab="% eventos registrados", # y label
main="Población Costos Almacenamiento")     


#Grafico 3
plot(density(Ce),
xlab="Costo Gestión Inventario", #x-axis label
ylab="% eventos registrados", # y label
main="Población Costos Emisión")     
     


```


   
     



<h2>Cálculo de muestras de lote Económico EOQ</h2>

En este caso realizaremos las mismas operaciones que antes, pero las variables independientes ahora serán matrices y el resultado será un conjunto de valores con su propia distribución de probabilidades.


```{r, echo=TRUE}
EOQ <- sqrt(2*D*Ce/Ca)
#Media del Lote Económico
mean(EOQ, na.rm=TRUE)
#Varianza del Lote Económico
var(EOQ, na.rm=TRUE)
#Desvio Estandard del Lote Económico
sd(EOQ, na.rm=TRUE)

plot(density(EOQ,na.rm=TRUE))
```


Hallaremos los valores máximos y mínimos de las variables dependientes e independientes

```{r}
#Índice Mínimos
which.min(Ca)
which.min(Ce)

which.min(EOQ)

```

Valores Mínimos
```{r}
Ca[which.min(Ca)]
Ce[which.min(Ce)]
EOQ[which.min(EOQ)]
#Máximos
which.max(Ca)
which.max(Ce)
#Atención excuiremos los NA
which.max(EOQ)

```


















Casos de Estacionalidad
=====
Exploramos la cabecera de datos importados de excel:

```{r, echo=TRUE}
library(readxl)
Vino_Fiscal <- read_excel("MetodoPolinomialSenCosen.xls", sheet = "Hoja4")
head("Vino_Fiscal")


head(Vino_Fiscal)

```

Exploramos los datos finales de la tabla

```{r, echo=TRUE}
tail(Vino_Fiscal)
```

Estos datos reflejan la estacionalidad en los despachos de vinos de alta gama que se exportan desde la provincia de Mendoza, Argentina; y son fiscalizados por el INV (Instituto Nacional de Viticultura).



Expotaciones de Vino Mensuales Fiscalizadas
===

```{r, echo=TRUE}
plot(Vino_Fiscal$Mes, Vino_Fiscal$Exportaciones, main="Millones de hl Exportado 3 años", ylab=" hl",xlab="mes",type="b" )
abline(v=mean(Vino_Fiscal$Mes),h=mean(Vino_Fiscal$Exportaciones),lty=2)

```

## Regresión Lineal
Es una primera aproximación, tiene errores pero de es mejor que no tener nada.

Este comando construye el típico modelo de regresión lineal.

Asignaremos valores a las variables Xv que representa el mes , Yv que representa los valores reales de exportaciones y Ys que tiene los datos aproximados del modelo de regresión lineal.

```{r}
Xv <- Vino_Fiscal$Mes
Yv <- Vino_Fiscal$Exportaciones
```



```{r, echo=TRUE}
coef(lm(Yv ~ Xv ))
```

Esto debe leerse como "Construye un modelo de regresión linea que explique Yv en función de Xv". La función nos devuelve la ordenada al origen y la pendiente de la recta.

```{r, echo=TRUE}
modelo_vino <- lm(Yv ~ Xv)

```


Una buena aproximación podría obtenerse con la media de los valores X y Y (la recta denería pasar por el promedio de X e Y) y la pendiente podría obtenerse de la varianza de Y dividido la varianza de X

```{r, echo=TRUE}
X2 <- mean(Xv)
X2

Y2 <- mean(Yv)
Y2

Delta_y <- var(Yv)
Delta_x <- var(Xv)

m <- Delta_y/Delta_x
m

```



Sin embargo este modelo que hemos construido es más preciso ya que no usa estimadores sino que se basa en el concepto de valores residuales.



```{r, echo=TRUE}
plot(Vino_Fiscal$Mes, Vino_Fiscal$Exportaciones, main="Millones de hl Exportado 3 años", ylab=" hl",xlab="mes",type="b", ylim = c(70000, 380000), xlim = c(1,36) ) 

abline(modelo_vino, col="red")

```

** Residuales
```{r, echo=TRUE}
par(mfrow=c(2,2))
plot(lm(Vino_Fiscal$Mes ~ Vino_Fiscal$Exportaciones , data=Vino_Fiscal))
```


```{r, echo=TRUE}
library(ggplot2)
library(plotly)
library(plyr)

dat <- data.frame(Vino_Fiscal)
                 

p <- ggplot(dat, aes(x=Xv, y=Yv )) + 
  xlab("Julio 2016 a Julio 2019") +
  ylab("Hl Vino") +
            geom_point(shape=1) +     # Use hollow circles
            geom_smooth()            

ggplotly(p)
```


<h1> Uso de Bibliotecas en R </h1>

R-CRAN es un leguaje que originalmente se desarrolló para el campo disciplinar de la estadística. No es de sorprender entonces que haya mucho material de simulación basado en Montecarlo.
Si bien hemos visto que es relativamente sencillo hacer el trabajo a mano (programado), esto muchas veces no es compatible con el tiempo disponible ni con los criterios de calidad del software que es requerido por la actividad profesional o científica.
Una alternativa para evadir este inconveniente, es el uso de bibliotecas (library). Existen más de 20.000 bibliotecas específica oficiales. Cada una de ellas está avalada generalmente por más de cinco publicaciones con referato y sueles ser un alternativa segura y rápida para enfocarnos en el problema del modelado y la simulación sin tener que preocuparnos por el código.

Para poder invocar una biblioteca desde R es necesario descargarla de internet. Para ello se puede ejecutar en R-Studio la secuencia "Tools" "Install packages" y elegir el nombre del paquete que quieras instalar.
También es posible hacer esto desde la línea de comando con:

        install.packages("nombre_paquete")
Una vez que la bibliotea se ha bajado y copiado en tu PC o teléfono, no deberás volver a hacer este proceso y para usarla sólo bastará con invocarla con el comando:

        library(nombre_paquete)
Esto agrega al lenguaje unos comandos nuevos que permiten resolver nuevos problemas. En el sitio https://cran.r-project.org/ la hoja específica de uso de todos los paquetes oficiales.

Usaremos una biblioteca llamada psycho debería instalarla así:

        install.packages("psycho")

```{r, echo=TRUE}
library(psych)
pairs.panels(Vino_Fiscal)
```
Esto muestra la matriz de correlación o matriz de covarianza de las variables que intervienen. Note como se ha registrado una mayor eficiencia energética o lo que es lo mismo, un descenso de en lo que dentro de los ODS 2030 se llama intensidad energética.


<h2> Uso de Time Sieries como biblioteca </h2>

```{r}
serie_vino <- ts (Vino_Fiscal$Exportaciones,frequency = 12)
f <- stl(serie_vino, s.window=12, robust=TRUE)
outliers <- which(f$weights<1e-8)

op <- par(mar=c(0, 4, 0, 3), oma=c(5, 0, 4, 0), mfcol=c(4, 1))

plot(f, set.pars=NULL)

sts <- f$time.series

points(time(sts)[outliers], 0.8*sts[,"remainder"] [outliers], pch="x", col="red")
 

```

<h2>Estacionalidad en la energía</h2>

```{r}
serie_vino_e <- ts (Vino_Fiscal$Mwh,frequency = 12)
f <- stl(serie_vino_e, s.window=12, robust=TRUE)
outliers <- which(f$weights<1e-8)

op <- par(mar=c(0, 4, 0, 3), oma=c(5, 0, 4, 0), mfcol=c(4, 1))

plot(f, set.pars=NULL)

sts <- f$time.series

points(time(sts)[outliers], 0.8*sts[,"remainder"] [outliers], pch="x", col="red")
 

```


#VAN y TIR por el método Montecarlo

Recurriremos al uso de una biblioteca llamada FinCal, para repetir el proceso que ya ensayamos con el modelo del lote económico EOQ.
Es decir veremos como usar R-CRAN para operar sobre un vector que tiene los flujos de fondos descontados e un proyecto utilizando una biblioteca específicamente diseñada para ello. Luego alimentaremos al modelo no con un vector de datos sino con un vector que contiene dos filas. La primera será el flujo de fondo tal como se usó en el primer caso y la segunda es una componente que representa la volatilidad.
Este concepto de "volatilidad" hace referencia al riesgo que sumimos en pronosticar ingresos y egresos a futuro. Nuestra certeza sobre los flujos de hace menos confiable conforme transcurre más tiempo en el desarrollo del proyecto. Por lo tanto la segundo componente del nuevo vector tiene algo así como la varianza creciente por la que afectaremos a los pronósticos de fondos futuros.

<h2>Uso de la biblioteca FinCal</h2>

Tal como se señalo más arriba deberemos instalar la biblioteca usanso el comando respectivo solo la primera vez que deseemos instalar en unestro computador.
Ejecuteremos entonces:

        install.packages("FinCal")
        
A partir de este momento podemos invocar a la biblioteca como ya sabemos.

```{r, echo=TRUE}
library(FinCal)

```
Esta biblioteca ha agregado 62 comandos de matemática financiera a nuestra computadora.
para saber cuales son ejecutamos la siguiente línea. 

```{r, echo=TRUE}
ls("package:FinCal")

```

Si necesito conocer que hace cada comando nuevo puedo usar el signo de pregunta para ver la página de ayuda interna.
Asi:

        ?npv

Esto debería darle información sobre cada comando nuevo.
Veremos algunos ejemplos simples para que tome experiencia en el caso de simulación determinística de flujo de fondos.

<h2>Minicaso</h2>
Un inversionista coloca \$100 durante un año a una tasa de
interés simple de 1.5\% mensual pagadera mensualmente<br>
¿Qué retribución obtiene durante el año?

```{r, echo=TRUE}
I= 100*0.015*12
F=100 + I
F

```

<h2>Minicaso Reinversión de Dividendos</h2>

Considere el caso del inversionista del ejemplo anterior, pero
suponiendo que recibe los intereses al final de cada mes y que
los reinvierte inmediatamente en las mismas condiciones de la
inversión inicial.<br>
¿Qué cantidad de dinero recibirá al cabo de un
año ?

```{r, echo=TRUE}
fv.simple(r = 0.015, n=12, pv = -100)

```

<h2>Convertir de tasa Anual a Mensual</h2>
¿Cuál es la tasa de interés nominal anual de una inversión que
ofrece el 1.5% de interés pagado al final de cada mes?

```{r, echo=TRUE}
r.norminal(r = 0.015, 12) * 12


```

<h2>Plazo fijo</h2>
¿Cuál es la tasa efectiva anual de rendimiento de una inversión que ofrece un interés nominal anual del 8%, pagadero cada semestre vencido, pero que el interesado procede a reinvertirlo?

```{r, echo=TRUE}
ear(r = 0.08, 2)


```

<h2>Minicaso flujo de fondos</h2>

Crearemo un flujo de fondos consolidado de un proyecto hipotético de la creación de una bodega boutique con destino enoturístico que compite contra otro proyecto similar pero del terreno de la cervezería artesanal.
Cada uno de estos proyectos será identificado por los flujos totales FFN1 y FFN2.
El proyecto comienza en 2019 y se puede recuperar la inversión hasta 2028



<hr>
Crearemos el primer flujo de fondos:

```{r, echo=TRUE}
#Enoturismo
año<-
c(2019,2020,2021,2022,2023,2024,2025,2026,2027,2028)
FFN1<-c(-940693, 186255, 186255, 186255,
37323,37323,37323,37323, 116482, 280651)
plot(año,FFN1,pch=19,cex=3,col="dark red")
abline(0,0)

```

Ahora crearemos el flujo de fondo correspondientes a la actividad de la cerveza. Este proyecto tiene equipos de frío que no sirven más a partir del año 2024.

```{r, echo=TRUE}
#Cerveza artesanal
FFN2<-c(-19132841, 5691206, -14230711,
16387818, 24645898)
plot(año[2:6],FFN2,pch=19,cex=3,col=rgb(.25,
0.5, .3))
abline(0,0)


```

<h2> Selección de proyecto más conveniente </h2>

Comparemos los VAN de ambos proyectos

```{r, echo=TRUE}
# Enoturismo
FinCal::pv.uneven(0.3339,-FFN1)


```

Este proyecto se realiza en un país riesgozo de modo que lo castigo con una tasa más alta.

```{r, echo=TRUE}
# Creveza artesanal
FinCal::pv.uneven(0.18,-FFN2)


```

<h2>Selección de mejor proyecto</h2>
        
        Proyecto del Enoturismo

<h2> Comparación por TIR </h2>

```{r, echo=TRUE}
TIR1 = irr(FFN1)
TIR2 = irr(FFN2)
TIR1


```

```{r, echo = TRUE}
TIR2

```

Según el TIR el proyecto más conveniente es:

      Proyecto de creveza artesanal.
      
<h2> ¿Que proyecto elegirías tu?</h2>

<h1> TIR y VAN con Montecarlo </h1>

Determinaremos cuantos períodos tiene cada proyecto y le asignaremos una varianza creciente a sus flujos de fondos.
Esto podría hacerse con la distribución de probalilidades F se Snedecor (Senedorv o Snedecorf). Pero por sencillez tomaremos valores estimados por nosotros.





<strong>Vector de Volatilidad</strong>

```{r, echo=TRUE}
length(FFN1)


Volatilidad <- c( 0.1 ,0.2, 0.3, 0.4, 0.5,
0.6, 0.7, 0.8, 0.9, 1.0)


```

<h1> Flujo de Fondos Estocástico </h2>
<h2> VAN con Montecarlo </h2>

Las funciones de FinCal pueden aplicarse a una variable sola (que en realidad es una matriz de uno por uno), pero también a una matriz de mayores dimensiones. 
En lugar de darnos un valor nos dará una campana de Gauss de valores de salida.

Para ello crearemos un dataset.

```{r, echo=TRUE}
FFN_S <- matrix(rnorm(144,FFN1,Volatilidad),
ncol=12, nrow=12, byrow=TRUE )
FFN_S[ ,1] <- rnorm(12, FFN1[1],
100*Volatilidad[1])


```

En este caso FFN_S representa el flujo de fondos Estocástico de 12 alternativas tomadas aleatoriamente usando la volatilidad como generador estocástico.

<h2> Histograma del VAN Enoturismo</h2>

```{r, echo=TRUE}
#creo una variable auxiliar

VAN_S <- c(0,0,0,0,0,0,0,0,0,0,0,0)

# cargo en esa variable los valores de flujos aleatorios 
for (i in 1:12) { (VAN_S[i] <-
# calculo para cada uno de los 12 fondos un VAN
                     FinCal::npv(0.18,FFN_S[i,] ))}
# imprimo el histograma
hist(VAN_S)


```

<h2> Densidad de valores en el VAN Montecarlo </h2>

```{r, echo=TRUE}
density(VAN_S)

```

<h2> Gráfica de densidad del VAN Montecarlo </h2>

```{r, echo=TRUE}

plot(density(VAN_S))

```




# Anexo uso de R-Cran

## Syntax highlighting

Here is a sample code chunk, just to show that syntax highlighting works as expected.




## Exploración de datos

Here is the structure of the `iris` dataset.

```{r iris_str, echo=TRUE}
str(iris)
```

## Escritura de fórmulas

Estilo Latex :

$$\bar{x} = \frac{1}{n} \sum_{i=1}^n x_i$$

# Tablas

Here is a sample table output.

```{r iris_table}

x <- cut(iris$Sepal.Width, 4)
y <- cut(iris$Sepal.Length, 3)
tab <- table(x, y)
kable(tab)

```

Here we display a crosstab displayed in several different ways with a "pills"
interface. To do this, just pass your `table()` result to the `pilltabs()`
function.


```{r}
head(iris)
```

```{r my_table1, echo=FALSE}
library(xtable)
kable(xtable(head(iris)))
```

# Figuras

## Base graphics

A base graphics histogram :

```{r}
hist(rnorm(100))
```

## ggplot2

Same with `ggplot2` :

```{r, fig.cap="Beautiful ggplot2 histogram, really"}
library(ggplot2)
d <- data.frame(x=rnorm(100))
ggplot(data=d) + geom_histogram(aes(x=x), bins = 30)
```



# Tabbed sections

Here we test if tabbed sections work correctly.

## Classical tabs {.tabset}

classical tabs without fading effect.

### First tab

Quisquam sunt fugit sed aut quis et rerum mollitia. Qui consectetur eius autem ut assumenda alias. Repudiandae aut deleniti quod saepe nihil ratione alias laborum. Quibusdam aspernatur autem omnis voluptatum. Delectus illo non aut. Perferendis sunt facilis sed quam velit.
Veniam voluptates ut adipisci vel debitis deserunt rerum exercitationem. Accusamus quod eius occaecati voluptatem. Ut et qui veritatis. Nulla non eum id consectetur autem pariatur. Labore aperiam officiis molestiae sed ut perferendis ea. Aperiam aut ratione autem dolorem.
Fuga reprehenderit tempora ut ipsam cumque officiis dolorum. Sapiente omnis rerum sint quibusdam et delectus ratione. Molestiae praesentium rerum debitis deleniti voluptates enim.
Nihil aperiam velit provident accusamus suscipit voluptates. Aut sequi id debitis tempore. Qui atque quas sed illum officia maiores incidunt.
Similique maxime aliquam corrupti aut provident eaque. Laudantium placeat cupiditate pariatur dolore perspiciatis expedita impedit nobis. Quaerat non temporibus tempora provident eligendi.

### Second tab

Cum eaque dicta architecto culpa eius. Dignissimos officiis error exercitationem. Adipisci odit ad ea iusto fugiat laborum maiores. Dolore sunt et veritatis alias nesciunt maxime cumque. Culpa aut non ea. Culpa ex quia debitis sint eveniet cum.
Non eos ex aperiam dolor hic. Consectetur delectus placeat rerum consequuntur ducimus sed fugiat non. Aut voluptatem et et. Omnis sunt veniam omnis ullam.
Dolorem eius perspiciatis et veniam hic reprehenderit ipsam ut. Exercitationem rem eius quo. Nemo quis in voluptatibus ex.
Aut nihil quo iure quia. Error quam quidem inventore. Aut est est aut atque ipsum aut repellat. Eligendi delectus aut et quia voluptas dolores. Perspiciatis et reiciendis deleniti harum nihil officiis aperiam.
Laborum necessitatibus beatae modi aut illo. Quaerat esse eum ipsa quisquam totam. Vitae nesciunt excepturi voluptate iusto molestiae qui animi corrupti. Voluptates et illum quia.


## Pill tabs {.tabset .tabset-fade .tabset-pills}

Pill tabs with fading effect.

### First tab

Quisquam sunt fugit sed aut quis et rerum mollitia. Qui consectetur eius autem ut assumenda alias. Repudiandae aut deleniti quod saepe nihil ratione alias laborum. Quibusdam aspernatur autem omnis voluptatum. Delectus illo non aut. Perferendis sunt facilis sed quam velit.
Veniam voluptates ut adipisci vel debitis deserunt rerum exercitationem. Accusamus quod eius occaecati voluptatem. Ut et qui veritatis. Nulla non eum id consectetur autem pariatur. Labore aperiam officiis molestiae sed ut perferendis ea. Aperiam aut ratione autem dolorem.
Fuga reprehenderit tempora ut ipsam cumque officiis dolorum. Sapiente omnis rerum sint quibusdam et delectus ratione. Molestiae praesentium rerum debitis deleniti voluptates enim.
Nihil aperiam velit provident accusamus suscipit voluptates. Aut sequi id debitis tempore. Qui atque quas sed illum officia maiores incidunt.
Similique maxime aliquam corrupti aut provident eaque. Laudantium placeat cupiditate pariatur dolore perspiciatis expedita impedit nobis. Quaerat non temporibus tempora provident eligendi.

### Second tab

Cum eaque dicta architecto culpa eius. Dignissimos officiis error exercitationem. Adipisci odit ad ea iusto fugiat laborum maiores. Dolore sunt et veritatis alias nesciunt maxime cumque. Culpa aut non ea. Culpa ex quia debitis sint eveniet cum.
Non eos ex aperiam dolor hic. Consectetur delectus placeat rerum consequuntur ducimus sed fugiat non. Aut voluptatem et et. Omnis sunt veniam omnis ullam.
Dolorem eius perspiciatis et veniam hic reprehenderit ipsam ut. Exercitationem rem eius quo. Nemo quis in voluptatibus ex.
Aut nihil quo iure quia. Error quam quidem inventore. Aut est est aut atque ipsum aut repellat. Eligendi delectus aut et quia voluptas dolores. Perspiciatis et reiciendis deleniti harum nihil officiis aperiam.
Laborum necessitatibus beatae modi aut illo. Quaerat esse eum ipsa quisquam totam. Vitae nesciunt excepturi voluptate iusto molestiae qui animi corrupti. Voluptates et illum quia.