Bunga Kartu Kredit

Lihat sumber di GitHub

Bayangkan Anda ingin memperkirakan tingkat bunga kartu kredit Anda satu tahun dari sekarang. Misalkan tarif utama saat ini adalah 2% dan perusahaan kartu kredit Anda menagih Anda 10% ditambah tarif utama. Mengingat kekuatan perekonomian saat ini, Anda yakin bahwa Federal Reserve kemungkinan besar akan menaikkan suku bunga dibandingkan tidak. The Fed akan bertemu delapan kali dalam dua belas bulan ke depan dan akan menaikkan suku bunga dana federal sebesar 0,25% atau mempertahankannya pada level sebelumnya.

Kami menggunakan distribusi binomial untuk memodelkan tingkat bunga kartu kredit Anda pada akhir periode dua belas bulan. Secara khusus, kita akan menggunakan kelas distribusi TensorFlow Probability Binomial dengan parameter berikut: total_count = 8 (jumlah uji coba atau pertemuan), probs = {.6, .7, .8, .9}, untuk rentang perkiraan kita tentang kemungkinan The Fed menaikkan suku bunga dana federal sebesar 0,25% pada setiap pertemuan.

Ketergantungan & Prasyarat

Pengaturan Instalasi Probabilitas TensorFlow

Impor dan Variabel Global (pastikan untuk menjalankan sel ini)

Hitung Probabilitas

Hitung probabilitas kemungkinan suku bunga kartu kredit dalam 12 bulan.

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

Jalankan Kode 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,
])

Visualisasikan Hasil

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