σμ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 SciPy›Module 3 · Matrices, signaux et structure›Sujet 3.8·~45 minIntermédiaire

Regrouper des actifs par corrélation

Position dans le parcoursModule 3 sur 3 · Sujet 8 sur 10
3.8 Regrouper des actifs par corrélation
—Score du lab— / 100XP total—Série—

Laisser les corrélations dessiner les groupes

Le regroupement hiérarchique part d'une distance entre chaque paire d'actifs. Une corrélation n'est pas une distance, mais dᵢⱼ=√(1/2(1-ρᵢⱼ)) en est une : elle vaut 0 pour ρ=1, environ 0,71 pour ρ=0 et 1 pour ρ=-1, et elle respecte l'inégalité triangulaire. squareform(d, checks=False) transforme la matrice carrée en la liste condensée des n(n-1)/2 distances qu'attend scipy.cluster.hierarchy.linkage(y, method='average'). Le résultat Z est un arbre écrit en n-1 lignes [gauche, droite, hauteur, taille] : à chaque étape, les deux groupes les plus proches sont fusionnés, et la distance entre deux groupes est la moyenne des distances entre leurs membres.

Deux fonctions lisent l'arbre. hierarchy.leaves_list(Z) donne l'ordre des feuilles où les actifs semblables sont voisins, ce qui réordonne une matrice de corrélation en blocs visibles. hierarchy.fcluster(Z, k, criterion='maxclust') coupe l'arbre en au plus k groupes et renvoie une étiquette par actif. Sur douze actions et ETF sur 1 500 jours, sans aucune information sectorielle, cinq groupes apparaissent : technologie (AAPL, MSFT, NVDA), banques (JPM, BAC, GS), énergie (XOM, CVX), santé (JNJ, PFE) et obligations (TLT, IEF). hierarchy.cophenet(Z, y) mesure la fidélité de l'arbre : il corrèle les distances d'origine avec celles que l'arbre implique, et donne ici 0,96. Une valeur proche de 1 signifie que l'arbre résume bien ; une valeur faible, que la structure n'est pas vraiment hiérarchique.

  • Une corrélation n'est pas une distance : utilisez √(1/2(1-ρ)), puis squareform(..., checks=False).
  • leaves_list ordonne, fcluster coupe : l'un donne des voisins, l'autre des groupes.
  • La corrélation cophénétique proche de 1 signifie que l'arbre garde les distances ; vérifiez-la avant de faire confiance aux groupes.

Lab : ce qui est noté

  • Distance de corrélation15 pts
  • L'arbre à liaison moyenne15 pts
  • L'ordre des feuilles15 pts
  • Couper l'arbre20 pts
  • La corrélation cophénétique15 pts
  • L'étude de douze actifs20 pts
Explorateur · lab-sp-22
▾ lab-sp-22
▾ data
…
bash · dans le navigateur
learner@quantcraft:~/lab-sp-22$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-sp-22 revient aux fichiers de départ et le terminal est vidé. Votre solution actuelle sera perdue : cette action est irréversible.

Sera réinitialisé
  • main.py → code de départ
  • Historique du terminal et sortie des tests
  • Modifications non soumises
Sera conservé
  • Meilleur score du lab
  • Votre XP et votre série
  • Progression du cours et notes

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