Codigo
u<-5 #Capital Inicial
int<-0 # Actualizacion (Dejar en 0 para modelo clasico)
simular<-function(time){
U<-1:(time+1)
U[1]<-u
for(i in 2:(time+1)){
if(U[i-1]<=0){
U[i]<-0
}else{
U[i]<-max(U[i-1]+(4.5 - rgeom(1,.2))*((1+int)^(i-2)),0)
}
}
U
}
#Simulanadp
simular(15) #1 Simulacion de 15 Años
## [1] 5.0 9.5 13.0 12.5 16.0 18.5 23.0 15.5 17.0 21.5 20.0 18.5 22.0 19.5
## [15] 22.0 26.5
#### Simular 5 Veces 50 Años (Filas = Años, Columnas = Simulaciones)
(y<-replicate(10,simular(50)) )
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5 5
## [2,] 7.5 0.5 9.5 6.5 7.5 8.5 3.5 2.5 0 0
## [3,] 9.0 3.0 0.0 7.0 11.0 3.0 8.0 0.0 0 0
## [4,] 13.5 7.5 0.0 4.5 11.5 7.5 11.5 0.0 0 0
## [5,] 13.0 12.0 0.0 1.0 13.0 9.0 12.0 0.0 0 0
## [6,] 15.5 12.5 0.0 5.5 17.5 8.5 16.5 0.0 0 0
## [7,] 8.0 14.0 0.0 7.0 11.0 11.0 13.0 0.0 0 0
## [8,] 10.5 18.5 0.0 10.5 5.5 14.5 7.5 0.0 0 0
## [9,] 9.0 23.0 0.0 6.0 3.0 12.0 11.0 0.0 0 0
## [10,] 13.5 24.5 0.0 0.5 0.0 16.5 6.5 0.0 0 0
## [11,] 18.0 29.0 0.0 3.0 0.0 16.0 7.0 0.0 0 0
## [12,] 19.5 30.5 0.0 1.5 0.0 17.5 11.5 0.0 0 0
## [13,] 17.0 34.0 0.0 0.0 0.0 21.0 14.0 0.0 0 0
## [14,] 10.5 27.5 0.0 0.0 0.0 21.5 13.5 0.0 0 0
## [15,] 12.0 30.0 0.0 0.0 0.0 16.0 15.0 0.0 0 0
## [16,] 14.5 25.5 0.0 0.0 0.0 13.5 18.5 0.0 0 0
## [17,] 17.0 26.0 0.0 0.0 0.0 18.0 10.0 0.0 0 0
## [18,] 16.5 24.5 0.0 0.0 0.0 20.5 7.5 0.0 0 0
## [19,] 20.0 21.0 0.0 0.0 0.0 25.0 5.0 0.0 0 0
## [20,] 24.5 0.0 0.0 0.0 0.0 28.5 2.5 0.0 0 0
## [21,] 27.0 0.0 0.0 0.0 0.0 31.0 3.0 0.0 0 0
## [22,] 31.5 0.0 0.0 0.0 0.0 33.5 3.5 0.0 0 0
## [23,] 24.0 0.0 0.0 0.0 0.0 38.0 6.0 0.0 0 0
## [24,] 24.5 0.0 0.0 0.0 0.0 38.5 5.5 0.0 0 0
## [25,] 19.0 0.0 0.0 0.0 0.0 43.0 3.0 0.0 0 0
## [26,] 23.5 0.0 0.0 0.0 0.0 47.5 5.5 0.0 0 0
## [27,] 27.0 0.0 0.0 0.0 0.0 52.0 9.0 0.0 0 0
## [28,] 31.5 0.0 0.0 0.0 0.0 50.5 10.5 0.0 0 0
## [29,] 35.0 0.0 0.0 0.0 0.0 49.0 3.0 0.0 0 0
## [30,] 34.5 0.0 0.0 0.0 0.0 53.5 0.0 0.0 0 0
## [31,] 35.0 0.0 0.0 0.0 0.0 53.0 0.0 0.0 0 0
## [32,] 35.5 0.0 0.0 0.0 0.0 55.5 0.0 0.0 0 0
## [33,] 36.0 0.0 0.0 0.0 0.0 60.0 0.0 0.0 0 0
## [34,] 37.5 0.0 0.0 0.0 0.0 61.5 0.0 0.0 0 0
## [35,] 40.0 0.0 0.0 0.0 0.0 63.0 0.0 0.0 0 0
## [36,] 41.5 0.0 0.0 0.0 0.0 54.5 0.0 0.0 0 0
## [37,] 46.0 0.0 0.0 0.0 0.0 52.0 0.0 0.0 0 0
## [38,] 45.5 0.0 0.0 0.0 0.0 55.5 0.0 0.0 0 0
## [39,] 43.0 0.0 0.0 0.0 0.0 55.0 0.0 0.0 0 0
## [40,] 43.5 0.0 0.0 0.0 0.0 56.5 0.0 0.0 0 0
## [41,] 46.0 0.0 0.0 0.0 0.0 61.0 0.0 0.0 0 0
## [42,] 45.5 0.0 0.0 0.0 0.0 61.5 0.0 0.0 0 0
## [43,] 38.0 0.0 0.0 0.0 0.0 61.0 0.0 0.0 0 0
## [44,] 35.5 0.0 0.0 0.0 0.0 59.5 0.0 0.0 0 0
## [45,] 40.0 0.0 0.0 0.0 0.0 53.0 0.0 0.0 0 0
## [46,] 42.5 0.0 0.0 0.0 0.0 56.5 0.0 0.0 0 0
## [47,] 43.0 0.0 0.0 0.0 0.0 59.0 0.0 0.0 0 0
## [48,] 47.5 0.0 0.0 0.0 0.0 60.5 0.0 0.0 0 0
## [49,] 52.0 0.0 0.0 0.0 0.0 59.0 0.0 0.0 0 0
## [50,] 49.5 0.0 0.0 0.0 0.0 63.5 0.0 0.0 0 0
## [51,] 54.0 0.0 0.0 0.0 0.0 67.0 0.0 0.0 0 0
#Plotear Serie
matplot(y,type="l") #R-Base
library(zoo)

autoplot.zoo(y,facets=NULL)#Zoo y ggplot2

#Calculo de la Probabilidade de Ruina
tail(y,1) #Ultimos Valores
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [51,] 54 0 0 0 0 67 0 0 0 0
tail(y,1) <= 0 #Ruina?
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [51,] FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE
mean(tail(y,1)<=0) #Estimar Probabilidad
## [1] 0.8
##### Codigo Comprimido
Nsim<-1000 #NumSim
time<-1000 #Años
(p<-mean(tail(replicate(Nsim,simular(time)),1)<=0)) #Prob Ruina
## [1] 0.652
p+c(-1,1)*qnorm(1-.05/2)*sqrt(p*(1-p)/Nsim) #intervalo de Confianza 95%
## [1] 0.6224769 0.6815231
Codigo
u<-5 #Capital Inicial
int<-0 # Actualizacion (Dejar en 0 para modelo clasico)
simular<-function(time){
U<-1:(time+1)
U[1]<-u
for(i in 2:(time+1)){
if(U[i-1]<=0){
U[i]<-0
}else{
U[i]<-max(U[i-1]+(4.5 - rgeom(1,.2))*((1+int)^(i-2)),0)
}
}
U
}
#Simulanadp
simular(15) #1 Simulacion de 15 Años
#### Simular 5 Veces 50 Años (Filas = Años, Columnas = Simulaciones)
(y<-replicate(10,simular(50)) )
#Plotear Serie
matplot(y,type="l") #R-Base
library(zoo)
autoplot.zoo(y,facets=NULL)#Zoo y ggplot2
#Calculo de la Probabilidade de Ruina
tail(y,1) #Ultimos Valores
tail(y,1) <= 0 #Ruina?
mean(tail(y,1)<=0) #Estimar Probabilidad
##### Codigo Comprimido
Nsim<-1000 #NumSim
time<-1000 #Años
(p<-mean(tail(replicate(Nsim,simular(time)),1)<=0)) #Prob Ruina
p+c(-1,1)*qnorm(1-.05/2)*sqrt(p*(1-p)/Nsim) #intervalo de Confianza 95%