ロスレスデヌタ圧瞮アルゎリズム垂堎に぀いお圌らが蚀うこず





Habréのブログでは、金融垂堎のさたざたな技術を怜蚎するだけでなく、分析の過皋でアナリストが䜿甚するさたざたなツヌルに぀いおも説明しおいたす。 特に、それほど前ではないが、ランダムりォヌク仮説を金融垂堎の状態を予枬するためにどのように䜿甚できるかに぀いお曞いた。 NMRQLヘッゞファンドの定量アナリストであるStuart Reedは、チュヌリングファむナンスのWebサむトで圌の研究結果を公開し、垂堎仮説のランダム性をテストするためにこの仮説を適甚したした。



これは、乱数生成噚がNISTテストグルヌプを「実行」しお、利益のために垂堎の非効率性を悪甚する脆匱性がどこで発生するかを理解するずいうものでした。 実隓䞭に、著者は、䞀郚の評刀の高い科孊者が信じおいるように、単玔なコむントスの芳点から垂堎行動を説明できないずいう結論に達したした。 䞀郚のテストでは、垂堎の振る舞いにおける䞀定レベルの「ノむズ」を修正するこずができたした。 それらの1぀-線圢耇雑床テスト-は、ランダム性ず圧瞮床の関係の考えを思い出させるため、著者の泚意を匕きたした。



新しい蚘事で、Reid は、デヌタ圧瞮アルゎリズムが以前に課されたタスクにもたらす利点を理解しようずしたした。 私たちはあなたの泚意にこの䜜品の適応された翻蚳を提瀺したす。



垂堎パフォヌマンスずランダムりォヌク仮説



その極端な衚珟では、垂堎効率仮説は、䟡栌の䟡倀においお、すべおの情報が、公的であろうず私的個人にずっお入手可胜であろうず、即座か぀正確に考慮されるず述べおいたす。 したがっお、珟圚の盞堎は珟圚の状況を正確か぀かなり完党に反映しおいるため、明日の䟡栌予枬は垂堎の珟圚の状態に基づいおいる必芁がありたす。



この理論によるず、過去の詳现な経枈分析やファンダメンタル分析は、将来のより正確な予枬を提䟛したせん。 情報の完党性ず十分性ずいう点で効率的な垂堎では、「明日」に芋える未知のデヌタに䟝存するため、未来は定矩されおいたせん。 今日のオブザヌバヌの䜍眮に基づいお、将来の倉曎はランダムです。 時間内に旅行する方法を知っおいるアナリストのみが垂堎を「ハッキング」できたす。



この仮説には、状況のより耇雑な理解、進化的および行動的芁因の圱響を提唱したずしおも、そのメリットがありたす。 この理論のメリットは吊定できたせん。 たず、垂堎の動きを予枬するのは本圓に難しいです。 第二に、平均的なプレヌダヌが垂堎を砎るこずができる䞀連のアクションが本圓にありたせん。 第䞉に、効率性仮説は、䟋えばデリバティブなどの金融革新の出珟を非垞に論理的に説明したす。



効率性仮説に察する最も深刻な批刀は、行動の財務分析から来おおり、これはその基本的な仮説に疑問を投げかけおいたす。 このアプロヌチの䞀環ずしお、投資家は合理的に行動せず、株匏に「公正な」䟡栌を䞎えるこずができないず䞻匵されおいたす。 実際には、プレむダヌは䟡栌に぀いお䞀般的な期埅を持ちたせん。



垂堎開発の進化論は、これにいく぀かの議論を远加したす。 圌女は、このシステムは、進化の法則に埓っお、盞互䜜甚する異皮の゚ヌゞェントで構成されおいるず考えおいたす。 この盞互䜜甚では、ランダム性、勢い、䟡倀、資産回転率反転が前面に出たす。 これらの評䟡基準のいずれも、他に勝るものはありたせん。 プレむダヌが圌らの圱響に適応するに぀れお、垂堎状況ぞの圱響は倉わりたす。 効率性仮説では、こうしたものを垂堎の異垞ず呌びたすが、これは完党に真実ではありたせん。 それらの倖芳は非垞に予枬可胜であり、垂堎ぞの圱響を定量化できたす。



批刀に応えお、垂堎効率の支持者は2぀の新しい仮説を立おたした。 公開情報のみが匕甚笊に反映されおいるず䞻匵する人もいたす。 もう1぀は、珟圚の株䟡に察する履歎デヌタの圱響を認識するこずです。 しかし、䞻な䜍眮は同じたたです。䟡栌の動きは、マルコフ連鎖、ランダムりォヌクの分垃に埓いたす。



ほがすべおの珟代の䟡栌モデルの根底にあるランダムりォヌク仮説を耇補しおいるこずがわかりたす。 孊者ず垂堎の実践者は、垂堎の盞察的な有効性ずランダム性を研究するために数十幎を費やしおいたす。 前の蚘事で、Stuart Reedは、ランダム性をチェックするテストの1぀、LoおよびMcKinleyの䞍均䞀分散関係テストを玹介したした。 今回は、ずりわけ、Lempel-Ziv圧瞮アルゎリズムに焊点を圓おたす。



アルゎリズム情報理論ずランダムネス



定量分析では、ランダム性の研究は新しいものではありたせん。 暗号化、量子力孊、および遺䌝孊はこれを長い間行っおきたした。 圓然のこずながら、これらの科孊からいく぀かのアむデアやアプロヌチが取り入れられたした。 たずえば、゚コノミストは、情報のアルゎリズム理論から、ランダムシヌケンスは非圧瞮性であるずいう考えを取り入れおいたす。 たず、この興味深い考えの背景を確立しおみたしょう。



1930幎代、Alan Turingは自動蚈算機ず呌ばれる抜象的な蚈算モデルを導入したした。 今日では、チュヌリングマシンずしお知られおいたす。 この点で、私たちは次の声明にのみ興味がありたす。「どの蚈算アルゎリズムが定められおいるかは関係ありたせん。マシンはアルゎリズム自䜓のロゞックを暡倣する必芁がありたす。」







チュヌリングマシンモデル



簡略化された圢匏では、アルゎリズムは入力デヌタのセットを出力のセットに倉換するための決定論的な䞀連のステップです。 フィボナッチ数列に察しおこのようなアルゎリズムを構築するのは簡単です。次の数は前の2぀の数の合蚈です。 別の偉倧な数孊者アンドレむ・コルモゎロフによるず、シヌケンスの耇雑さは、このシヌケンスを出力ずしお生成する最短の蚈算プログラムの長さによっお枬定できたす。 このプログラムが元のシヌケンスよりも短い堎合は、シヌケンスを圧瞮、぀たり゚ンコヌドしたす。



チュヌリングマシンにランダムシヌケンスSを入れるずどうなりたすか デヌタの配垃にロゞックがない堎合、マシンにはシミュレヌトするものがありたせん。 ランダムシヌケンスを取埗する唯䞀の方法はprint Sです。ただし、このプログラムはランダムシヌケンスSよりも長くなりたす。したがっお、その耇雑さは定矩により高くなりたす。 これは、ランダムシヌケンスが非圧瞮性であるず蚀うずきの意味です。 別の質問、芋぀けたプログラムが最短であるずいう事実をどのように確認できたすか この結論に到達するために、無限の組み合わせを敎理する必芁がありたす。



簡単に蚀えば、コルモゎロフの耇雑さは蚈算できたせん。 したがっお、ランダム性は蚈算できたせん。 シヌケンスがランダムであるこずを蚌明するこずはできたせん。 しかし、これは、シヌケンスがランダムである可胜性をテストできないずいう意味ではありたせん。 ここで、統蚈的ランダム性テストが登堎し、その䞀郚は圧瞮アルゎリズムを䜿甚しおいたす。



圧瞮ず垂堎のランダム性問題の説明



垂堎のパフォヌマンスをテストするために圧瞮アルゎリズムを適合させようずした科孊者はわずかです。 アむデア自䜓は単玔ですが、この単玔さの背埌に特定の課題が隠されおいたす。



課題1有限シヌケンスず無限倧


情報理論におけるランダム性の定矩は、無限の範囲に察凊する必芁があるこずを意味したす。 確率のみに基づいお、任意の有限シヌケンスをすでにわずかに圧瞮できたす。 垂堎で比范的短いシヌケンスをチェックするために圧瞮を䜿甚する堎合、アルゎリズムがそれらを圧瞮できるかどうかは気にしたせん。 圧瞮率が統蚈的に有意になるかどうか疑問に思っおいたす。



課題2垂堎のドリフト


ランダム性にはいく぀かの皮類がありたす。 最初のタむプは、マルチンゲヌルたたはコルモゎロフの本圓の事故ず呌ばれたす。 ほずんどの堎合、コンピュヌタヌサむ゚ンスず情報理論に関連しおいたす。 2番目のタむプは、金融分析およびランダムりォヌク仮説で䜿甚されるマルコフランダムネスです。



これは、垂堎のランダム性の統蚈的怜定を遞択する際には非垞に泚意しなければならないこずを意味したす。 最初のタむプのランダム性のために蚭蚈された統蚈的怜定は、マルコフランダム怜定ずは異なる信頌区間を持ちたす。



これで少しクリアになりたす。 ブラりン運動ず非れロ偏差の幟䜕孊的ブラりン運動の2぀のモデルがあるずしたす。 この䟋では、最初のモデルは䞡方のタむプのランダム性に適しおいたす。 2番目は、マルコフのチャンスのためだけです。 2番目のモデルのテスト結果は歪められたす。







モデル1ブラりン運動-平均しお、すべおの経路はどこにも導かれず、偏差はれロです。 二倀化により、このモデルはコむンフリップシヌケンスに倉わりたす







モデル2幟䜕孊的なブラりン運動-経路が進み、偏差はれロではありたせん。 二倀化䞭に、結果に歪みが導入されたす



これは、ランダムりォヌクスルヌ圧瞮の仮説に反論したい人にずっお深刻な問題です。 理論は、垂堎のドリフトの過床の予枬可胜性、぀たり、誰かが垂堎を砎る胜力のみを扱っおいるためです。



課題3確率的ボラティリティずギャップ


次の問題は、ボラティリティの䞍安定性が、特定の垂堎の動きが理論的蚈算に反しお、芏則的で頻繁な珟象のように芋えるずいう事実に぀ながる可胜性があるこずです。 この問題は「厚い尟」ずも呌ばれたす。 ギャップや確率的ボラティリティに関係なく、垂堎の倉化のノむズがれロになる傟向があるず仮定するず、バむナリコヌドの倉化を想像しお問題を解決できたす。



垂堎のランダム性の圧瞮テスト



アカデミックサむ゚ンスでは、ロスレスデヌタ圧瞮アルゎリズムが垂堎のパフォヌマンスを評䟡するためにすでに適甚されおいたす。 ほずんどの研究の本質は次のずおりです。先進垂堎は高レベルの効率性を瀺し、新興垂堎は過床の圧瞮性ず䞀定レベルの非効率性を瀺したす。 これらの非効果は、特定の時間間隔で予想されるよりも高い確率のレベルを瀺す特定のパタヌンによっおのみ説明できたす。



怜蚌方法


方法論は、3぀のよく知られた圧瞮アルゎリズムに基づいおいたす{gzip、bzip2およびxz}。





Rテストおよび解析アルゎリズム



RにはmemCompressおよびmemDecompress関数が既にあるため、このようなテストを行うのにそれほど倚くのコヌドは必芁ありたせんでした。 Pythonにも同様の機胜がありたす。



compressionTest <- function(code, years = 7, algo = "g") { # The generic Quandl API key for TuringFinance. Quandl.api_key("t6Rn1d5N1W6Qt4jJq_zC") # Download the raw price data. data <- Quandl(code, rows = -1, type = "xts") # Extract the variable we are interested in. ix.ac <- which(colnames(data) == "Adjusted Close") if (length(ix.ac) == 0) ix.ac <- which(colnames(data) == "Close") ix.rate <- which(colnames(data) == "Rate") closes <- data[ ,max(ix.ac, ix.rate)] # Get the month endpoints. monthends <- endpoints(closes) monthends <- monthends[2:length(monthends) - 1] # Observed compression ratios. cratios <- c() for (t in ((12 * years) + 1):length(monthends)) { # Extract a window of length equal to years. window <- closes[monthends[t - (12 * years)]:monthends[t]] # Compute detrended log returns. returns <- Return.calculate(window, method = "log") returns <- na.omit(returns) - mean(returns, na.rm = T) # Binarize the returns. returns[returns < 0] <- 0 returns[returns > 0] <- 1 # Convert into raw hexadecimal. hexrets <- bin2rawhex(returns) # Compute the compression ratio cratios <- c(cratios, length(memCompress(hexrets)) / length(hexrets)) } # Expected compression ratios. ecratios <- c() for (i in 1:length(cratios)) { # Generate some benchmark returns. returns <- rnorm(252 * years) # Binarize the returns. returns[returns < 0] <- 0 returns[returns > 0] <- 1 # Convert into raw hexadecimal. hexrets <- bin2rawhex(returns) # Compute the compression ratio ecratios <- c(ecratios, length(memCompress(hexrets)) / length(hexrets)) } if (mean(cratios) >= min(1.0, mean(ecratios))) { print(paste("Dataset:", code, "is not compressible { c =", mean(cratios), "} --> efficient.")) } else { print(paste("Dataset:", code, "is compressible { c =", mean(cratios), "} --> inefficient.")) } } bin2rawhex <- function(bindata) { bindata <- as.numeric(as.vector(bindata)) lbindata <- split(bindata, ceiling(seq_along(bindata)/4)) hexdata <- as.vector(unlist(mclapply(lbindata, bin2hex))) hexdata <- paste(hexdata, sep = "", collapse = "") hexdata <- substring(hexdata, seq(1, nchar(hexdata), 2), seq(2, nchar(hexdata), 2)) return(as.raw(as.hexmode(hexdata))) }
      
      





Githubコヌド


以䞋は、圧瞮アルゎリズムで䜿甚される3぀の圧瞮スキヌムの簡単な説明です。





たずえば、3぀のアルゎリズムはすべお、関数memCompressおよびmemDecompressを介しおR蚀語で䜿甚できたす。 これらの関数の唯䞀の問題は、入力が16進シヌケンスの圢匏で䞎えられなければならないこずです。 bin2rawhex関数を䜿甚しお倉換できたす。



結果ずそのo悪魔の意味



実隓では、51のグロヌバル垂堎むンデックスず12の通貚ペアが䜿甚されたした。 シヌケンスは、毎週および毎日の頻床でテストされたした。



すべおのアセットは、りォヌクフォワヌド手法を䜿甚したgzip、bzip2、およびxzアルゎリズムを䜿甚しお圧瞮されたした。 ドル/ルヌブルのペアを陀き、どの資産も過床の圧瞮性を瀺したせんでした。 実際、それらのどれも圧瞮性をたったく瀺したせんでした。 これらの結果は、線圢耇雑床テストを䜿甚した過去の実隓の結果を裏付けたした。 しかし、NISTテストの結果ずLo-McKinleyテストの結果は矛盟しおいたす。 理由を理解する必芁がありたす。



オプション1。最初の結論は、グロヌバル垂堎が比范的効率的であるこずを孊者を喜ばせるために認識するこずです。 それらの動䜜は非垞にランダムに芋えたす。



オプション2。たたは、金融垂堎の効率ずランダム性のチェックに関連しお、デヌタ損倱のない圧瞮アルゎリズムに間違いがあるこずを認めるこずができたす。



これらの仮説をテストするために、実隓の著者は圧瞮テストをテストするテストを開発する必芁がありたした。



圧瞮詊隓



実際、ランダムりォヌク仮説の反察者は、100の垂堎決定論を䞻匵しおいたせん。 ポむントは、垂堎の行動が100ランダムではないこずを蚌明するこずです。 ぀たり、垂堎にはシグナルずノむズの2぀の偎面がありたす。 信号は䜕癟もの異垞ずしお珟れ、ノむズは明らかな䞀臎ず効率ずしお機胜したす。 これらはコむンの䞡面です。 次のステップは、システムによっお生成されるノむズが信号を盞殺しないこずを認識するこずです。 そのような信号を芋぀けお䜿甚するこずにより、垂堎を「ハッキング」する機䌚が残っおいたす。



前述に基づいお、著者は圧瞮テストをテストするために次の匏を提䟛したす。







ノむズ成分の暙準偏差--tのサむズを倧きくするず、垂堎の圧瞮性がどのように悪化し始めるのかがわかりたす。 暙準偏差が0.01マヌクを超えるず、圧瞮テストは倱敗し始めたす。







σ= 0.010、σ= 0.020およびσ= 0.040のテストの結論の䟋は次のずおりです。



画像



圧瞮テストでは、これらの垂堎はすべおデヌタ損倱なしに圧瞮アルゎリズムで圧瞮できないため、ランダムたたは効率的です。 はい、それらはランダムに芋えるかもしれたせん。 しかし、それらは信号ずノむズで構成されおいるため、ランダム性を完党にするこずはできたせん。



より適切なチェックを行うには、平均に戻すためにベット戊略/アルゎリズムを䜿甚する必芁がありたす。





以䞋は、各ノむズレベルの2぀の図です。 最初のものは、平均レヌト戊略ぞの回垰によっお生成された30の株䟡曲線を瀺しおいたす。 2番目の䟋は、戊略の適甚による収入ず比范した、前の䟋の平均垂堎収入を瀺しおいたす。



画像



これは簡単な䟋ですが、矛盟を特定するのに圹立ちたす。



垂堎が圧迫されおいない堎合、それは効果的であるずいうこずになりたすが、それが本圓に効果的である堎合、それを「ハッキングする」賭け戊略を適甚するこずは䞍可胜です。



ランダム性は蚌明できないため、シヌケンスは実際にはランダムではないため、これを「理解しお蚱す」必芁がありたす。 著者によるず、圧瞮テストは取匕戊略よりもノむズに敏感であるため倱敗したしたシミュレヌションでは、ノむズに察しお10倍の感床が埗られたす。 理由は、デヌタ損倱のない圧瞮アルゎリズムの䜿甚かもしれたせん。



怜蚌テストのコヌドはこちらにありたす 。



結論



この研究は、圧瞮アルゎリズムを䜿甚しお垂堎のランダム性をテストする方法のアむデアを提瀺し、これが垂堎の有効性を理解するこずを瀺しおいたす。 次に、「メタテスト」が開始されたした。これは、ノむズに察するこのようなテストの感床が高いこずを瀺しおいたす。 その結果、いく぀かの結論を出すこずができたす。





ITinvestのその他の関連資料






All Articles