3.7 Digresión: una calculadora de hipotecas con R

Esta sección incluye una discusión que ilustra el uso de la vectorización en un contexto menos trivial que en los ejemplos de la sección anterior. Como tal, puede omitirse en una primera lectura.

Al cabo de 4 años, 1000 euros depositados al 3% valen

1000 * (1 + 3 / 100)^4

Es sencillo deducir que para recibir 1000 euros dentro de 4 años hay que invertir

1000 / (1 + 3 / 100)^4

euros ahora al 3%. Esa cantidad es el llamado valor presente neto de esos 1000 euros futuros. El valor presente neto de una determinada cantidad futura depende de tres factores: de la cantidad, del plazo y del tipo de interés.

El precio actual de una casa es el valor presente neto de todas las cantidades que se pagarán mensualmente a lo largo de la vida de la hipoteca. Si pagas 500 euros al mes durante treinta años y tu hipoteca está al 3%, su valor presente es

\[\sum_{i = 1}^{12*30} \frac{500}{(1 + 0.03 / 12)^i}.\]

En R,

interes.mensual <- 3 / 12 / 100
meses <- 1:(12*30)
deflactor <- (1 + interes.mensual)^meses    # un vector
deflactor <- 1 / deflactor                  # otro vector
valor.actual <- sum(500 * deflactor)

En la expresión anterior hemos construido un vector de meses (desde 1 hasta 12 * plazo), hemos operado vectorialmente sobre él para obtener los valores presentes de cada mensualidad y, finalmente, los hemos sumado. Técnicamente, es la suma de lo que en bachillerato se conoce como progresión geométrica. Ahora vamos a hacer lo contrario: dado un capital, un plazo y un interés, calcular la cuota.

capital <- 100000 
anyos <- 20 
interes <- 3
interes.mensual <- interes / 12 / 100 
meses <- 1:(anyos*12)
cuota <- capital / sum(1 / (1+interes.mensual)^meses)