クレジットカードの利息

Google Colab で実行する GitHub でソースを表示

1 年後のクレジット カードの金利を見積もりたいと想像してみましょう。現在のプライム レートが 2% で、クレジット カード会社が 10% にプライムを加えた料金を請求するとします。現在の経済の好調さを考慮すると、あなたは連邦準備制度が利上げをしないよりも利上げをする可能性の方が高いと考えています。 FRBは今後12カ月間に8回会合を開き、フェデラルファンド金利を0.25%引き上げるか、以前の水準に据え置くかのどちらかとなる。

二項分布を使用して、12 か月期間終了時のクレジット カードの金利をモデル化します。具体的には、次のパラメータを持つ TensorFlow 確率二項分布クラスを使用します: total_count = 8 (試行または会議の数)、probs = {.6, .7, .8, .9}、についての推定範囲についてFRBが各会合でフェデラルファンド金利を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