Oprocentowanie karty kredytowej

Uruchom w Google Colab Zobacz źródło w GitHub

Wyobraźmy sobie, że chcesz oszacować oprocentowanie swojej karty kredytowej za rok. Załóżmy, że aktualna stawka główna wynosi 2%, a wystawca karty kredytowej pobiera opłatę w wysokości 10% plus prime. Biorąc pod uwagę siłę obecnej gospodarki, uważa Pan, że Rezerwa Federalna jest bardziej skłonna do podniesienia stóp procentowych niż do podniesienia stóp procentowych. Fed zbierze się osiem razy w ciągu najbliższych dwunastu miesięcy i albo podniesie stopę funduszy federalnych o 0,25%, albo pozostawi ją na dotychczasowym poziomie.

Do modelowania stopy procentowej Twojej karty kredytowej na koniec dwunastomiesięcznego okresu używamy rozkładu dwumianowego. W szczególności użyjemy klasy rozkładu dwumianu prawdopodobieństwa TensorFlow z następującymi parametrami: total_count = 8 (liczba prób lub spotkań), probs = {.6, .7, .8, .9} dla naszego zakresu szacunków dotyczących prawdopodobieństwo podniesienia przez Fed stopy funduszy federalnych o 0,25% na każdym posiedzeniu.

Zależności i wymagania wstępne

Ustawienia instalacji TensorFlow Prawdopodobieństwo

Importy i zmienne globalne (upewnij się, że uruchomiłeś tę komórkę)

Oblicz prawdopodobieństwa

Oblicz prawdopodobieństwo możliwych stóp procentowych karty kredytowej w ciągu 12 miesięcy.

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

Wykonaj kod 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,
])

Wizualizuj wyniki

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