Lãi suất thẻ tín dụng

Chạy trong Google Colab Xem nguồn trên GitHub

Hãy tưởng tượng rằng bạn muốn ước tính lãi suất trên thẻ tín dụng của mình sau một năm nữa. Giả sử lãi suất cơ bản hiện tại là 2% và công ty thẻ tín dụng của bạn tính phí cho bạn 10% cộng với lãi suất cơ bản. Với sức mạnh của nền kinh tế hiện tại, bạn tin rằng Cục Dự trữ Liên bang có nhiều khả năng tăng lãi suất hơn là không. Fed sẽ họp 8 lần trong 12 tháng tới và sẽ tăng lãi suất quỹ liên bang thêm 0,25% hoặc giữ nguyên ở mức trước đó.

Chúng tôi sử dụng phân phối nhị thức để lập mô hình lãi suất thẻ tín dụng của bạn vào cuối thời hạn 12 tháng. Cụ thể, chúng tôi sẽ sử dụng lớp phân phối Nhị thức xác suất TensorFlow với các tham số sau: Total_count = 8 (số lần thử nghiệm hoặc cuộc họp), probs = {.6, .7, .8, .9}, cho phạm vi ước tính của chúng tôi về xác suất Fed tăng lãi suất quỹ liên bang thêm 0,25% tại mỗi cuộc họp.

Phụ thuộc & Điều kiện tiên quyết

Cài đặt cài đặt xác suất TensorFlow

Nhập và Biến toàn cục (đảm bảo chạy ô này)

Tính xác suất

Tính xác suất lãi suất thẻ tín dụng có thể có trong 12 tháng.

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

Thực thi mã 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,
])

Trực quan hóa kết quả

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