Valor del dinero en el tiempo

El dinero es un bien y una de sus funciones principales es la de servir como medio de intercambio, es decir, puedo adquirir bienes por dinero. Cuando hablamos del valor del dinero, nos referimos a su poder adquisitivo, capacidad de compra o de intercambio. Dicho valor varía a través del tiempo.

El valor del dinero en el tiempo se basa en la premisa de que un inversor prefiere recibir una suma de dinero hoy, en lugar de recibir la misma suma en una fecha futura.

Este concepto puede dividirse en dos partes: como bien mencionamos anteriormente, cuando hablamos del valor del dinero nos referimos a su capacidad de compra o intercambio, es decir, su poder adquisitivo; mientras que cuando estamos hablando del tiempo, nos referimos al cambio que sufre esta capacidad adquisitiva a lo largo del mismo. De allí la importancia de este concepto cuando se busca algún retorno dentro de todo proceso de inversión.

A su vez, podemos encontrar tres conceptos fundamentales involucrados en el valor temporal del dinero. Estos son: el valor presente, valor futuro y el rendimiento. El primer concepto de ellos se refiere al valor descontado de los flujos de caja que se generarán en el futuro, es decir, a cuánto equivale hoy una suma de dinero que esperamos recibir en un tiempo futuro determinado. El segundo, por su parte, describe el proceso de crecimiento de la inversión a una tasa de interés y en un período de tiempo dado. Dicho en otras palabras, hace referencia al capital acumulado en un momento futuro, generado por los intereses y/o amortizaciones que se den a lo largo de la vida de esa inversión. El concepto de valor de dinero en el tiempo permite una evaluación y comparación de inversiones. El rendimiento es la tasa a la cual crece o decrece una inversión. Nos interesan los rendimientos positivos, ya que estos permiten la apreciación del capital invertido.

La conversión de un valor actual a su valor futuro equivalente se denomina composición. Mientras que la conversión de un flujo de efectivo o valor futuro a su valor equivalente en un período anterior se conoce como el descuento.

Interés

Cuando hablamos del interés de un instrumento financiero, nos referimos a la ganancia (plusvalía) generada por el hecho de invertir una cantidad de dinero en dicho instrumento durante un periodo de tiempo determinado.

Para su cálculo podemos utilizar dos metodologías distintas: el método del interés simple o el método del interés compuesto. La diferencia entre ambos métodos consiste en que en el primero todo el interés es pagado cuando la inversión madura. No hay oportunidad de reinvertir los intereses. Mientras que en el segundo se tienen en cuenta las capitalizaciones de los intereses. La capitalización compuesta consiste en calcular los intereses generados sobre el capital que se va acumulando; es decir, sobre la cantidad inicialmente invertida y los intereses ya cobrados (devengados), es decir, se gana interés sobre los intereses recibidos, en otras palabras, los intereses se capitalizan y cuando calculamos el interés para el siguiente período este cálculo se realiza sobre una base de capital mayor.

Interés simple

El interés simple es aquel que se calcula multiplicando el capital, el interés del período por el tiempo.

Vamos a calcular el interés producido por un capital de $30.000, invertidos a una tasa del 4% anual, durante 90 días.

En R podemos crear una función que nos permita calcular el interés simple de una inversión. Dicha función recibirá como parámetros c (capital), t (tasa de interés), n (tiempo) y debemos especificar la frecuencia con la que el interés se capitaliza, es decir, si el periodo de aplicación de la tasa es anual (“año”), mensual (“mes”) o diario (“dia”).

interes_simple <- function(c,t,n,tt){
  t <- t/100
  if (tt == "año"){
    return(c * t * n)
  }else if (tt == "mes"){
    return(c * t * (n/12))
  }else if (tt == "dia"){
    return(c * t * (n/365))
  }
}

Interés compuesto

Es el resultado de tener en cuenta las capitalizaciones de los intereses (intereses sobre los intereses cobrados).

La capitalización compuesta consiste en calcular los intereses generados sobre el capital que se va acumulando; es decir, sobre la cantidad inicialmente invertida y los intereses ya cobrados (devengados).

donde $C_{n}$ es el capital final o valor futuro y $C_{0}$ es el capital inicial.

Al igual que con el interés simple, la tasa debe ser expresada en la temporalidad correcta. Es decir, hay que asegurarse que el período de tiempo considerado y la tasa de interés están expresadas en la misma unidad, años, meses, días, etc.

El interés compuesto final vendrá determinado por la diferencia entre el capital final y el inicial.

Vamos a calcular el interés compuesto generado de una inversión de $1.200.000 durante 5 años a una tasa de interés anual del 8%.

De igual forma que con el interés simple, vamos a crear una función en R que nos permita calcular el interés compuestos, generados en una inversión durante un periodo de tiempo determinado.

interes_compuesto <- function(c,t,n,tt){
  
  if (tt == "anual"){
    cf <- c*(1+(t/100))^n
  } else if (tt == "semestral"){
    cf <- c*(1+(t/(100*2)))^(n*2)
  } else if (tt == "trimestral"){
    cf <- c*(1+(t/(100*4)))^(n*4)
  } else if (tt == "mensual"){
    cf <- c*(1+(t/(100*12)))^(n*12)
  }
  return(cf - c)
}
#función para calcular el interés simple interes_simple <- function(c,t,n,tt){ t <- t/100 if (tt == "anual"){ a <- c * t return(a * n) }else if (tt == "mensual"){ a <- c * t return(a * (n/12)) }else if (tt == "diario"){ a <- c * t return(a * (n/365)) } } #función para calcular el interés compuesto interes_compuesto <- function(c,t,n,tt){ if (tt == "anual"){ cf <- c*(1+(t/100))^n } else if (tt == "semestral"){ a <- t/(100*2) b <- (1 + a)^(n*2) cf <- c * b } else if (tt == "trimestral"){ a <- t/(100*4) b <- (1 + a)^(n*4) cf <- c * b } else if (tt == "mensual"){ a <- t/(100*12) b <- (1 + a)^(n*12) cf <- c * b } return(cf - c) } # Hallar el interés simple producido durante seis meses, por un capital de $10.000 al 3,5%. Puede utilizar la función prod(), que calcula el producto de los números que se le pasen como parámetros; es decir, prod(2,2,2) devolverá el producto de 2x2x2 = 8. Evite utilizar la función de interés simple y realice el procedimiento manualmente. resultado <- resultado # Calcular el monto que se obtendría por concepto de intereses, producto de una inversión de $25.000 a una tasa de interés simple del 5% anual, durante 4 años. Las funciones de `interes_simple` e `interes_compuesto` se encuentran cargadas en el ambiente de trabajo para que las pueda utilizar. resultado2 <- resultado2 # Hallar el interés compuesto producido durante 7 años, por un capital de $800.000 al 10%, pagaderos semestralmente. Evite utilizar la función y realice el procedimiento manualmente. resultado3 <- resultado3 # Calcular el monto que se obtendría por concepto de intereses (compuesto), producto de una inversión de $1.200.000 a una tasa de interés del 8% anual, durante 5 años. En este ejercicio puede utilizar la función correspondiente. resultado4 <- resultado4 # Hallar el interés simple producido durante seis meses, por un capital de $10.000 al 3,5%. Puede utilizar la función prod(), que calcula el producto de los números que se le pasen como parámetros; es decir, prod(2,2,2) devolverá el producto de 2x2x2 = 8. Evite utilizar la función de interés simple y realice el procedimiento manualmente. resultado <- prod(10000, 0.035, (6/12)) resultado # Calcular el monto que se obtendría por concepto de intereses, producto de una inversión de $25.000 a una tasa de interés simple del 5% anual, durante 4 años. Las funciones de `interes_simple` e `interes_compuesto` se encuentran cargadas en el ambiente de trabajo para que las pueda utilizar. resultado2 <- interes_simple(25000,5,4,"anual") resultado2 # Hallar el interés compuesto producido durante 7 años, por un capital de $800.000 al 10%, pagaderos semestralmente. Evite utilizar la función y realice el procedimiento manualmente. resultado3 <- prod(800000, (1+(10/(100*2)))^prod(7,2)) - 800000 resultado3 # Calcular el monto que se obtendría por concepto de intereses (compuesto), producto de una inversión de $1.200.000 a una tasa de interés del 8% anual, durante 5 años. En este ejercicio puede utilizar la función correspondiente. resultado4 <- interes_compuesto(1200000,8,5, "anual") resultado4 test_object("resultado", incorrect_msg = "El interés simple es igual a capital x interés x tiempo") test_object("resultado2", incorrect_msg = "Recuerde utilizar la función interes_simple.") test_object("resultado3", incorrect_msg = "La formula del Interés compuesto es capital final - capital inicial. Capital final = capital inicial(1 + interés)^ tiempo") test_object("resultado4", incorrect_msg = "Recuerde utilizar la función interes_compuesto.") success_msg("Muy bien!")
El interés simple no considera la reinversión de los intereses generados.

Valor futuro

El valor futuro es el resultado de aplicar una tasa de interés a un capital hoy. El valor futuro nos permite calcular cuanto crece el capital cuando se le aplica una tasa de interés durante un período de tiempo determinado.

Dicho de otra manera, el valor futuro hace referencia al capital acumulado en un momento futuro, generado por los intereses y/o amortizaciones que se den a lo largo de la vida de una inversión. Este concepto nos permite evaluar y comparar posibles alternativas de inversión.

Si el tipo de interés es simple, el valor futuro puede ser calculado bajo la fórmula general siguiente:

Con $n$ como el número de períodos y $r$ como la tasa de interés del período.

Por otra parte, si el tipo de interés aplicado es compuesto, el valor futuro lo podremos calcular bajo la fórmula siguiente:

Vamos a crear una función en R para calcular el valor futuro. Dicha función recibirá como parámetros el valor presente vp, la tasa de interés r, el tiempo de inversión n, el tipo de capitalización del interés tc (en el caso de interés simple: anual, mensual y diario; en el caso de interés compuesto: mensual, anual, trimestral y semestral) y el tipo de interés a aplicar ti (simple o compuesto).

valor_futuro <- function(vp, r, n, tc, ti){
  r <- r/100
  
  if (tc == "anual" && ti == "simple"){
    return(vp * (1 + r * n))
  }else if (tc == "mensual" && ti == "simple"){
    return(vp * (1 + r * (n/12)))
  }else if (tc == "diario" && ti == "simple"){
    return(vp * (1 + r * (n/365)))
  }else if (tc == "anual" && ti == "compuesto"){
    return(vp*(1+r)^n)
  }else if (tc == "semestral" && ti == "compuesto"){
    return(vp*(1+(r/2))^(n*2))
  } else if (tc == "trimestral" && ti == "compuesto"){
    return(vp*(1+(r/4))^(n*4))
  } else if (tc == "mensual" && ti == "compuesto"){
    return(vp*(1+(r/12))^(n*12))
  }
}

Valor Presente

Del mismo modo, es posible calcular el valor presente de una inversión a partir de su valor futuro, la tasas de interés y el período de tiempo. El valor presente nos indica el monto que se tendría que invertir hoy para obtener el valor futuro en el período de tiempo determinado y la tasa de interés.

Si el tipo de interés es simple, el valor presente puede ser calculado bajo la siguiente fórmula:

Con n= número de periodos y r = tasa de interés del período.

Por otra parte, si el tipo de interés aplicado es compuesto, el valor presente será:

Al igual que con el valor futuro, vamos a crear una función en R para calcular el valor presente. Dicha función recibirá los siguientes parámetros el valor futuro vf, la tasa de interés r, el tiempo de inversión n, el tipo de capitalización del interés tc (en el caso de interés simple: anual, mensual y diario; en el caso de interés compuesto: mensual, anual, trimestral y semestral) y el tipo de interés a aplicar ti (simple o compuesto).

valor_presente <- function(vf, r, n, tc, ti){
  r <- r/100
  
  if (tc == "anual" && ti == "simple"){
    return(vf / (1 + (r * n)))
  }else if (tc == "mensual" && ti == "simple"){
    return(vf / (1 + (r * (n/12))))
  }else if (tc == "diario" && ti == "simple"){
    return(vf / (1 + (r * (n/365))))
  }else if (tc == "anual" && ti == "compuesto"){
    return(vf/(1+r)^n)
  }else if (tc == "semestral" && ti == "compuesto"){
    return(vf/(1+(r/2))^(n*2))
  } else if (tc == "trimestral" && ti == "compuesto"){
    return(vf/(1+(r/4))^(n*4))
  } else if (tc == "mensual" && ti == "compuesto"){
    return(vf/(1+(r/12))^(n*12))
  }
}
# Función para calcular el valor futuro valor_futuro <- function(vp, r, n, tc, ti){ r <- r/100 if (tc == "anual" && ti == "simple"){ a <- r * n return(vp * (1 + a)) }else if (tc == "mensual" && ti == "simple"){ a <- r* (n/12) return(vp * (1+a)) }else if (tc == "diario" && ti == "simple"){ a <- r * (n/365) return(vp * (1+a)) }else if (tc == "anual" && ti == "compuesto"){ return(vp*(1+r)^n) }else if (tc == "semestral" && ti == "compuesto"){ a <- r/2 b <- (1 + a)^(n*2) return(vp * b) } else if (tc == "trimestral" && ti == "compuesto"){ a <- r/4 b <- (1 + a)^(n*4) return(vp * b) } else if (tc == "mensual" && ti == "compuesto"){ a <- r/12 b <- (1 + a)^(n*12) return(vp * b) } } # Función para calcular el valor presente valor_presente <- function(vf, r, n, tc, ti){ r <- r/100 if (tc == "anual" && ti == "simple"){ return(vf / (1 + (r * n))) }else if (tc == "mensual" && ti == "simple"){ return(vf / (1 + (r * (n/12)))) }else if (tc == "diario" && ti == "simple"){ return(vf / (1 + (r * (n/365)))) }else if (tc == "anual" && ti == "compuesto"){ return(vf/(1+r)^n) }else if (tc == "semestral" && ti == "compuesto"){ return(vf/(1+(r/2))^(n*2)) } else if (tc == "bimestral" && ti == "compuesto"){ return(vf/(1+(r/6))^(n*6)) }else if (tc == "trimestral" && ti == "compuesto"){ return(vf/(1+(r/4))^(n*4)) } else if (tc == "mensual" && ti == "compuesto"){ return(vf/(1+(r/12))^(n*12)) } } # Hallar el valor futuro de una inversión de $1.000.000 a una tasa del 24%, con capitalización mensual, durante 5 años. Debe asumir un interés compuesto. Para este ejercicio no utilice la función de "valor_futuro". valor_futuro_1 <- valor_futuro_1 # Ahora trabajemos con la función de "valor_futuro" para hallar el valor que se deberá pagar por un crédito de $850.000, a una tasa de interés 8,7% anual capitalizable semestralmente y pagaderos en un plazo de 10 años. valor_futuro_2 <- valor_futuro_2 # Vamos a trabajar con el valor presente en este ejercicio. Supongamos que se desean generar $60.000 al cabo de 18 meses, aprovechando una tasa de interés del 24% capitalizable mensualmente. ¿Cuánto se debe invertir para obtener dicho monto?. Para este ejercicio no utilice la función de "valor_presente". valor_presente_1 <- valor_presente_1 # Por último, utilizaremos la función de "valor_presente" para la resolución del siguiente ejercicio. Queremos hallar el valor del monto que debe depositarse en un banco si deseamos obtener $11.406,04 al cabo de 2 años, a una tasa de interés del 18% capitalizable bimestralmente. valor_presente_2 <- valor_presente_2 # Hallar el valor futuro de una inversión de $1.000.000 a una tasa del 24%, con capitalización mensual, durante 5 años. Utilizando la fórmula de interés compuesto. valor_futuro_1 <- prod(1000000, ((1+(0.24/12))^(5*12))) valor_futuro_1 # Ahora trabajemos con la función de "valor_futuro" para hallar el valor que se deberá pagar por un crédito de $850.000, a una tasa de interés 8,7% anual capitalizable semestralmente y pagaderos en un plazo de 10 años. valor_futuro_2 <- valor_futuro(850000, 8.7, 10, "semestral", "compuesto") valor_futuro_2 # Vamos a trabajar con el valor presente en este ejercicio. Supongamos que se desean generar $60.000 al cabo de 18 meses, aprovechando una tasa de interés del 24% capitalizable mensualmente. ¿Cuánto se debe invertir para obtener dicho monto? valor_presente_1 <- 60000 / ((1 + (0.24/12))^(1.5*12)) valor_presente_1 # Por último, utilizaremos la función de "valor_presente" para la resolución del siguiente ejercicio. Queremos hallar el valor del monto que debe depositarse en un banco si deseamos obtener $11.406,04 al cabo de 2 años, a una tasa de interés del 18% capitalizable bimestralmente. valor_presente_2 <- valor_presente(11406.04,18,2,"bimestral","compuesto") valor_presente_2 test_object("valor_futuro_1", incorrect_msg = "Recuerde que la formula de valor futuro es VF = VP(1+r)^t") test_object("valor_futuro_2", incorrect_msg = "Recuerde para correctamente los parámetros a la función") test_object("valor_presente_1", incorrect_msg = "Recuerde que la formula de valor presente es VP = VF / (1+r)^t") test_object("valor_presente_2", incorrect_msg = "Recuerde que el parámetro del tiempo va expresado en años") success_msg("Muy bien!")
El valor presente puede calcularlo a partir del valoro futuro.

Valor Presente Neto

Es la diferencia entre el capital invertido y la suma del valor presente de una serie de flujos de caja futuros. Este cálculo es la base para la valoración de proyectos de inversión. Básicamente se proyectan los flujos de caja que una inversión va a generar y se calcula el valor presente de cada flujo. El valor presente de los flujos se suma y se resta la inversión inicial. Es una forma de entender la ganancia que una inversión puede producir, a partir de este cálculo se pueden comparar diferentes inversiones.

Todo proyecto con un $VPN\ >\ 0$ agrega riqueza a los accionistas. Si por el contrario el $VPN\ <\ 0$, generará pérdidas a los accionistas.

El siguiente código en R, muestra la función que nos permite calcular el valor presente neto de una inversión. La función recibirá como parámetros el monto de la inversión inicial I, el valor del o los flujos (si son flujos distintos se deberá ingresar un vector con los valores de los distintos flujos, y en caso contrario únicamente se deberá ingresar el valor del flujo) flujos, la tasa de interés r, el número de periodos n y el tipo de flujos tipo_flujos (si son iguales = “iguales” y en caso de ser distintos = “distintos”).

VPN <- function(I, flujos, r, n, tipo_flujos){
  r <- r/100
  descuento <- c()
  
  if (tipo_flujos == "iguales"){
    FC <- rep(flujos, n)
  }else if (tipo_flujos == "distintos"){
    FC <- flujos
  }
  
  for(i in 1:n){
      descuento <- c(descuento, 1 / (1 + r) ^ i)
  }
  vp <- FC * descuento
  return(round(-I + sum(vp),digits = 2))
}
#función para calcular el valor presente neto VPN <- function(I, flujos, r, n, tipo_flujos){ r <- r/100 descuento <- c() if (tipo_flujos == "iguales"){ FC <- rep(flujos, n) }else if (tipo_flujos == "distintos"){ FC <- flujos } for(i in 1:n){ descuento <- c(descuento, 1 / (1 + r) ^ i) } vp <- FC * descuento return(round(-I + sum(vp),digits = 2)) } # Vamos a calcular el valor presente neto de una inversión de $10.000 a una tasa de interés del 15% anual durante 5 años. Dicha inversión generará unos flujos de $4.000. La función `VPN` se encuentra cargada en el ambiente de trabajo para que puede utilizarla. valor_presente_neto <- valor_presente_neto # Evaluemos ahora si se debe aceptar una inversión de $100.000, a una tasa del 28% durante 8 años, que generará los siguientes flujos durante el periodo de inversión. $10.000 para el primer periodo, $15.000 para el segundo periodo, $30.000 para el tercer periodo, $35.000 para el cuarto periodo y $40.000 para el último periodo. valor_presente_neto_2 <- valor_presente_neto_2 # Vamos a calcular el valor presente neto de una inversión de $10.000 a una tasa de interés del 15% anual durante 5 años. Dicha inversión generará unos flujos de $4.000. La función `VPN` se encuentra cargada en el ambiente de trabajo para que puede utilizarla. valor_presente_neto <- VPN(10000, 4000, 15, 5, "iguales") valor_presente_neto # Evaluemos ahora si se debe aceptar una inversión de $100.000, a una tasa del 28% durante 8 años, que generará los siguientes flujos durante el periodo de inversión. $10.000 para el primer periodo, $15.000 para el segundo periodo, $30.000 para el tercer periodo, $35.000 para el cuarto periodo y $40.000 para el último periodo. valor_presente_neto_2 <- VPN(100000, c(10000,15000,30000,35000,40000, 45000, 50000, 55000), 28, 8, "distintos") valor_presente_neto_2 test_object("valor_presente_neto", incorrect_msg = "Recuerde establecer el tipo de flujo correctamente") test_object("valor_presente_neto_2", incorrect_msg = "Recuerde establecer el tipo de flujo correctamente") success_msg("Muy bien!")
Si los intereses son distintos, debe establecer un vector con los distintos flujos.

Tasa Efectiva Anual

La tasa de interés es la plusvalía o retribución que se obtiene producto de la utilización de un cierto capital. Otra forma de ver dicha tasa de interés es como el costo de oportunidad de una inversión o el nivel mínimo de rendimiento exigido para llevar a cabo un determinado proyecto.

A pesar de que las funciones creadas, en R, anteriormente de valor futuro y valor presente toman en cuenta la capitalización de los intereses, vamos a detallar el proceso de calcular la tasa de interés efectiva.

Recordemos que la capitalización es el proceso mediante el cual los intereses devengados se agregan al capital (se capitalizan). Cuando hablamos de capitalización anual, hablamos de que los intereses generados se agregan al capital al final de cada año. Cuando hablamos de capitalización semestral, decimos que los intereses generados se agregan al capital al final de cada semestre, y así sucesivamente.

Para calcular la tasa de interés efectiva, cuando el interés se capitaliza más de una vez al año, nos valemos de la siguiente ecuación:

donde $r$ es la tasa de interés nominal anual y $m$ es el número de veces que se capitalizan los intereses.

Veamos como queda nuestra función en R para el cálculo de la TAE.

TEA <- function(r, tc){
  r <- r/100
  
  if (tc == "semestral"){
    return((1+r/2)^2 - 1)
  }else if (tc == "trimestral"){
    return((1+r/4)^4 - 1)
  }else if (tc == "mensual"){
    return((1+r/12)^12 - 1)
  }else if (tc == "diaria"){
    return((1+r/365)^365 - 1)
  }
}

La utilidad de esta tasa se debe a que en muchas ocasiones conocemos la tasa de interés anual efectiva del proyecto, pero sus flujos pueden ser mensuales, diarios, semestrales o trimestrales. Por lo que debemos buscar una tasa efectiva mensual que sea equivalente a la TEA, para poder calcular el valor presente y el valor presente neto.

#función para calcular la tasa efectiva anual TEA <- function(r, tc){ r <- r/100 if (tc == "semestral"){ return((1+r/2)^2 - 1) }else if (tc == "trimestral"){ return((1+r/4)^4 - 1) }else if (tc == "mensual"){ return((1+r/12)^12 - 1) }else if (tc == "diaria"){ return((1+r/365)^365 - 1) } } # Vamos a calcular cuál es la tasa de interés efectiva anual si la tasa de interés anual con capitalización diaria es del 20%? TAE <- TAE # Vamos a calcular cuál es la tasa de interés efectiva anual si la tasa de interés anual con capitalización diaria es del 20%? TAE <- TEA(20, "mensual") TAE test_object("TAE", incorrect_msg = "Debe especificar correctamente el tipo de capitalización") success_msg("Muy bien!")
Puede revisar los parámetros que pide la función en la consola.

Hay otra variable, adicional al tipo de interés, que influye en el valor del dinero en el tiempo. Esta variable es la inflación. La inflación es el aumento sostenido de los precios de los bienes y servicios en una economía. Sin embargo, el desarrollo de esta variable lo dejaremos más a detalle para un próximo artículo.

Los comandos en R se pueden descargar para que puedan experimentar.

Copyright © 2014-2018 Synergy Vision. Los artículos del Corpus se comparten bajo los términos de la licencia Creative Commons con Reconocimiento, Propósito no comercial, Compartir contenido similar, 4.0 Internacional (CC BY-NC-SA 4.0).

Citar el artículo.