EV LAB 期望值實驗室
數學筆記

凱利公式怎麼推出來的

為什麼最佳注碼是 (bp − q) ÷ b,以及為什麼實務上要打對折。

更新於

先問對問題

「怎麼下注才能讓期望獲利最大?」這個問題的答案很無聊:全押。期望值是線性的,押越多期望獲利越大。

問題在於全押會讓你在第一次輸的時候歸零,而歸零之後所有後續的期望值都乘以零。所以真正該問的是另一個問題:怎麼下注才能讓資金的長期成長率最大?

這兩個問題的答案完全不同,而凱利公式回答的是第二個。

為什麼是對數

資金是連乘的:這一輪剩下的錢是下一輪的本金。連乘的東西要看平均,該取的是幾何平均,而幾何平均的對數等於對數的算術平均。

所以「最大化長期成長率」等於「最大化 log(資金) 的期望值」。

設押注比例為 f,賠率的淨賠率為 b,勝率 p、敗率 q = 1 − p:

  • 贏了,資金乘上 (1 + b·f)
  • 輸了,資金乘上 (1 − f)

要最大化的目標就是 p·log(1 + b·f) + q·log(1 − f)。

一次微分就得到答案

對 f 微分並令其為零:

p·b / (1 + b·f) − q / (1 − f) = 0

整理後得到

f* = (b·p − q) / b

分子 b·p − q 就是「每投注 1 元的期望報酬」,也就是你的優勢。所以這個公式可以讀成:押注比例 = 優勢 ÷ 賠率。

優勢為零時 f* = 0,優勢為負時 f* 是負的——公式在說「押反方向」,而現實中你不能押反方向,所以答案是不下注。

為什麼要打對折

公式假設 p 是正確的。這個假設在賭場遊戲裡成立(機率由規則決定),在運彩裡完全不成立(機率是你猜的)。

而目標函數在最佳點附近很平:押 f*/2 大約保留 75% 的成長率,但波動只有一半。反過來,押 1.5 倍的 f* 會讓成長率下降,波動卻大幅上升——超過 2f* 時成長率甚至變成負的,即使每一注的期望值都是正的。

這個不對稱是關鍵:高估勝率的懲罰遠大於低估的損失。所以在勝率是估計值的情況下,往保守那邊偏是理性的,而不是懦弱。

這就是半凱利與四分之一凱利的理由。凱利公式計算機 會把三種比例同時列出來比較。

用在賭場遊戲上會怎樣

算出負數。

老虎機、百家樂、輪盤的 b·p − q 都是負的(那就是莊家優勢的定義),所以 f* < 0,公式的建議是不要下注。

這不是公式不適用,而是公式給了一個正確且乾脆的答案。凱利公式唯一能說「該押多少」的前提,是你已經確定擁有正期望值——而在商業博弈遊戲裡,那個前提只有在返水與優惠把期望值推正時才成立。

常見問題

為什麼不用期望值最大化?

因為期望值最大化的答案是全押,而全押的長期成長率是零(遲早會輸一次,資金歸零)。連乘的過程要看幾何平均,不是算術平均。

押超過凱利比例會怎樣?

成長率下降。超過兩倍凱利比例時,長期成長率會變成負的——即使每一注的期望值都是正的,資金仍然會趨近於零。這是連乘與變異數共同造成的。

同時押好幾注要怎麼算?

需要多重凱利,同時考慮各注之間的相關性。實務上的簡單做法是把同時進行的注碼總和控制在單注凱利建議之內。

凱利公式跟破產機率有關嗎?

有。按比例下注時資金理論上永遠不會歸零(每次只押一部分),所以嚴格意義的破產機率是零。實務上有最低注金限制,所以還是會出局——賭徒破產機率計算機 處理的是那個版本的問題。

資料來源

用得到的計算機