#' Exponential discounting of future utility
#'
#' @param consumption value of the utility function at time t
#' @param beta Discount rate relative to today
#' @param delta Discount rate fo eah period in the future
#' @param periods Number of periods in the future that we want to discount exponentially
#' @export
#' @return Exponentially discounted value of utility function
#'
#' @examples
exponential_discount <- function(consumption,
                                 beta,
                                 delta,
                                 periods){
  period_value <- consumption*(delta^periods)*beta
  return(period_value)
}
#' Model of time consistent preferences utility function
#'
#' @param c_t Value of the consumption today
#' @param c_t_1 Value of the future consumption
#' @param beta Discount rate relative to today
#' @param delta Discount rate fo eah period in the future
#' @param periods Number of periods in the future that we want to discount exponentially
#' @param start Equals to 0 if the consumption begin today, any other value means that the consumption
#' starts in the future
#' @export
#' @return Present value of utility after discounting the future utility in today terms
#'
#' @examples
lifetime_utility_function <- function(c_t,
                                      c_t_1,
                                      start,
                                      periods,
                                      beta,
                                      delta){
  if(start == 0){
    start0 <- start + 1
  }else{
    start0 <- start
  }
  future_consumption <- seq(from = start0,
                            to = start + periods) %>%
    purrr::map(~exponential_discount(consumption = c_t_1,
                                     periods = .x,
                                     beta = beta,
                                     delta = delta)
    ) %>%
    purrr::reduce(sum)
  if(start == 0){
    present_utility <- c_t + future_consumption
  }else{
    present_utility <- future_consumption
  }
  return(present_utility)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.