Intereses de tarjeta de crédito

Ejecutar en Google Colab Ver código 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. Supongamos que la tasa preferencial actual es del 2% y la compañía de su tarjeta de crédito le cobra un 10% más la prima. Dada la fortaleza de la economía actual, usted cree que es más probable que la Reserva Federal suba las tasas de interés que no. La Reserva Federal se reunirá ocho veces en los próximos doce meses y aumentará la tasa de los 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 binomial de probabilidad de TensorFlow 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 Reserva Federal aumente la tasa de los 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 posibles tasas de interés de 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