σμ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 4 · Structure et compréhension›Sujet 4.4·~50 minAvancé

Composantes principales des rendements

Position dans le parcoursModule 4 sur 4 · Sujet 4 sur 7
4.4 Composantes principales des rendements
—Score du lab— / 100XP total—Série—

Un marché, quelques thèmes et une longue traîne

Standardisez chaque colonne de rendements (moyenne 0, écart type 1) et appelez Z le résultat, avec n jours et p actifs. La matrice de corrélation est C=ZᵀZ/n. Une composante principale est un vecteur propre vⱼ de C : la direction de l'espace des actifs selon laquelle les rendements standardisés varient le plus, puis le plus parmi les directions orthogonales à la première, et ainsi de suite. Sa valeur propre λⱼ est la variance le long de cette direction, les valeurs propres somment à p (la variance totale de p colonnes standardisées), et λⱼ/p est le ratio de variance expliquée. Le score Z vⱼ est la série temporelle de cette composante. numpy.linalg.eigh renvoie les valeurs propres par ordre croissant, donc triez-les en décroissant ; le signe d'un vecteur propre est arbitraire, fixez donc une convention (par exemple la plus grande composante positive) avant de comparer à quoi que ce soit.

Ne garder que les k premières composantes reconstruit les données par Ẑ=Z VₖVₖᵀ. L'erreur quadratique moyenne de la reconstruction est la variance écartée divisée par p : 1/pΣ_(j>k)λⱼ. Sur les 2 500 derniers jours de bourse de 61 actions et ETF, la première composante porte 37,4 % de la variance et les quatre suivantes 7,3 %, 6,2 %, 3,3 % et 2,8 %. Le premier score a une corrélation de 0,998 avec le rendement moyen équipondéré : c'est le marché, trouvé sans qu'on le dise. Les composantes suivantes sont des thèmes sectoriels et de style. Pourtant la queue est lourde : 3 composantes donnent la moitié de la variance, mais il en faut 22 pour 80 % et 34 pour 90 %, et l'erreur de reconstruction vaut 0,626 avec une composante, 0,430 avec cinq et 0,213 avec vingt. L'ACP comprime la partie commune du marché ; elle ne fait pas ressembler 61 actifs à trois.

  • Standardisez, puis diagonalisez la matrice de corrélation ; les valeurs propres somment au nombre d'actifs.
  • Les signes sont arbitraires : fixez une convention et comparez les vecteurs par cosinus absolu.
  • La première composante des rendements d'actions est le marché ; la queue de petites composantes compte encore.

Lab : ce qui est noté

  • Standardiser10 pts
  • La diagonalisation20 pts
  • Variance expliquée10 pts
  • Contrôle contre scikit-learn15 pts
  • Combien de composantes10 pts
  • Erreur de reconstruction15 pts
  • L'étude20 pts
Explorateur · lab-sl-23
▾ lab-sl-23
▾ data
…
bash · dans le navigateur
learner@quantcraft:~/lab-sl-23$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-sl-23 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