2.2.8. Cubic Spline – Interpolação para curvas de juros
Cubic spline é uma metodologia de interpolação numérica, assim como interpolação linear, exponencial etc. De fato, representa uma forma de interpolação através polinômios de 3° ordem, sendo daí originado o nome cubic.
A maior característica das interpolações cubic spline é o amortecimento ou suavidade que apresentam na transição de um nó para outro, sendo muito utilizada para estabilização de câmeras de vídeo e outros instrumentos sensíveis a variações bruscas.
A utilização da interpolação cubic spline em finanças também é motivada por está característica de suavizar as intersecções ou, olhando para uma curva de juros, suavizar a transição de um ponto para outro.
Neste método, a trajetória entre cada conjunto de dois pontos é representada por um polinômio de ordem 3 e algumas condições de contorno são estabelecidas para garantir a suavidade. Sendo assim, cada segmento da curva é definido por:
onde uint é uma parametrização dos pontos Dint no tempo dada por:
Como condições de contorno, temos que nos pontos de intersecção entre os segmentos, tanto o valor do polinômio - que representa cada segmento - como sua primeira e segunda derivadas devem ser iguais (isto equivale a dizer que a curva apresentará uma continuidade C2 – até segunda derivada). Ou:

(primeira derivada do segmento – inclinação da curva)
(segunda derivada do segmento – alteração da inclinação da curva)
Os pontos (0) e (1) representam, respectivamente, o início e o final de cada segmento da curva cubic spline.
Ainda para o ponto inicial e final da curva, tem-se:

A fim de permitir a resolução deste sistema de equações, mais duas condições são impostas para as extremidades:
Esta metodologia de construção de um spline também é conhecida como natural cubic spline ou spline cúbico natural.
Como desvantagens deste método, podemos salientar que ele apresenta algumas instabilidades, principalmente em curvas com pontos muito próximos uns dos outros. Uma outra observação é a ausência de uma teoria econômica que suporte o modelo para curvas de juros.
Extrapolações não são o objetivo de uma cubic spline.
2.2.8.1. Função MX.CSPLINE
Acesso:
- Menu - Inserir | Função | Metrixus
- Barra de ferramentas Padrão | Metrixus
Descrição:
Retorna a taxa de juros interpolada pelo método cubic spline para o período indicado a partir da curva de juros fornecida. No caso períodos além do último vencimento da curva de juros informada, a taxa retornada é negativa e equivale à taxa do último ponto da curva de juros (curva flat após o último vencimento). Esta função não realiza extrapolações.
Uma mesma curva de juros não pode possuir mais de uma informação para o mesmo ponto no tempo (por exemplo uma informação de futuros de juros e outra de swap’s). Se isto ocorrer, prevalecerá a maior taxa.
Chamada: MX.CSPLINE (Dias Úteis, Curva de Juros)
Argumento |
Tipo |
Descrição |
Dias Úteis |
integer |
Número de dias úteis para o qual se deseja calcular a taxa de juros interpolada pelo método cubic spline. Este número deve ser maior do que 1.
|
Curva de Juros |
range |
Intervalo (matriz n linhas por 2 colunas) contendo as taxas de juros ao ano (efetiva base 252) na primeira coluna e os dias úteis até o vencimento de cada ponto na segunda coluna. Estes dados são utilizados no cálculo de taxas de juros para qualquer vencimento. Deve haver pelo menos 2 pontos diferentes em uma curva de juros.
|
Os pontos da curva de juros informada não precisam estar ordenados no tempo, mas devem estar dispostos em um intervalo com duas colunas apenas.
Dados de texto ou em branco para a curva de juros são ignorados pela função. Dados menores do que 1 para o parâmetro Dias Úteis também são ignorados!
Importante:
As taxas de juros informadas no parâmetro Curva de Juros devem ser as taxas de juros anuais com base 252. As taxas devem estar na primeira coluna e os dias úteis para estas taxas na segunda coluna.
|
Importante:
Para pontos repetidos no tempo, prevalecerá aquele de maior taxa!
|
O resultado para uma curva de juros informada com n pontos é:
- Interpolação: considerando as equações e condições de uma cubic spline e considerando Pi e Pi+1 como pontos da curva de juros, Di e Di+1 como o número de dias úteis correspondentes a estes pontos e Dint a data do ponto procurado, sendo Dint entre Di e Di+1, a taxa de juros Pint interpolada para o ponto procurado será dada por:
- Interpolação:

Onde:
Importante:
Se o ponto procurado for um vencimento anterior ao primeiro vencimento da curva de juros, a taxa retornada será igual à taxa de juros do primeiro vencimento!
|
Exemplo de utilização para interpolação cubic spline:
Interpolação de curva de juros – parâmetros:
- Dias úteis: 120
- Curva: A2:B11 (11 pontos em qualquer ordem)
| 18,75% | 20 |
| 20,65% | 220 |
| 20,70% | 300 |
| 20,40% | 140 |
| 19,15% | 40 |
| 19,75% | 80 |
| 20,71% | 350 |
| 20,60% | 180 |
| 19,40% | 60 |
| 20,00% | 100 |
= MX.CSPLINE( 120; A2:B11)
Resultados:
Curva de juros interpolada para vários pontos. Para a construção deste gráfico foram calculadas as taxas interpoladas para todos os dias úteis até o último ponto (ou vencimento) informado. Não há extrapolações neste gráfico. Nota-se uma reta até o primeiro vencimento, indicando que não interpolações neste período.
Exemplo de utilização para interpolação cubic spline com curva invertida:
Interpolação de curva de juros invertida – parâmetros:
- Dias úteis 250
- Curva: A2:B11 (11 pontos em qualquer ordem)
| 18,75% | 20 |
| 19,15% | 40 |
| 19,40% | 60 |
| 19,75% | 80 |
| 20,00% | 100 |
| 20,40% | 140 |
| 20,60% | 180 |
| 20,58% | 220 |
| 20,40% | 300 |
| 20,30% | 350 |
= MX.CSPLINE( 250; A2:B11)
Resultados:
Novamente, não há dados para extrapolações e nota-se uma reta até o primeiro vencimento.
|