標準方法廣義赫斯特指數的解釋
如果這個問題含糊不清,我深表歉意,我已經在腦海中反复思考過如何表達它,但我不確定每次都會變得更清楚。
我一直在看這篇網站文章https://www.quantstart.com/articles/Basics-of-Statistical-Mean-Reversion-Testing並且一直在研究 Python 中 Hurst 指數的程式碼。文章給出了一段Python的程式碼片段如下(用來計算Hurst):
def hurst(ts): """Returns the Hurst Exponent of the time series vector ts""" # Create the range of lag values lags = range(2, 100) # Calculate the array of the variances of the lagged differences tau = [sqrt(std(subtract(ts[lag:], ts[:-lag]))) for lag in lags] # Use a linear fit to estimate the Hurst Exponent poly = polyfit(log(lags), log(tau), 1) # Return the Hurst exponent from the polyfit output return poly[0]*2.0
效果很好,但是由於我煩人的個性,在使用它之前我需要了解一些東西,我已經讓自己發瘋了一天半,試圖了解這段程式碼是如何開發/派生的(尤其是 sqrt(標準)部分)。文章本身確實有一些簡短的步驟,但我無法遵循它們。可能是我不太明白<| ….. |> 符號表示以及它與標準偏差的關係。附在這裡:
任何人都可以提供文章、網站或論文的連結,以顯示該計算可以從哪些原則得出?從 Racine 的論文中我知道 Hurst 的原始方法是 RS 方法,但我相信程式碼中使用的方法來自廣義的 Hurst 指數或標準方法。
我的數學不是 pHd 水平,但我確實有工程學位,所以它也不是完全沒用的。我有一個巨大的問題理解是為什麼程式碼使用標準偏差的平方根,所以如果有人能對此有所了解,將不勝感激。
感謝您的時間,如果這不是完全清楚,再次道歉。
我不知道這種情況下的符號,但我仍在努力理解它。(也許有人可以進行編輯?)這就是我所得到的:
有二次變分的概念可以在這裡應用。您也可以將其視為標量積(相同)。你可以看到這裡的符號相當草率,因為 $ \text{log}(t) $ 表示當時的對數價格過程 $ t $ . 對於離散的時間點,您可以將其解釋為當時的對數價格向量 $ t_i $ 並將括號視為標量積(現在表示 $ \log(t+\tau) $ 和 $ \log(t) $ 作為向量):
$$ \langle (\text{log}(t+\tau)-\text{log}(t))^2\rangle \approx \langle \text{log}(t+\tau)-\text{log}(t),\text{log}(t+\tau)-\text{log}(t)\rangle $$ 現在,我嘗試切換到更精確的符號。
讓 $ t_i, i = 1,\ldots,T $ 是離散的時間戳和 $ P_i $ 價格在 $ t_i $ . 那麼上述術語的含義如下:
$$ \left(\sum_{i=1}^{T-\tau} (\log(P_{i+\tau})-\log(P_i))^2\right)^{1/2}. $$ 現在確定赫斯特指數 $ H $ ,我們說這大約是 $ \tau^{2H} $ :
$$ \left(\sum_{i=1}^{T-\tau} (\log(P_{i+\tau})-\log(P_i))^2\right)^{1/2} \approx \tau^{2H} $$ 兩邊取對數得出:
$$ \log(\ldots) \approx 2H \log(\tau) $$ 所以算法的作用是,取 99 個值 $ \tau $ 併計算滯後差異的二次變化。然後將它們回歸到 $ \tau $ 得到一個近似值 $ 2H $ .
現在,如果我們回到程式碼:我不知道 polyfit 函式的作用,但我假設它執行以度為參數的多項式回歸。我沒有得到的是結果乘以 2 的最後一行,但如果你澄清函式輸出(什麼回歸什麼,什麼係數保存在哪裡),你應該能夠驗證這一點。