Interés de tarjeta de crédito

Ejecutar en Google Colab Ver fuente en GitHub

Imaginemos que le gustaría estimar la tasa de interés de su tarjeta de crédito dentro de un año. Suponga que la tasa preferencial actual es del 2% y su compañía de tarjeta de crédito le cobra un 10% más la tasa preferencial. Dada la solidez de la economía actual, usted cree que es más probable que la Reserva Federal suba las tasas de interés. La Fed se reunirá ocho veces en los próximos doce meses y aumentará la tasa de fondos federales en un 0,25% o la dejará en el nivel anterior.

Usamos la distribución binomial para modelar la tasa de interés de su tarjeta de crédito al final del período de doce meses. Específicamente, usaremos la clase de distribución TensorFlow Probability Binomial con los siguientes parámetros: total_count = 8 (número de pruebas o reuniones), probs = {.6, .7, .8, .9}, para nuestro rango de estimaciones sobre la probabilidad de que la Fed suba la tasa de fondos federales en un 0,25% en cada reunión.

Dependencias y requisitos previos

Configuración de instalación de probabilidad de TensorFlow

Importaciones y variables globales (asegúrese de ejecutar esta celda)

Calcular probabilidades

Calcule las probabilidades de las posibles tasas de interés de las tarjetas de crédito en 12 meses.

# First we encode our assumptions.
num_times_fed_meets_per_year = 8.
possible_fed_increases = tf.range(
    start=0.,
    limit=num_times_fed_meets_per_year + 1)
possible_cc_interest_rates = 2. + 10. + 0.25 * possible_fed_increases 
prob_fed_raises_rates = tf.constant([0.6, 0.7, 0.8, 0.9])  # Wild guesses.

# Now we use TFP to compute probabilities in a vectorized manner.
# Pad a dim so we broadcast fed probs against CC interest rates.
prob_fed_raises_rates = prob_fed_raises_rates[..., tf.newaxis]
prob_cc_interest_rate = tfd.Binomial(
    total_count=num_times_fed_meets_per_year,
    probs=prob_fed_raises_rates).prob(possible_fed_increases)

Ejecutar código TF

# Convert from TF to numpy.
[
    possible_cc_interest_rates_,
    prob_cc_interest_rate_,
    prob_fed_raises_rates_,
] = evaluate([
    possible_cc_interest_rates,
    prob_cc_interest_rate,
    prob_fed_raises_rates,
])

Visualizar resultados

plt.figure(figsize=(14, 9))
for i, pf in enumerate(prob_fed_raises_rates_):
  plt.subplot(2, 2, i+1)
  plt.bar(possible_cc_interest_rates_,
          prob_cc_interest_rate_[i],
          color=TFColor[i],
          width=0.23,
          label="$p = {:.1f}$".format(pf[0]),
          alpha=0.6,
          edgecolor=TFColor[i],
          lw="3")
  plt.xticks(possible_cc_interest_rates_ + 0.125, possible_cc_interest_rates_)
  plt.xlim(12, 14.25)
  plt.ylim(0, 0.5)
  plt.ylabel("Probability of cc interest rate")
  plt.xlabel("Credit card interest rate (%)")
  plt.title("Credit card interest rates: "
            "prob_fed_raises_rates = {:.1f}".format(pf[0]));
  plt.suptitle("Estimates of credit card interest rates in 12 months.",
               fontsize="x-large",
               y=1.02)
  plt.tight_layout()

png