σμ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 AcademyRoadmapsRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
RoadmapsRoteiros
AO
+1,2 mil alunos
Entrar
  • 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 AcademyRoadmapsRoteiros
Ctrl K
AO
+1,2 mil alunos
EntrarParticipar ↗
RoadmapsRoteiros
AO
+1,2 mil alunos
Entrar
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Roteiro de SciPy›Módulo 1 · Ajustar e encontrar›Tópico 1.2·~45 minIntermediário

Ajustar distribuições de retorno e testar o ajuste

Posição no roteiroMódulo 1 de 3 · Tópico 2 de 8
1.2 Ajustar distribuições de retorno e testar o ajuste
—Nota do lab— / 100XP total—Sequência—

Um modelo para o retorno diário

Todo número de risco começa com um modelo do retorno diário. O modelo mais simples é uma curva normal com a média e o desvio padrão da amostra. O modelo t de Student acrescenta um número, os graus de liberdade ν: um ν pequeno significa caudas gordas, e quando ν é grande a curva t vira a normal. O scipy.stats dá a cada distribuição os mesmos quatro métodos: fit acha os parâmetros por máxima verossimilhança, logpdf dá o logaritmo da densidade, cdf a probabilidade de cair abaixo de um valor e ppf o seu inverso, o quantil. Aprenda os quatro uma vez e todas as distribuições do SciPy funcionam igual: trocar de modelo é trocar uma palavra.

Para escolher entre modelos é preciso uma nota e um teste. A log-verossimilhança log L=Σᵢlog f(rᵢ) soma o quão provável é a amostra inteira sob o modelo, e o critério de Akaike AIC=2k-2log L, com k o número de parâmetros ajustados, cobra um preço por cada parâmetro extra: quanto menor, melhor. O teste de Kolmogorov–Smirnov mede a maior distância entre a curva acumulada da amostra e a do modelo. stats.kstest(r, dist.cdf, args=params) o devolve com um valor p, e um valor p minúsculo diz que a amostra não parece um sorteio desse modelo. Como os parâmetros foram ajustados na mesma amostra, o valor p é favorável: use-o para comparar modelos, não como veredito final. Por fim o modelo vira um número de risco: o VaR de um dia é menos o quantil, -dist.ppf(alpha, *params), e o número esperado de dias ruins é o tamanho da amostra vezes dist.cdf(-level, *params).

O que dizem os dados reaisO SPY tem 2.500 retornos diários de setembro de 2016 a agosto de 2026. O ajuste t de Student dá ν≈2,6, uma cauda muito gorda, e um AIC 867 pontos menor que o da normal. O teste KS rejeita a normal (valor p de cerca de 10⁻²⁵) mas não a t (0,19). O VaR a 1% é 2,57% com a normal e 3,12% com a t. Seis dias caíram mais de 5%: uma normal espera 0,01 em dez anos, o modelo t 7,9. Acima de 3%, a contagem é 32 contra 8,6 da normal e 27 da t.
  • Os mesmos quatro métodos em todo lugar: fit, logpdf, cdf e ppf valem para toda distribuição de scipy.stats, então os modelos são intercambiáveis.
  • Nota e depois teste: o AIC compara modelos com um preço por parâmetro, o teste KS pergunta se a amostra pode vir de um modelo.
  • A contagem das caudas expõe o modelo: conte os dias abaixo de -5% e compare com n * cdf; uma normal erra por um fator de centenas.

Lab: o que é avaliado

  • Retornos diários de uma coluna10 pts
  • Dois modelos ajustados15 pts
  • Uma log-verossimilhança10 pts
  • Comparar modelos com o AIC10 pts
  • Um valor p de Kolmogorov–Smirnov15 pts
  • Um VaR a partir de um quantil10 pts
  • Dias extremos observados e esperados10 pts
  • O estudo completo20 pts
Explorador · lab-sp-12
▾ lab-sp-12
▾ data
…
bash · no navegador
learner@quantcraft:~/lab-sp-12$
Python ainda não carregadoPythonLn 1, Col 1Spaces: 4UTF-8

Redefinir este tópico?

Tudo em lab-sp-12 volta aos arquivos iniciais e o terminal é limpo. Sua solução atual será perdida — isso não pode ser desfeito.

Será redefinido
  • main.py → código inicial
  • Histórico do terminal e saída dos testes
  • Alterações não enviadas
Será mantido
  • Melhor nota do lab
  • Seu XP e sua sequência
  • Progresso da aula e anotações

Entre para executar o seu código.

Todas as aulas são gratuitas para ler. Crie uma conta ou entre para executar código, rodar os testes e enviar este lab.

  • IDE no navegador com terminal bash — nada para instalar
  • Correção instantânea, XP e o seu lugar no roteiro
Criar uma contaEntrar
OU
Continuar com o GitHub