σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours scikit-learn›Module 1 · La façon de travailler avec les estimateurs›Sujet 1.3·~50 minIntermédiaire

Découpages et fuites en finance

Position dans le parcoursModule 1 sur 4 · Sujet 3 sur 5
1.3 Découpages et fuites en finance
—Score du lab— / 100XP total—Série—

Pourquoi le découpage est tout l'enjeu

Un modèle se juge sur des données qu'il n'a pas vues. En finance il y a trois ensembles : les données d'entraînement pour ajuster, les données de validation pour choisir les réglages et les données de test, utilisées une fois, pour annoncer le résultat. Ils doivent suivre le temps : entraîner sur le passé, valider sur la période suivante, tester sur la dernière. Un découpage aléatoire met des jours de la même tempête dans les deux ensembles : le modèle reconnaît des voisins au lieu d'apprendre une règle. La fuite signifie que des informations de la période de validation ou de test atteignent l'étape d'entraînement. Elle prend quatre formes courantes : un normaliseur ajusté sur tous les jours, une variable qui utilise un prix futur, une colonne proche de la cible connue seulement après coup, et des étiquettes qui se chevauchent dans le temps.

Les étiquettes qui se chevauchent demandent une attention particulière. Si l'étiquette est le rendement des HHH mois suivants, l'étiquette d'une ligne d'entraînement iii et celle d'une ligne de test jjj partagent des mois dès que i+H>ji+H>ji+H>j. Les H−1H-1H−1 dernières lignes d'entraînement avant la période de test connaissent donc une partie du résultat du test. Le remède est la purge, qui retire ces lignes, et l'embargo, qui garde une marge de sécurité, comme le montrent les sujets suivants. Un petit nombre donne l'ordre de grandeur : avec 100010001000 lignes mensuelles, un découpage 60/20/2060/20/2060/20/20 place la période de test à la ligne 800800800, et pour H=3H=3H=3 deux lignes d'entraînement près de chaque frontière se chevauchent.

(i, i+H]∩(j, j+H]≠∅  ⟺  i+H>j(i<j)(i,\,i+H]\cap(j,\,j+H]\neq\varnothing\iff i+H>j\qquad(i<j)(i,i+H]∩(j,j+H]=∅⟺i+H>j(i<j)(1)
Des chiffres et un exemple réelSi les valeurs d'entraînement sont 2,4,6,82,4,6,82,4,6,8, le normaliseur apprend la moyenne 555. Ajusté sur tous les jours, avec une valeur de test 202020, il apprendrait la moyenne 888, un écart de 333 venu du futur. Sur des données réelles, prenons SPY et demandons à une forêt aléatoire de prévoir la volatilité des 202020 jours suivants à partir de la volatilité récente. Un découpage mélangé en 5 plis donne R2=0,60R^{2}=0{,}60R2=0,60. Un découpage walk-forward ordonné dans le temps avec une purge de 202020 jours donne R2=−2,10R^{2}=-2{,}10R2=−2,10. Le score mélangé est plus haut de 2,702{,}702,70 car les jours voisins partagent 191919 de leurs 202020 jours d'étiquette, et parce qu'un test ordonné doit affronter des tempêtes qu'il n'a pas vues.
  • Découper par le temps : entraîner sur le passé, valider sur la période suivante, tester sur la dernière, et ne regarder le test qu'une fois.
  • Quatre fuites : prétraitement ajusté, variables futures, colonnes proches de la cible et étiquettes qui se chevauchent.
  • Un score mélangé est un signal d'alerte : si mélanger les jours augmente beaucoup le score, le modèle reconnaît des voisins.

Lab : ce qui est noté

  • Où commence la période de test10 pts
  • La taille de l'entraînement10 pts
  • Ce que le normaliseur apprend du futur10 pts
  • Étiquettes qui se chevauchent15 pts
  • De combien un mélange flatte10 pts
  • Le bon découpage pour une série temporelle10 pts
  • Un flux sans fuite10 pts
  • Sortes de fuite10 pts
  • Pourquoi le mélange gonfle le score15 pts
0/ 9 traités
Exercices
1Réponse numérique10 ptsSans réponse

Il y a 100010001000 lignes mensuelles dans l'ordre du temps, séparées en 60%60\%60% entraînement, 20%20\%20% validation et 20%20\%20% test. À quel indice de ligne (en comptant à partir de 000) commence la période de test ?

i=i =i=accepté : ± 0.5
2Réponse numérique10 ptsSans réponse

Avec le même découpage de 100010001000 lignes, combien de lignes contient l'ensemble d'entraînement ?

n=n =n=accepté : ± 0.5
3Réponse numérique10 ptsSans réponse

Les valeurs d'entraînement sont 2,4,6,82,4,6,82,4,6,8 (moyenne 555) et la valeur de test est 202020. Un normaliseur ajusté sur les cinq valeurs apprend la moyenne 888. De combien la moyenne diffère-t-elle de la moyenne honnête ?

d=d =d=accepté : ± 0.01
4Réponse numérique15 ptsSans réponse

L'étiquette de la ligne iii est le rendement des H=3H=3H=3 mois suivants. Une ligne d'entraînement iii et la première ligne de test j=600j=600j=600 partagent des mois quand i+H>ji+H>ji+H>j. Combien de lignes d'entraînement i<600i<600i<600 chevauchent l'étiquette de la ligne 600600600 ?

k=k =k=accepté : ± 0.01
5Réponse numérique10 ptsSans réponse

Sur SPY, une forêt aléatoire qui prévoit la volatilité des 202020 jours suivants obtient R2=0,60R^{2}=0{,}60R2=0,60 avec un découpage mélangé et R2=−2,10R^{2}=-2{,}10R2=−2,10 avec un walk-forward purgé. De combien le mélange la flatte-t-il ? Donnez deux décimales.

g=g =g=accepté : ± 0.02
6Choix10 ptsSans réponse

Vous voulez juger honnêtement un modèle de rendements quotidiens. Quel découpage utilisez-vous ?

7Remettre les étapes dans l'ordre10 ptsSans réponse

Mettez dans l'ordre les étapes d'une évaluation sans fuite.

Faites glisser pour réordonner, ou placez le focus sur un élément, Espace pour le soulever, les flèches pour le déplacer et Espace pour le déposer.

  1. 1Regarder le score de test une fois et le publier
  2. 2Ordonner les lignes par le temps et couper entraînement, validation et test
  3. 3Choisir les réglages avec les données de validation
  4. 4Ajuster le prétraitement et le modèle sur les données d'entraînement
8Associer10 ptsSans réponse

Associez chaque sorte de fuite à son exemple.

Choisissez le partenaire de chaque élément de gauche.

Fuite de prétraitement
Variable avec regard en avant
Fuite de cible
Chevauchement d'étiquettes
9Expliquer avec des mots15 ptsSans réponse

En une ou deux phrases, expliquez pourquoi un découpage mélangé donne un meilleur score qu'un découpage ordonné dans le temps quand la cible est un rendement sur les 202020 jours suivants.

Mode mathsSaisie au clavier ou en LaTeXExercice 1 sur 9 · Ctrl ⏎ pour vérifier

Connectez-vous pour exécuter votre code.

Tous les cours sont gratuits à lire. Créez un compte ou connectez-vous pour exécuter du code, lancer les tests et soumettre ce lab.

  • IDE dans le navigateur avec terminal bash — rien à installer
  • Correction instantanée, XP et votre place dans le parcours
Créer un compteSe connecter
OU
Continuer avec GitHub