σμ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 2 · Curvas e integrais›Tópico 2.1·~45 minIntermediário

Interpolação e splines para curvas

Posição no roteiroMódulo 2 de 3 · Tópico 1 de 3
2.1 Interpolação e splines para curvas
—Nota do lab— / 100XP total—Sequência—

Traçar uma linha suave por poucos pontos

Os mercados cotam uma curva de juros em poucos prazos, como 2, 3 e 5 anos, mas você precisa do valor em qualquer prazo, como 2,5 anos. A interpolação preenche as lacunas entre pontos conhecidos. A forma mais simples é a linear: traçar uma reta entre dois vizinhos com np.interp ou interpolate.interp1d. Uma spline cúbica, interpolate.CubicSpline, une os pontos com pedaços de curva cúbica de modo que a inclinação e a curvatura também coincidam em cada ponto, e o resultado parece suave. Uma spline pode ultrapassar entre os pontos. PchipInterpolator evita isso ao nunca passar acima ou abaixo dos vizinhos. Dentro da faixa conhecida qualquer um serve, mas fora dela você extrapola, o que é um palpite, e um polinômio cúbico pode disparar.

A grandeza que se interpola importa. Interpolar linearmente os rendimentos é fácil, mas em finanças muitas vezes se interpola o logaritmo do fator de desconto. Com capitalização contínua, o fator de desconto é D(t)=e−y(t) tD(t)=e^{-y(t)\,t}D(t)=e−y(t)t, logo ln⁡D(t)=−y(t) t\ln D(t)=-y(t)\,tlnD(t)=−y(t)t. Interpolá-lo linearmente mantém as taxas a termo constantes entre os nós. A taxa a termo entre os instantes t1t_1t1​ e t2t_2t2​ é a taxa que se pode travar hoje para esse período futuro: f=y(t2)t2−y(t1)t1t2−t1f=\dfrac{y(t_2)t_2-y(t_1)t_1}{t_2-t_1}f=t2​−t1​y(t2​)t2​−y(t1​)t1​​. Uma curva a termo suave e sensata é o verdadeiro teste de uma interpolação.

D(t)=e−y(t) t,ln⁡D(t) linear between knots,f(t1,t2)=y(t2)t2−y(t1)t1t2−t1D(t)=e^{-y(t)\,t},\qquad \ln D(t)\ \text{linear between knots},\qquad f(t_1,t_2)=\frac{y(t_2)t_2-y(t_1)t_1}{t_2-t_1}D(t)=e−y(t)t,lnD(t) linear between knots,f(t1​,t2​)=t2​−t1​y(t2​)t2​−y(t1​)t1​​(1)
O rendimento a 2,5 anosO rendimento é 4,0%4{,}0\%4,0% em 222 anos e 4,5%4{,}5\%4,5% em 333 anos. A interpolação linear dá 4,25%4{,}25\%4,25% em 2,52{,}52,5 anos. Interpolar ln⁡D=−yt\ln D=-ytlnD=−yt, que vale −0,080-0{,}080−0,080 em 222 anos e −0,135-0{,}135−0,135 em 333 anos, dá −0,1075-0{,}1075−0,1075 em 2,52{,}52,5 anos, então o rendimento é 0,1075/2,5=4,30%0{,}1075/2{,}5=4{,}30\%0,1075/2,5=4,30%. A taxa a termo entre 222 e 333 anos é (0,135−0,080)/1=5,5%(0{,}135-0{,}080)/1=5{,}5\%(0,135−0,080)/1=5,5%. Uma spline cúbica natural por (0;0)(0;0)(0;0), (1;1)(1;1)(1;1) e (2;0)(2;0)(2;0) é S(x)=−0,5x3+1,5xS(x)=-0{,}5x^{3}+1{,}5xS(x)=−0,5x3+1,5x em [0;1][0;1][0;1], então S(0,5)=0,6875S(0{,}5)=0{,}6875S(0,5)=0,6875, enquanto uma reta dá 0,50{,}50,5. Em dados reais, a curva do Tesouro de 9 de outubro de 2026 tem 5,24%5{,}24\%5,24% em 101010 anos e 5,65%5{,}65\%5,65% em 202020 anos. Em 151515 anos, a interpolação linear dá 5,445%5{,}445\%5,445%, uma spline cúbica pelos dez pontos dá 5,450%5{,}450\%5,450% e o PCHIP dá 5,493%5{,}493\%5,493%. Além dos dados dá errado: a mesma spline em 404040 anos diz 4,26%4{,}26\%4,26%, embora o rendimento de 303030 anos seja 5,60%5{,}60\%5,60%.
  • Interpole dentro, cuidado fora: linear, spline cúbica e PCHIP concordam dentro dos dados e divergem fora.
  • Escolha o que interpolar: o logaritmo do fator de desconto mantém estáveis as taxas a termo entre os nós.
  • Confira a curva a termo: uma boa interpolação dá taxas a termo sensatas, não só uma bela linha pelos pontos.

Lab: o que é avaliado

  • Uma interpolação linear10 pts
  • Interpolar o fator de desconto15 pts
  • Uma taxa a termo15 pts
  • Um valor de spline10 pts
  • A ferramenta certa15 pts
  • Construir uma curva10 pts
  • Por que não extrapolar uma spline cúbica25 pts
0/ 7 respondidas
Tarefas
1Resposta numérica10 ptsSem resposta

O rendimento é 4,0%4{,}0\%4,0% em 222 anos e 4,5%4{,}5\%4,5% em 333 anos. O que dá a interpolação linear em 2,52{,}52,5 anos, em percentual? Dê duas casas decimais.

y=y =y=aceito: ± 0.01
2Resposta numérica15 ptsSem resposta

Com ln⁡D=−yt\ln D=-ytlnD=−yt igual a −0,080-0{,}080−0,080 em 222 anos e −0,135-0{,}135−0,135 em 333 anos, a interpolação linear dá ln⁡D(2,5)=−0,1075\ln D(2{,}5)=-0{,}1075lnD(2,5)=−0,1075. Que rendimento y=−ln⁡D/ty=-\ln D/ty=−lnD/t em 2,52{,}52,5 anos isso significa, em percentual? Dê duas casas decimais.

y=y =y=aceito: ± 0.01
3Resposta numérica15 ptsSem resposta

Quanto vale a taxa a termo entre 222 e 333 anos, f=(y3⋅3−y2⋅2)/(3−2)f=(y_3\cdot3-y_2\cdot2)/(3-2)f=(y3​⋅3−y2​⋅2)/(3−2), quando y2=4,0%y_2=4{,}0\%y2​=4,0% e y3=4,5%y_3=4{,}5\%y3​=4,5%? Dê uma casa decimal, em percentual.

f=f =f=aceito: ± 0.05
4Resposta numérica10 ptsSem resposta

A spline cúbica natural por (0;0)(0;0)(0;0), (1;1)(1;1)(1;1) e (2;0)(2;0)(2;0) é S(x)=−0,5x3+1,5xS(x)=-0{,}5x^{3}+1{,}5xS(x)=−0,5x3+1,5x em [0;1][0;1][0;1]. Quanto vale S(0,5)S(0{,}5)S(0,5)? Dê quatro casas decimais.

s=s =s=aceito: ± 0.001
5Associar15 ptsSem resposta

Associe cada ferramenta à situação em que ela se encaixa melhor.

Escolha o par de cada item da esquerda.

np.interp
CubicSpline
PchipInterpolator
bounds_error=False, fill_value
6Ordenar os passos10 ptsSem resposta

Coloque em ordem os passos para construir uma curva de desconto a partir de rendimentos cotados.

Arraste para reordenar, ou foque um item, Espaço para levantá-lo, setas para movê-lo e Espaço para soltá-lo.

  1. 1Conferir as taxas a termo implícitas: saltos ou negativos
  2. 2Interpolar entre os nós
  3. 3Transformar cada rendimento em logaritmo do fator de desconto
  4. 4Reunir os rendimentos cotados e os prazos
7Explicar com palavras25 ptsSem resposta

A spline cúbica por dez rendimentos do Tesouro diz que o rendimento de 40 anos é 4,26%4{,}26\%4,26% embora o de 30 anos seja 5,60%5{,}60\%5,60%. Em uma ou duas frases, explique por que extrapolar uma spline cúbica é arriscado.

Modo matemáticaEntrada por teclado ou LaTeXTarefa 1 de 7 · Ctrl ⏎ para verificar

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