Kelly Criterion

典型案例

無論是在數學課上還是日常生活中,相比大家對拋硬幣這個遊戲並不陌生。通常來說,硬幣有正反兩面,並且拋一次硬幣出現正面和反面的概率是一樣的,也就是二分之一。如果用數學符號來表示的話,那就是 p = q = 1/2, 這裡的 p,q 分別表示硬幣出現正面和反面的概率值。 從直覺上說,在這種情況下,如果我們每次投入的資金都是一樣的並且資金鏈條不會斷裂,那麼隨著投幣次數的增多,最終我們應該是既不會贏錢也不會輸錢,總資產和一開始的時候一樣保持不變。

數學描述

用數學語言來描述這個過程的話,假設我們的初始資產是 X_{0}X_{n} 表示 n 次下注之後我們當前的資產,每次下注的錢是 B_{k},用 T_{k} =1 表示第 k 次下注獲勝, T_{k} = -1 表示第  k 次下註失敗。那麼從數學公式上來說就是:對於所有的 kgeq 1, 都有

X_{k} = X_{k-1} + T_{k}B_{k},

進一步可以得到:

X_{n} = X_{0} + sum_{k=1}^{n} T_{k}B_{k},

所以,

E(X_{n}) = X_{0} + sum_{k=1}^{n}E(T_{k}B_{k}) = X_{0} + sum_{k=1}^{n}(p-q)E(B_{k}).

對於上面特殊的例子,當 p = q = 1/2 時,就可以得到  E(X_{n}) = X_{0}.

p>q 的時候,表示賭贏的概率大於賭輸的概率。這種時候,如果需要讓 E(X_{n}) 最大,那麼就需要最大化每次的 E(B_{k}) 。所以,在這種情況下,我們需要在每次下注的時候,把手上所有的資產全部下注,然後總資產隨著次數的增加就會出現幾何級數的增長。

相反的,如果 p<q,表示下注獲勝的概率小於下註失敗的概率。這種時候,如果需要讓 E(X_{n}) 最大,那麼就需要最小化每次的 E(B_{k}), 因為 p-q<0. 所以,在這種情況下,我們在每次下注的時候,其實就不需要投注,每次的 B_{k}=0,在這種情況下,我們的總資產其實就會保持原樣不變。i.e. E(X_{n}) = X_{0}.

按比例投注

在每次下注或者投資的時候,我們通常都會想著按照一定的比例來投注自己當前的資產。也就是說,存在一個參數 0leq fleq 1, 使得 B_{i} = f X_{i-1}, 也就是說,每次投注的時候,基於上一輪的總資產來投注相應的比例即可。如果當前的資產是 X, 如果下注贏了,那麼總資產就變成 X(1+f);如果下注輸了,那麼總資產就變成 X(1-f) 。意思就是說,如果贏了,那就在原來資產的基礎上乘以  (1+f);如果輸了,那就在原來資產的基礎上乘以 (1-f) 。在這種情況下,如果我們進行了  n 次下注,那麼此刻的資產就變成了

X_{n} = X_{0} cdot(1+f)^{S}cdot(1-f)^{F}

其中, S, F 分別表示成功和失敗的次數,並且  S+F=n

f=0 時,表示永遠不下注,此時對於所有的 ngeq 0,都有 X_{n}=X_{0};當 f=1 時,表示每次下注的時候都是全部下注,那麼只要 Fgeq 1,就會出現 X_{n}=0 的情況。意思就是說,如果有一次失敗了,那就全盤皆輸,沒有任何資產可以繼續運營。但是如果運氣足夠好的話,那就是 S=n, F=0 ,總資產就是 X_{n} = X_{0}cdot 2^{n}.

0<f<1 時,從公式中可以得到:

ln X_{n} = ln X_{0} + Scdot ln(1+f) + Fcdot ln(1-f)

Rightarrow G_{n}(f)=ln(X_{n}/X_{0})^{1/n}

=(ln X_{n}-ln X_{0})/n = (S/n) ln(1+f) + (F/n)ln(1-f).

進一步可以得到:

g(f) = E(ln(X_{n}/X_{0})^{1/n})

= E((S/n) ln(1+f) + (F/n)ln(1-f))

= pln(1+f)+qln(1-f).

因此,可以通過研究 g(f) 來確定 E(X_{n}) 的最大值。為了計算 g(f) 的最大值和最小值,則需要通過導數來研究。可以簡單的看出來:當 p,qin(0,1) 時, g(0) = 0lim_{f
ightarrow 1^{-}} g(f) = -infty 。計算導數可以得到:

Dg(f) = frac{p}{1+f} - frac{q}{1-f} = frac{p-q-f}{1-f^{2}},

D^{2}g(f) = frac{-(1-f)^{2}-4fq}{(1-f^{2})^{2}}<0.

所以,導數 Dg(f) 是一個嚴格遞減函數,當 f<P> 時, <img src= ;當 f>p-q 時, Dg(f)<0 。因此,函數 g(f) 會在 f^{*} = p-q 的時候達到最大值。所以,每次最佳的投注比例應該是 f^{*} =p-q

從這個結果上來看,如果 p<q,那麼意思就是最好不要做投注,因為輸的概率比較大。如果 p>q,那麼意思就是投注的比例是 f^{*}=p-q。在這種情況下,可以得到 g(f^{*}) = pln p + qln q + ln 2. 從以上信息分析,也可以得到存在一個點 f_{c} 使得 g(f_{c}) = 0.

一般形式(一)

在一般情況下,在現實生活中都會有賠率的概念。也就是說:贏錢的時候需要考慮賠率,押 1b,也就是所謂的贏錢率,資產從 1 增加到 1+b 。舉個簡單的例子來描述那就是:當硬幣有偏差,同時有賠率(贏錢率)的時候該怎麼辦?

在這種情況下,之前的 g(f) 可以寫成如下的形式:

g(f)=pln(1+bf)+qln(1-f).

這裡的 p, q 分別表示贏錢和輸錢的概率,並且 p+q=1f 表示每次應該押上的當前總資產的比例,並且 0leq fleq 1 。通過計算可以直接得到:

Dg(f) = frac{pb-q-bf}{(1+bf)(1-f)}.

並且 g(0) = 0lim_{f
ightarrow 1^{-}}g(f) = -infty 。從導數上可以看出,當 f>(pb-q)/b 時,  g(f) 是增函數;當 f<(pb-q)/b 時, g(f) 是遞減函數。因此,當f = (pb -q)/b時, g(f) 達到最大值,也就是

g(f) = pln p + qln q + ln(1+b) - qln b.

在這種情況下,直接帶入一些簡單的數字可以得到:

  1. p = q = 0.5,  b = 1 時, f^{*} = (pb-q)/b = 0;
  2. p = 2/3, q= 1/3,b = 1 時, f^{*} = (pb-q)/b = 1/3;
  3. p = q = 0.5,b = 2 時, f^{*} = (pb-q)/b = 1/4;
  4. p = q = 0.5,b = 1/2 時, f^{*} = (pb-q)/b = - 1/2; 此時不該下注。

從公式 f^{*} = p - frac{q}{b} 可以看出:

  1. p 增加的時候, q 會減少, f^{*} 也會增加,意思就是隨著贏錢的機會加大,就該增加投注的比例;反之,當 p 減少的時候, f^{*} 也會隨之減少,也就是說當贏錢的機會變小的時候,就該減少投注的比例。
  2.  b 增加的時候, f^{*} 會增加,意思就是說當贏錢率增加的時候,應該加大投注的比例;反之,當贏錢率減少的時候,應該減少投注的比例。
  3.  f^{*}leq 0 時,就表示這個遊戲不值得投注,因為總資產的期望是負數。

一般形式(二)

除了贏錢率之外,在一般情況下,還有一個損失率的概念。也就是說,當投擲的硬幣有偏差,並且同時有贏錢率和損失率的時候該怎麼辦?

假設

  1. 賭贏的概率是  p
  2. 賭輸的概率是 q
  3. 贏錢率是 b,下注的資產會按比例增加,從 1 變成 1+b;
  4. 損失率是 c,下注的資產會按比例減少,從 1 變成 1-c.

一般情況下,  0leq cleq 1 。在這種情況下,函數 g(f) 的形式又會發生微小的變化,

g(f) = pln(1+bf) + qln(1-cf).

直接計算可以得到: Dg(f) = frac{pb-cq-cbf}{(1+bf)(1-cf)} 。因此,臨界點是 f^{*} = frac{p}{c} - frac{q}{b}. 從公式上看,

  1. p 增加的時候, q 會減少, f^{*} 也會增加,意思就是隨著贏錢的機會加大,就該增加投注的比例;反之,當 p 減少的時候, f^{*} 也會隨之減少,也就是說當贏錢的機會變小的時候,就該減少投注的比例。
  2. b 增加的時候,f^{*} 會增加,意思就是說當贏錢率增加的時候,應該加大投注的比例;反之,當贏錢率減少的時候,應該減少投注的比例。
  3.  c 增加時, f^{*} 會減少,意思是說當損失率增加的時候,應該減少投注的比例;反之,當輸錢率減少的時候,應該增加投注的比例。
  4. f^{*}leq 0 時,就表示這個遊戲不值得投注,因為總資產的期望是負數。

結論

本文從簡單的概率論常識出發,介紹了 Kelly 公式的初步概念。對此有興趣的讀者,建議讀其它更有深度的文章。

推薦閱讀:

相關文章