Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.84 KB | None | 0 0
  1. # SIMULACION AHORRO, EDAD DE PENSION Y TASAS DE INTERES
  2. library(fitdistrplus)
  3.  
  4. dinero_a_gastar = runif(1, min = 1, max = 3)
  5. tiempo_gasto = 2
  6.  
  7. tasa_de_gasto = dinero_a_gastar/tiempo_gasto #tasa a la que empiezas a gastar el ahorro que se tiene, por ejemplo 1 millon cada tres meses. ¿cuanto te demoras gastando un millon?
  8.  
  9. mu = 1/12 # Paso de tiempo correspondiente a 1 mes en escala de años
  10.  
  11. recibe_pension = 0
  12. no_recibe_pension = 0
  13.  
  14. Nt = c() # Dinero disponible en el tiempo t. Por defecto esta vacio
  15.  
  16. analisis_edad_pension <- function(edad){
  17. if (edad>0){
  18. recibe_pension <<- recibe_pension + 1
  19. }else{
  20. no_recibe_pension <<- no_recibe_pension + 1
  21. }
  22. }
  23.  
  24. differential_equation <- function(F, mu, tasa_de_gasto, ahorro){
  25. return(F+mu*(1-F)*tasa_de_gasto*ahorro)
  26. }
  27.  
  28. for (iteracion in 1:1000)
  29. {
  30. # TIEMPOS
  31.  
  32. edad_pension = 62
  33. beneficiario = rlogis(1, location = 64.13, scale = 2.67) # Tiempo que un beneficiario recibe pension de uno ya fallecido
  34. tiempo_vida = rlogis(1, location = 64.13, scale = 2.67) # Valor de vida que lanza la distribución logistica
  35. extra_years = (tiempo_vida + beneficiario - edad_pension)*mu # tiempo extra de vida después de pensionarse y en caso de muerte recibe pension un beneficiario
  36. tiempo = 0 # tiempo que va a transcurrir durante la iteración
  37.  
  38. # VALORES QUE AFECTAN EL DINERO
  39. #interes = rnorm(1, mean = 0.02780, sd = 0.0127)
  40. #interes =
  41. interes = rlogis(1, location = 0.02628266, scale = 0.00669499)*mu
  42.  
  43. ahorro = 100 # Arranca en 100 en todos los casos, se puede modificar
  44.  
  45. analisis_edad_pension(extra_years)
  46.  
  47. while (tiempo < extra_years & ahorro > 0) {
  48.  
  49. U = runif(1) # Aleatorio entre 0 y 1 que se usa para comparar con F
  50. F = mu # Arranca en mu por que es el primer periodo de tiempo que se afecta
  51.  
  52. while (F<U & tiempo<tiempo_vida) { #mientras f sea menos que u y tiempo sea menor que tiempo_vida
  53. F = differential_equation(F, mu, tasa_de_gasto, ahorro)
  54. tiempo = tiempo+mu
  55. }
  56.  
  57. ahorro = (ahorro-dinero_a_gastar)*(1+interes)
  58.  
  59.  
  60. }
  61. Nt[iteracion] = ahorro
  62. print("Años extra de vida")
  63. print(extra_years)
  64.  
  65. }
  66. Nt
  67. hist(Nt, main = "Ahorro en Banco")
  68. quantile(Nt,c(0.025,0.50,0.975))
  69.  
  70. normal = fitdist(Nt,"norm")
  71. summary(normal)
  72. denscomp(normal, main = "Compara ahorro con la distribución Normal")
  73. qqcomp(list(normal), main = 'normal')
  74.  
  75. exponencial = fitdist(Nt,"exp")
  76. summary(exponencial)
  77. denscomp(exponencial, main = "Compara ahorro con la distribución Exponencial")
  78. qqcomp(list(exponencial), main = 'Exponencial')
  79.  
  80. lnormal = fitdist(Nt,"lnorm")
  81. summary(lnormal)
  82. denscomp(lnormal, main = "Compara ahorro con la distribución lnormal")
  83. qqcomp(list(lnormal), main = 'lnormal')
  84.  
  85. #gofstat(list(normal, exponencial, lnormal)) #bondad del ajust
  86.  
  87.  
  88. print(recibe_pension)
  89. print(no_recibe_pension)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement