بهره کارت اعتباری

در Google Colab اجرا شود مشاهده منبع در GitHub

بیایید تصور کنیم که می خواهید نرخ بهره کارت اعتباری خود را یک سال بعد تخمین بزنید. فرض کنید نرخ اولیه فعلی 2٪ است و شرکت کارت اعتباری شما 10٪ به علاوه پرایم را از شما دریافت می کند. با توجه به قدرت اقتصاد کنونی، شما بر این باورید که فدرال رزرو بیشتر احتمال دارد که نرخ بهره را افزایش دهد. فدرال رزرو در دوازده ماه آینده هشت بار تشکیل جلسه می دهد و یا نرخ وجوه فدرال را 0.25 درصد افزایش می دهد یا آن را در سطح قبلی باقی می گذارد.

ما از توزیع دو جمله ای برای مدل سازی نرخ بهره کارت اعتباری شما در پایان دوره دوازده ماهه استفاده می کنیم. به طور خاص، ما از کلاس توزیع دوجمله‌ای احتمال TensorFlow با پارامترهای زیر استفاده می‌کنیم: total_count = 8 (تعداد آزمایش‌ها یا جلسات)، probs = {.6، 0.7، 0.8، 0.9}، برای محدوده تخمین‌های خود در مورد احتمال افزایش نرخ وجوه فدرال توسط فدرال رزرو در هر جلسه 0.25٪.

وابستگی ها و پیش نیازها

تنظیمات نصب TensorFlow Probability

واردات و متغیرهای جهانی (حتما این سلول را اجرا کنید)

محاسبه احتمالات

احتمالات احتمالی نرخ بهره کارت اعتباری را در 12 ماه محاسبه کنید.

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

کد 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,
])

تجسم نتایج

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