El modelo de Ramsey nos dice la senda Ăłptima del consumo, el ahorro y la inversiĂłn
La tasa de crecimiento del consumo es la siguiente:
\(\begin{equation} \frac{\dot{c}}{c} = \frac{1}{\theta} \left( f'(k) - \delta - \rho \right) \end{equation}\)
Para simularla tenemos que usar las siguientes librerĂas:
library(deSolve) #Tiene varios modelos macro para calcular
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## âś” dplyr 1.1.4 âś” readr 2.1.5
## âś” forcats 1.0.0 âś” stringr 1.5.1
## âś” ggplot2 3.5.1 âś” tibble 3.2.1
## âś” lubridate 1.9.3 âś” tidyr 1.3.1
## âś” purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## âś– dplyr::filter() masks stats::filter()
## âś– dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Primero, hay que definir todos los parámetros de nuestra ecuación de equilibrio del consumo.
r<-1 #Nuestra tasa de interés, definida como la productividad marginal de capital (Asumimos solo un capital)
rho<-0.9 #Nuestra tasa de impaciencia en t o de preferencia temporal de consumo
rho1<-0.6 # Nuestra tasa de impaciencia o de preferencia temporal de consumo en t+1
theta<-0.5 # Es la tasa de sustitución intertemporal del consumo (entre mayor es, más le cuesta esperar por consumir a nuestro agente)
g<-0.9 #Tasa de depreciaciĂłn de capital
coninital <- c(con = 1) #Vamos a asumir que nuestro consumo inicial empieza en 1
times <- seq(from = 0, to = 100, by = 0.2) #Le voy a decir al R que me simule 100 periodos.
Una vez que he computado mis parámetros, me es posible estimar mi modelo. Recordemos que el resultado de la mayorĂa de modelos macro son un sistema de ecuaciones diferenciales (Ramsey, Solow), tambiĂ©n llamadas como EDO. Es por eso que vamos a necesitar la librerĂa deSolve para poder solucionar mis EDOs
Lo sigueinte es plantear mis ecuaciones:
#Comenzemos con mi ecuaciĂłn en t:
cdot <- function(t, con, parms){
list((((r-rho)/theta)-g)*con)}
#Luego con la ecuaciĂłn en t+1 (para este ejercicio solo voy a cambiar la tasa de impaciencia en t+1 el resto lo voy a dejar constante, aunque podrĂa cambiar:
cdot1<-function(t,con,prams){
list((((r-rho1)/theta)-g)*con)
}
Finalmente, resuelvo
#A la librerĂa le debo decir lo siguente
#ode(consumo_inicial, cuantos_periodos_, ecuaciĂłn_a_resolver)
#Recordemos que debemos hacer esto para cada ecuaciĂłn y tengo dos: cdot y cdot1, para t y t+1
out <- ode(y = coninital, times = times, func = cdot,
parms = NULL)
out1<-ode(y = coninital, times = times, func = cdot1,
parms = NULL)
Listo, R se encarga de resolver y puede pedirle que te haga los gráficos de consumo óptimo, inversión y demás:
plot(out,out1, main = "Senda de consumo Ăłptimo", lwd = 2)