Interessi della carta di credito

Esegui in Google Colab Visualizza la fonte su GitHub

Immaginiamo che tu voglia stimare il tasso di interesse sulla tua carta di credito tra un anno. Supponiamo che il tasso primario attuale sia del 2% e che la società della tua carta di credito ti addebiti il ​​10% più il tasso prime. Data la forza dell’economia attuale, ritieni che sia più probabile che la Federal Reserve aumenti i tassi di interesse piuttosto che no. La Fed si riunirà otto volte nei prossimi dodici mesi e alzerà il tasso dei fondi federali dello 0,25% oppure lo lascerà al livello precedente.

Utilizziamo la distribuzione binomiale per modellare il tasso di interesse della tua carta di credito alla fine del periodo di dodici mesi. Nello specifico, utilizzeremo la classe di distribuzione binomiale di probabilità di TensorFlow con i seguenti parametri: total_count = 8 (numero di prove o riunioni), probs = {.6, .7, .8, .9}, per il nostro intervallo di stime su la probabilità che la Fed aumenti il ​​tasso dei fondi federali dello 0,25% ad ogni riunione.

Dipendenze e prerequisiti

Impostazioni di installazione della probabilità di TensorFlow

Importazioni e variabili globali (assicurati di eseguire questa cella)

Calcolare le probabilità

Calcolare le probabilità dei possibili tassi di interesse delle carte di credito in 12 mesi.

# 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)

Esegui il codice 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,
])

Visualizza i risultati

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