Juros de cartão de crédito

Execute no Google Colab Ver fonte no GitHub

Vamos imaginar que você gostaria de estimar a taxa de juros do seu cartão de crédito daqui a um ano. Suponha que a taxa básica de juros atual seja de 2% e a administradora do seu cartão de crédito cobre 10% mais a taxa básica de juros. Dada a força da economia actual, acredita que é mais provável que a Reserva Federal aumente as taxas de juro do que não. A Fed reunir-se-á oito vezes nos próximos doze meses e irá aumentar a taxa dos fundos federais em 0,25% ou deixá-la no nível anterior.

Usamos a distribuição binomial para modelar a taxa de juros do seu cartão de crédito no final do período de doze meses. Especificamente, usaremos a classe de distribuição binomial de probabilidade do TensorFlow com os seguintes parâmetros: total_count = 8 (número de tentativas ou reuniões), probs = {0,6, 0,7, 0,8, 0,9}, para nosso intervalo de estimativas sobre a probabilidade de o Fed aumentar a taxa dos fundos federais em 0,25% em cada reunião.

Dependências e pré-requisitos

Configurações de instalação de probabilidade do TensorFlow

Importações e variáveis ​​globais (certifique-se de executar esta célula)

Calcular probabilidades

Calcule as probabilidades de possíveis taxas de juros do cartão de crédito em 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)

Executar 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,
])

Visualize 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