Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. # SIMULACION AHORRO, EDAD DE PENSION Y TASAS DE INTERES
  2. library(fitdistrplus)
  3. dinero_a_gastar = 1.8*runif(1)
  4. tiempo_gasto = 2
  5.  
  6. #tasa a la que empiezas a gastar el ahorro que se tiene
  7. tasa_de_gasto = dinero_a_gastar/tiempo_gasto
  8. # Paso de tiempo correspondiente a 1 mes en escala de años
  9. mu = 1/12
  10.  
  11. # Se inicializa para conocer que personas alcanzan pensión
  12. recibe_pension = 0
  13. no_recibe_pension = 0
  14. # Dinero disponible en el tiempo t. Por defecto esta vacio
  15. Nt = c()
  16.  
  17. # Se analiza el número de pensionados, con base en años extra de vida
  18. analisis_edad_pension <- function(extra_years){
  19. if (extra_years > 0){
  20. recibe_pension <<- recibe_pension + 1
  21. }else{
  22. no_recibe_pension <<- no_recibe_pension + 1
  23. }
  24. }
  25.  
  26. # Ecuación en diferencias
  27. differential_equation <- function(F, mu, tasa_de_gasto, ahorro){
  28. return(F+mu*(1-F)*tasa_de_gasto*ahorro)
  29. }
  30. for (iteracion in 1:1000)
  31. {
  32.  
  33. # TIEMPOS
  34. edad_pension = 62
  35. # Valor de vida que lanza la distribución Normal
  36. tiempo_vida = rnorm(1, mean = 63.977895, sd = 4.470362 )
  37. # tiempo extra de vida después de pensionarse
  38. extra_years = (tiempo_vida - edad_pension)
  39. tiempo = 0 # tiempo que va a transcurrir durante la iteración
  40.  
  41. # VALORES QUE AFECTAN EL DINERO
  42. interes = rnorm(1, mean = 0.02780, sd = 0.0127)*mu
  43. ahorro = 100
  44. analisis_edad_pension(extra_years)
  45. while (tiempo < extra_years & ahorro > 0) {
  46. U = runif(1) # Aleatorio entre 0 y 1 que se usa para comparar con F
  47. F = mu # Arranca en mu por que es el primer periodo de tiempo que se afecta
  48.  
  49. # Mientras f sea menos que u y tiempo sea menor que tiempo_vida
  50. while (F<U & tiempo<tiempo_vida) {
  51. F = differential_equation(F, mu, tasa_de_gasto, ahorro)
  52. tiempo = tiempo+mu
  53. }
  54. ahorro = (ahorro - dinero_a_gastar)*(1+interes)
  55. }
  56. Nt[iteracion] = ahorro
  57. print("Años extra de vida")
  58. print(extra_years)
  59. }
  60. Nt
  61. hist(Nt, main = "Ahorro en Banco")
  62. quantile(Nt,c(0.025,0.50,0.975))
  63.  
  64.  
  65. # Datos en distribución normal
  66. f1=fitdist(Nt,"norm")
  67. summary(f1)
  68. denscomp(f1, main = "Compara ahorro con la distribución Normal")
  69. qqcomp(list(f1), main = 'normal')
  70.  
  71.  
  72. # Datos en distribución logística
  73. f2=fitdist(Nt,"logis")
  74. summary(f2)
  75. denscomp(f2, main = 'Logística')
  76. qqcomp(list(f2), main = 'Logística')
  77.  
  78. gofstat(list(f1,f2)) #bondad del ajuste
  79. qqcomp(list(f1,f2))
  80.  
  81. print(recibe_pension)
  82. print(no_recibe_pension)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement