σμ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 statsmodels›Module 1 · La régression et ses vérifications›Sujet 1.3·~50 minIntermédiaire

Lancer et lire une régression factorielle

Position dans le parcoursModule 1 sur 3 · Sujet 3 sur 10
1.3 Lancer et lire une régression factorielle
—Score du lab— / 100XP total—Série—

D'une formule à une régression complète

statsmodels.formula.api.ols('excess ~ mkt_rf + smb + hml', data=table).fit() ajuste une régression des moindres carrés ordinaires à partir d'une formule d'une ligne : le nom à gauche de ~ est ce qu'on explique, les noms à droite sont les régresseurs, et une constante est ajoutée pour vous (écrivez - 1 pour la retirer). L'objet résultat contient tout : params (les coefficients), bse (leurs erreurs standard), tvalues, pvalues, rsquared, rsquared_adj, aic, resid et summary() pour le rapport imprimé. Comme chacun est une Series pandas ou un nombre, les mettre côte à côte dans un DataFrame donne un tableau net, et res.predict(nouveau_tableau) applique la formule ajustée à de nouvelles lignes ayant les mêmes noms de colonnes. La régression factorielle d'une action en est l'usage standard : excess est le rendement de l'action au-dessus du taux sans risque, mkt_rf celui du marché, smb le facteur taille et hml le facteur valeur.

Deux comparaisons rendent le tableau utile. Le MEDAF n'utilise que le marché, excess ~ mkt_rf ; le modèle à trois facteurs ajoute smb et hml. Ajouter des régresseurs ne peut jamais baisser le R², donc on utilise le R² ajusté, l'AIC ou un test F : ff3.compare_f_test(capm) renvoie la statistique F, sa p-valeur et le nombre de régresseurs en plus, et une petite p-valeur dit que les deux facteurs supplémentaires apportent un vrai pouvoir explicatif. Un second point de routine est le tableau lui-même. Les rendements de fin de mois viennent du dernier cours de chaque mois civil (prices.groupby(prices.index.to_period('M')).last() puis pct_change()), et ils doivent être joints à la table des facteurs sur le même mois : une régression sur des mois mal alignés est une régression sur du bruit.

Ce que disent les vraies donnéesApple compte 319 rendements mensuels entre février 2000 et août 2026. Le MEDAF donne un bêta de marché de 1,31 (t=11,7), un alpha de 1,5% par mois et R²=0,30. Avec la taille et la valeur, R² monte à 0,355, la charge sur la valeur est de -0,72 (t=-4,98 : Apple se comporte comme une action de croissance), la charge sur la taille est faible et non significative, et l'alpha est de 1,7% par mois. Le test F des deux facteurs supplémentaires a une p-valeur de 2,7×10⁻⁶. Le MEDAF prédit qu'un mois où le marché bat le cash de 5 % s'accompagne d'un rendement excédentaire d'Apple de 8,07%.
  • Une ligne, une régression : la formule nomme la réponse et les régresseurs, et l'objet résultat contient chaque statistique.
  • Comparer des modèles emboîtés avec le bon outil : le R² monte toujours, donc utilisez le R² ajusté, l'AIC ou le test F.
  • Alignez d'abord les mois : un rendement de fin de mois va avec les facteurs du même mois.

Lab : ce qui est noté

  • Le tableau de régression mensuel15 pts
  • L'ajustement du MEDAF10 pts
  • L'ajustement à trois facteurs10 pts
  • Un tableau de coefficients net15 pts
  • Le modèle plus grand en vaut-il la peine ?15 pts
  • Une prévision10 pts
  • L'étude complète25 pts
Explorateur · lab-sx-11
▾ lab-sx-11
▾ data
…
bash · dans le navigateur
learner@quantcraft:~/lab-sx-11$
Python pas encore chargéPythonLn 1, Col 1Spaces: 4UTF-8

Réinitialiser ce sujet ?

Tout le contenu de lab-sx-11 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