ดอกเบี้ยบัตรเครดิต

ทำงานใน Google Colab ดูแหล่งที่มาบน GitHub

สมมติว่าคุณต้องการประมาณอัตราดอกเบี้ยของบัตรเครดิตของคุณในหนึ่งปีนับจากนี้ สมมติว่าอัตราดอกเบี้ยพิเศษในปัจจุบันคือ 2% และบริษัทบัตรเครดิตของคุณเรียกเก็บเงินคุณ 10% บวกจำนวนสูงสุด เมื่อพิจารณาถึงความแข็งแกร่งของเศรษฐกิจในปัจจุบัน คุณเชื่อว่า Federal Reserve มีแนวโน้มที่จะขึ้นอัตราดอกเบี้ยมากกว่าไม่เกิดขึ้น เฟดจะประชุมกัน 8 ครั้งในอีก 12 เดือนข้างหน้า และจะขึ้นอัตราเงินกองทุนของรัฐบาลกลาง 0.25% หรือคงไว้ที่ระดับก่อนหน้า

เราใช้การแจกแจงแบบทวินามเพื่อจำลองอัตราดอกเบี้ยบัตรเครดิตของคุณเมื่อสิ้นสุดระยะเวลาสิบสองเดือน โดยเฉพาะอย่างยิ่ง เราจะใช้คลาสการกระจาย TensorFlow Probability Binomial พร้อมพารามิเตอร์ต่อไปนี้: Total_count = 8 (จำนวนการทดลองหรือการประชุม), probs = {.6, .7, .8, .9} สำหรับช่วงค่าประมาณของเราเกี่ยวกับ ความน่าจะเป็นที่เฟดจะขึ้นอัตราเงินกองทุนของรัฐบาลกลาง 0.25% ในการประชุมแต่ละครั้ง

การพึ่งพาและข้อกำหนดเบื้องต้น

การตั้งค่าการติดตั้งความน่าจะเป็นของ TensorFlow

การนำเข้าและตัวแปรร่วม (อย่าลืมเรียกใช้เซลล์นี้)

ความน่าจะเป็นในการคำนวณ

คำนวณความน่าจะเป็นของอัตราดอกเบี้ยบัตรเครดิตที่เป็นไปได้ใน 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