Escolar Documentos
Profissional Documentos
Cultura Documentos
Rio de Janeiro
2017
Michelle Bandarra Marques Costa
Rio de Janeiro
2017
Ficha catalográfica elaborada pela Biblioteca Mario Henrique Slmonsen/FGV
CDD - 519.62
' '- FGV
~ r
----= .
Adriart:~er Pizzinga
Membro Externo
Aos meus avós, Aristides e Celeste
Agradecimentos
Agradeço ao meu orientador, Vincent Guigues, por toda a dedicação e atenção dedicada
à conclusão deste trabalho. Também agradeço ao Adrian, sem o qual não saberia metade do
que aprendi de estatística e econometria. Agradeço aos meus pais e minha irmã, que estiveram
presentes por toda a minha vida, me apoiando e ajudando em todos os momentos, bons e ruins,
e que eu nada seria sem eles.
The best time to plant a tree was 20 years ago.
The second best time is now.
Chinese Proverb
Resumo
Estudamos dois tópicos distintos da matemática aplicada. O primeiro tópico dedica-se à estima-
ção e geração de trajetórias futuras de séries de oferta de sangue, contribuindo para a literatura
de gestão de estoque de bens perecíveis. São utilizados modelos de Vetores Autoregressivos
(VAR) e as trajetórias são geradas por duas técnicas distintas de bootstrap presentes na litera-
tura que consideram a não-normalidade dos erros do modelo. Conclui-se que ambas técnicas são
adequadas e abordagens possíveis para melhorar a previsibilidade das séries de oferta de sangue.
O segundo tópico dedica-se ao estudo de diferentes extensões do algoritmo de Programação Dinâ-
mica Dual Estocástica (Stochastic Dual Dynamic Programming , SDDP). Sob a ótica de modelos
de seleção de carteira, são comparados os desempenhos computacionais de dois algoritmos. O
primeiro é uma modificação do SDDP que calcula múltiplos cortes por iteração, Multicut Decom-
position Algorithm (MuDA). O segundo introduz estratégias de seleção de corte ao MuDA, no
que denominamos de Cut Selection Multicut Decomposition Algorithm, CuSMuDA e, até onde
sabemos, ainda não foi proposto pela literatura. São comparadas duas estratégias de seleção de
corte distintas, CS1 e CS2. Foram rodadas simulações para 6 casos do problema de seleção de
carteira e os resultados mostram a atratividade do modelo proposto CuSMuDA CS2, que obteve
tempos computacionais entre 5,1 e 12,6 vezes menores que o MuDA e entre 10,3 e 21,9 vezes
menores que o CuSMuDA CS1.
1 Introdução 1
1.1 Estudo em tópicos de estatística e econometria . . . . . . . . . . . . . . . . . . . 1
1.2 Estudo em tópicos de otimização estocástica e computação . . . . . . . . . . . . . 2
1.3 Organização e Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . 2
4 Conclusão 33
Referências Bibliográficas 34
Capítulo 1
Introdução
O presente trabalho foi dividido em abordagens distintas a dois problemas matemáticos e eco-
nométricos do mundo real. A primeira parte dedica-se ao estudo econométrico, onde foram
realizadas estimações de modelos econométricos e gerações de trajetórias futuras a séries de
oferta de sangue. A segunda parte dedica-se ao estudo de otimização estocástica, com aplicação
de extensões de métodos de programação dinâmica a modelos de gestão de portfólio e formulação
de uma nova estratégia para refinar os métodos atualmente utilizados pela literatura.
A gestão do banco de sangue nos postos de saúde e hospitais é uma tarefa complexa e de im-
portância primordial para as políticas de saúde no Brasil e no mundo. Bolsas de sangue estão
sujeitas a todo tipo de falhas desde o momento de sua coleta, passando pelo processamento da
matéria até os testes de qualidade. Além disso, há o desafio atrelado a estocagem de um bem
perecível como o sangue.1 A gestão bem sucedida de bolsas de sangue deve garantir o equaciona-
mento constante da oferta de sangue de hemocentros com a demanda por bolsas em hospitais e
postos médicos na assistência de enfermos, portadores de doenças, acidentados e casos cirúrgicos.
Nosso trabalho propõe um método para modelagem, estimação e desenho de trajetórias fu-
turas para as séries de oferta de sangue, ensejando colaborar com a literatura do tema e, mais
amplamente, à literatura de gestão de estoque de bens perecíveis. Utilizamos séries diárias de
doações ao hemocentro Instituto Estadual de Hematologia Arthur de Siqueira Cavalcanti (HE-
MORIO), localizado no Rio de Janeiro, responsável por coletar, processar, armazenar e distribuir
o sangue e seus derivados a hospitais e postos de saúde da rede pública do Estado, e modelamos
as séries de oferta de sangue utilizando modelos econométricos consagrados, como Vetores Au-
torregressivos (VAR), e duas técnicas distintas de Bootstrap para geração de trajetórias futuras e
intervalos de confiança das previsões considerando erros não-Gaussianos. Conclui-se que ambas
técnicas são adequadas e abordagens possíveis para melhorar a previsibilidade das séries de oferta
de sangue.
1
O prazo de validade de uma bolsa de sangue varia com a forma como ela foi coletada, estando estimado entre
21 e 35 dias, segundo a Portaria 1.353 do Ministério da Saúde (Ministério de Saúde, 2013)
2
Problemas de otimização estocástica buscam solucionar de forma eficiente situações reais, através
de modelos matemáticos onde os parâmetros estocásticos, i.e., os parâmetros cujo valor é incerto
no momento de definição das ações a serem tomadas, são representados por variáveis aleatórias.
Sendo bastante comuns em diversas áreas da ciência e engenharia, esses tipos de problemas são
amplamente explorados pela literatura em variadas formulações possíveis, desde problemas de
inventário ([62], [23]) até problemas de seleção de carteira ([5], [7], [34]).
O trabalho teve como objetivo estudar problemas de otimização estocástica sob a ótica dos
algoritmos de programação linear estocástica multiestágios, com atenção aos algoritmos MuDA,
CuSMuDA com estratégia de seleção de cortes Level 1 (CuSMuDa CS1) e CuSMuDA com estraté-
gia de seleção de cortes Limited Memory Level 1 (CuSMuDA CS2). Os modelos são formalmente
apresentados e aplicados ao problema clássico de seleção de carteira. Também são expostos os
resultados de experimentos numéricos em seis casos do problema de seleção de carteira, utili-
zando os três algoritmos (MuDA, CuSMuDA CS1 e CuSMuDA CS2). Os resultados mostram a
atratividade computacional da estratégia de seleção de cortes proposta CS2, que obteve tempos
computacionais entre 5,1 e 12,6 vezes menores que MuDA e entre 10,3 e 21,9 vezes menores que
CuSMuDA CS1.
Sangue é um recurso essencial para procedimentos médico-cirúrgios, sendo fundamental que esse
valioso e limitado recurso esteja disponível a todos que precisam, sendo fundamental que se evite
ao máximo seu desperdício.[44]. O sangue é composto principalmente por quatro tipos diferentes
de hemocomponentes e hemoderivados, decorrentes de processos físicos e físico químicos realiza-
dos no material, sendo eles: concentrado de hemácias, concentrado de plaquetas, plasma fresco
congelado e crioprecipitado. Com exceção do plasma, todos os componentes são perecíveis, com
tempo de vida útil que chega, no máximo, a 35 dias (Concentrado de hemácias).1
Em 1901, Karl Landsteiner descobriu o que ficou conhecido como o sistema ABO, que clas-
sifica o sangue em quatro grupos principais, A, B, AB e O [50]. Em 1940, foi descoberto outro
sistema de grupamento de sangue, o sistema Rh, dando origem aos tipos sanguíneos Rh positivo
e Rh negativo. Seguindo os dois sistemas, há oito tipos sanguíneos: A+, A-, B+, B-, AB+, AB-,
O+ e O-.[51]
Depois de coletado, o sangue é levado a laboratório, onde seu tipo sanguíneo é determinado
e são executados diversos testes de triagem, além de poder ser separado em hemocomponentes.
Caso seja considerado saudável, o sangue é estocado em um banco de sangue, onde ficará dispo-
nível para atendimento da demanda de hospitais solicitando o material para transfusões. Uma
única doação pode ajudar diversos pacientes, de acordo com quantos produtos foram processa-
dos a partir de uma única bolsa, dentre concentrado de hemácias, concentrado de plaquetas e
plasma.[40] 2 A maior parte da literatura na área é restrita ao estudo das Hemácias, que repre-
sentam o maior volume de transfusões.
Como doações de sangue são feitas voluntariamente, a quantidade de sangue doado recebido
1
O prazo de validade de uma bolsa de sangue varia com a forma como ela foi coletada, estando estimado entre
21 e 35 dias, segundo a Portaria 1.353 do Ministério da Saúde (Ministério de Saúde, 2013)
2
Hemácias são utilizadas em cirurgias e acidentes envolvendo grandes perdas de sangue, em pacientes anêmicos
e em bebês prematuros. Plaquetas são utilizadas em cirurgias e acidentes envolvendo grandes perdas de sangue
e no tratamento de câncer. Plasma é utilizado no tratamento de doenças do fígado e em casos de queimaduras.
4
por hemocentros para cada tipo sanguíneo é estocástica, assim como o número de transfusões
demandadas por cada hospital para cada tipo sanguíneo, e estas duas variáveis - oferta e de-
manda - devem ser levadas em conta pelo gestor de um banco de sangue. Parte fundamental do
esforço de hospitais para melhorar a gestão de bancos de sangue está em compreender os padrões
estatísticos dessas duas séries - através da análise estatística de dados históricos - de forma a
aumentar sua previsibilidade ([63]).
Há uma ampla literatura em problemas de inventário de produtos perecíveis ([54], [55], [63],
[29], [43], [56]). Alguns dos primeiros trabalhos que se concentraram na área de modelagem
da oferta e demanda de sangue representaram as séries de demanda sanguínea como seguindo
uma distribuição binomial negativa, com parâmetros que dependiam do tipo sanguíneo e dia da
semana, dentre outros ([20] e [21]). [57] formularam uma cadeia de Markov para o problema;
entretanto a abordagem foi posteriormente criticada, desde a alegação de violação da propriedade
memoryless exigida em processos de Markov até a dificuldade em se determinar no mundo real
as probabilidades de transição.3 . Até o melhor de nosso conhecimento, não encontramos traba-
lhos que modelassem as séries sanguíneas como variáveis contínuas e nem, tampouco, trabalhos
que modelassem conjuntamente as séries de sangue, capturando efeitos cruzados potencialmente
gerados pela substitutibilidade entre alguns tipos sanguíneos. Nossa escolha por esse tipo de
análise foi sua aplicação relativamente simples e com resultados bastante satisfatórios, com os
modelos estimados tendo boas performances com a base de dados utilizada.
Além dos métodos para modelagem das séries de oferta e demanda de sangue, também é de
interesse da literatura o desenho de trajetórias e modelos de previsão dos dados futuros. Por
exemplo, [25] desenvolveram modelos sofisticados de previsão da oferta de sangue para o sistema
regional de Albany, Nova Iorque, utilizando técnicas de suavização exponencial.
Nosso trabalho propõe um método para modelagem, estimação e desenho de trajetórias fu-
turas para as séries de oferta de sangue, ensejando colaborar com a literatura do tema e, mais
amplamente, à literatura de gestão de estoque de bens perecíveis. Utilizamos séries diárias de
doações ao hemocentro Instituto Estadual de Hematologia Arthur de Siqueira Cavalcanti (HE-
MORIO), localizado no Rio de Janeiro, responsável por coletar, processar, armazenar e distribuir
o sangue e seus derivados a hospitais e postos de saúde da rede pública do Estado, e modela-
mos as séries de oferta de sangue separadamente utilizando modelos econométricos consagrados,
como Vetores Autorregressivos (VAR), e duas técnicas distintas de Bootstrap para geração de
trajetórias futuras e intervalos de confiança das previsões considerando erros não-Gaussianos.
Conclui-se que ambas técnicas são adequadas e abordagens possíveis para melhorar a previsibi-
lidade das séries de oferta de sangue.
2.2 Modelos
Nesta seção será apresentado o modelo de séries temporais utilizado no presente trabalho e a
técnica utilizada para geração de trajetórias futuras. A metodologia consiste na estimação de
modelo por vetores autorregressivos (VAR), modificado para considerar o impacto de fatores
exógenos contemporâneos (VARX). Nosso modelo VARX é aplicado em duas etapas, a primeira
consistindo na estimação por Mínimos quadrados ordinários (MQO) das séries regredidas em
3
Para maiores detalhes, ver [42]
5
fatores exógenos contemporâneos, e a segunda consistindo na estimação por VAR das séries cor-
rigidas resultantes da primeira etapa. Ao longo de todo o processo são utilizados outros conceitos
e técnicas estatísticas como, notadamente, análises gráficas e testes de hipóteses. Finalmente, é
apresentado o conceito de bootstrap e as duas técnicas de bootstrap utilizadas para geração de
trajetórias futuras das séries de oferta de sangue.
Seja 𝑌𝑡 = (𝑌1𝑡 ,...,𝑌𝐾𝑡 )′ ∈ R𝑘 um vetor aleatório das variáveis de interesse. Seja o modelo
estrutural
𝑌𝑡 = 𝐶 −1 𝐵0 +𝐶 −1 𝐵1 𝑌𝑡−1 +...+𝐶 −1 𝐵𝑝 𝑇𝑡−𝑝 +𝐶 −1 𝐵𝑣𝑡 = 𝜈 +𝐴1 𝑌𝑡−1 +...+𝐴𝑝 𝑌𝑡−𝑝 +𝑢𝑡 , 𝑡 = 0,1,2...
(2.2)
′
no qual o vetor de erros i.i.d. 𝑢𝑡 é tal que 𝐸(𝑢𝑡 ) = 0 e 𝐸(𝑢𝑡 𝑢𝑡 ) = Σ𝑢 , onde Σ𝑢 é uma matriz
simétrica positiva definida 𝐾 × 𝐾 .
Dadas 𝑛 realizações de (2.2), podemos utilizar o método de MQO para estimar de forma
eficiente os parâmetros, desde que incluidos lags suficientes de todas as variáveis e a equação
satisfaça a hipótese de homocedasticidade para séries temporais (para maiores detalhes, ver [52])
Dois dos critérios de informação mais populares na literatura são Akaike [1] e Schwarz Baye-
siano [24], dados por
ˆ (ℎ)
ˆ (ℎ) + ... + 𝐴ˆ𝑝 𝑌𝑛−𝑝
𝑌ˆ𝑛 (ℎ) = 𝜈ˆ + 𝐴ˆ1 𝑌𝑛−1 (2.3)
𝑦𝑖 = 𝑐𝑖 + 𝑥𝑖 𝛽 + 𝜖𝑖 , 𝑖 = 1,...,8 (2.4)
Repare que podemos escrever (2.4) como 𝜖𝑖 = 𝑦𝑖 − 𝑐𝑖 − 𝑥𝑖 𝛽 , o que nos ajuda a compreender
a interpretação de 𝜖 como sendo a série de oferta do i-ésimo tipo sanguíneo, retirados os efeitos
exógenos contemporâneos. Assim, a partir da estimação de (2.4) é possível obtermos 𝜖ˆ𝑖 ∀𝑖.
ˆ
Assim, definindo 𝑌𝑡 = [(𝑦1𝑡 − 𝑥1𝑡 𝛽),...,(𝑦 ˆ ′
8𝑡 − 𝑥8𝑡 𝛽)] = [𝜖ˆ 8𝑡 ] , estimamos nosso modelo
1𝑡 , ..., 𝜖ˆ
′
4
para maiores detalhes sobre a metodologia VARX, ver [22]
5
Para maiores detalhes sobre o MQO, ver [18]
6
Segundo [15], o número de reamostragens necessárias para se obter boas estimativas, em intervalos de confiança
e problemas de testes de hipóteses, seria de pelo menos 1000 repetições Bootstrap
7
Uma forma de solucionar esta questão é assumir erros de previsão Gaussianos em um modelo
𝑉 𝐴𝑅(𝑝), porém esta opção acarreta em problemas associados com a determinação de lag do
modelo, como tratado em detalhes em [45]. Além disso, a evidência empírica sugere que séries
temporais constantemente rompem com a hipótese Gaussiana ([39], [46]).
Assim, considere o modelo 𝑉 𝐴𝑅(𝑝) dado pela equação (2.2). O modelo é estacionário, de
modo que todas as raízes da equação característica 𝑑𝑒𝑡(𝐼𝐾 − 𝐴1 𝑧 − ... − 𝐴𝑝 𝑧 𝑝 ) = 0 encontram-se
fora do círculo unitário.
Dadas 𝑛 realizações de (𝑌1 ,...,𝑌𝑝 ) de (2.2), podemos estimar os parâmetros do modelo pelo
método de mínimos quadrados, denotando por (ˆ 𝜈 , 𝐴ˆ1 , ..., 𝐴ˆ𝑝 ) os estimadores de MQO para
(𝜈,𝐴1 ,...,𝐴𝑝 ) e 𝑢ˆ𝑡 os resíduos de MQO.
Os modelos VAR ’forward ’ (equação (2.2)) e VAR backward (equação (2.5)) são intimamente
′ ′
relacionados; por exemplo, 𝐻1 = Γ−1 𝐴1 Γ, onde Γ = 𝐸(𝑌𝑡 𝑌𝑡 ) para o caso VAR(1) (ver [47] para
maiores detalhes).
𝜇,𝐻ˆ1 ,...,𝐻ˆ𝑝 ) e
Denotamos os estimadores de MQO da equação (2.5) de (𝜇, 𝐻1 , ..., 𝐻𝑝 ) por (ˆ
𝜔ˆ𝑡 os resíduos de MQO.
8
𝑌𝑡* = 𝜇 + 𝐻1 𝑌𝑡+1
* *
+ ... + 𝐻𝑝 𝑌𝑡+𝑝 + 𝜔𝑡* , (2.6)
sendo que os 𝑝 primeiros valores da equação são definidos como idênticos aos 𝑝 últimos valores
da série original e 𝜔𝑡* é retirado aleatoriamente de {𝜔ˆ𝑡 }𝑛𝑡=1 com reposição.
sendo que 𝑌𝑛* (𝑗) = 𝑌𝑛+𝑗 para 𝑗 ≤ 0, 𝑢*𝑛+ℎ é sorteado aleatoriamente de {𝑢ˆ*𝑡 }𝑛𝑡=1 com reposi-
ção e (𝜈 * ,𝐴*1 , ..., 𝐴*𝑝 ) são os estimadores de MQO para (𝜈, 𝐴1 , ..., 𝐴𝑝 ) obtidos pelos pseudo-dados
{𝑌𝑡* }𝑛𝑡=1 . A geração de 𝐵 conjuntos de pseudo-dados {𝑌𝑡* (ℎ,𝑖)}𝐵 𝑖=1 permite, portanto, a geração
de 𝐵 previsões de bootstrap baseadas na equação (2.7). A partir das 𝐵 trajetórias futuras tam-
bém é possível obter intervalos de previsão com (1 − 𝛼)100% de significância. Para tal, a cada
ℎ ≥ 1, ordena-se em ordem crescente {𝑌𝑛* (ℎ,𝑖)}𝐵 𝑖=1 , de modo que 𝑌𝑛 (ℎ,1) possui o menor valor
*
Assim, da mesma forma que anteriormente, dadas 𝑛 realizações de (𝑌1 ,...,𝑌𝑝 ) de (2.2), po-
demos estimar os parâmetros do modelo pelo método de mínimos quadrados, denotando por
𝜈 , 𝐴ˆ1 , ..., 𝐴ˆ𝑝 ) os estimadores de MQO para (𝜈,𝐴1 ,...,𝐴𝑝 ) e 𝑢ˆ𝑡 os resíduos de MQO.
(ˆ
𝑌𝑡* = 𝜈 + 𝐴1 𝑌𝑡−1
* *
+ ... + 𝐴𝑝 𝑌𝑡−𝑝 + 𝑢*𝑡 , (2.8)
sendo que os 𝑝 primeiros valores da equação são definidos como idênticos aos 𝑝 primeiros
valores da série original e 𝑢*𝑡 é retirado aleatoriamente de {𝑢ˆ𝑡 }𝑛𝑡=1 com reposição. A estimação
da equação (2.8) por MQO gera o conjunto de estimadores (𝜈 * ,𝐴*1 , ..., 𝐴*𝑝 ) para (𝜈, 𝐴1 , ..., 𝐴𝑝 ).
sendo que 𝑌𝑛* (𝑗) = 𝑌𝑛+𝑗 para 𝑗 ≤ 0, 𝑢*𝑛+ℎ é sorteado aleatoriamente de {𝑢ˆ*𝑡 }𝑛𝑡=1 com reposi-
ção. A geração de 𝐵 conjuntos de pseudo dados {𝑌𝑡* (ℎ,𝑖)}𝐵𝑖=1 permite, portanto, a geração de 𝐵
previsões de bootstrap baseadas na equação (2.9).
Da mesma forma que em [48], a partir das 𝐵 trajetórias futuras podemos obter intervalos de
previsão, como descrito anteriormente.
As previsões bootstrap convergem estocasticamente quando 𝑛 cresce aos valores futuros ver-
dadeiros da distribuição ([26]), o que torna o uso do bootstrap robusto para diversos enfoques,
inclusive para o cálculo de intervalos de previsão do VAR.
O presente estudo utilizou dados obtidos junto ao Hemocentro Instituto Estadual de Hematologia
Arthur de Siqueira Cavalcanti (HEMORIO)7 , Hemocentro coordenador da Rede de Hemoterapia
pública do Estado do Rio de Janeiro (figura 1), responsável por coletar, processar, armazenar e
distribuir o sangue e seus derivados a hospitais e postos de saúde da rede pública do Estado.
7
HEMORIO, Rua Frei Caneca, 8, Centro - Rio de Janeiro
10
Estatísticas descritivas
Designaremos as oito séries de oferta de sangue como as séries históricas diárias do total de
unidades de bolsas de concentrado de hemácias resultantes das doações de sangue de cada um
dos 8 tipos sanguíneos existentes (A positivo, A negativo, B positivo, B negativo, AB positivo,
AB negativo, O positivo e O negativo). O período da amostra obtida compreende desde 1º de
janeiro de 2013 até 09 de dezembro de 2015, totalizando 1.073 observações.
A figura 2.2 registra a série histórica obtida para cada tipo sanguíneo
Tipo A+ Tipo A−
30
200
25
150
20
100 15
10
50
5
0 0
2013.0 2013.5 2014.0 2014.5 2015.0 2015.5 2016.0 2013.0 2013.5 2014.0 2014.5 2015.0 2015.5 2016.0
Tipo B+ Tipo B−
10
60
8
40 6
4
20
2
0 0
2013.0 2013.5 2014.0 2014.5 2015.0 2015.5 2016.0 2013.0 2013.5 2014.0 2014.5 2015.0 2015.5 2016.0
25 12
10
20
8
15
6
10
4
5 2
0 0
2013.0 2013.5 2014.0 2014.5 2015.0 2015.5 2016.0 2013.0 2013.5 2014.0 2014.5 2015.0 2015.5 2016.0
Tipo O+ Tipo O−
60
300 50
250
40
200
30
150
20
100
50 10
0 0
2013.0 2013.5 2014.0 2014.5 2015.0 2015.5 2016.0 2013.0 2013.5 2014.0 2014.5 2015.0 2015.5 2016.0
Portanto, o primeiro passo para a estimação do modelo envolveu a dessazonalização das séries
e controle dos efeitos contemporâneos incidentes. Para isso, estimaram-se regressões lineares
individuais pelo método de Mínimos Quadrados Ordinários, como o modelo descrito abaixo
novembro anualmente, e dummies para os feriados ocorridos no período, o que compreende uma
dummy Copa do Mundo, que controla pelos diversos feriados que a cidade teve em dias de jogos
do campeonato ocorridos na cidade do Rio de Janeiro, uma dummy para o dia 1º de janeiro,
quando o Hemorio não coleta doações, uma dummy para o Natal, uma dummy para o Reveillon.
Nossa hipótese é de que há dependência temporal nas séries, de modo que a estimação dos
modelos individuais de regressão linear por MQO apresentou o problema de autocorrelação dos
resíduos, comprometendo as estatísticas de testes de hipóteses.10 Para correção do problema, foi
feita a estimativa da variância dos estimadores de MQO pelo método de Newey-West. No Anexo
I estão os gráficos das séries amostrais e estimadas pelo modelo da equação (2.10), além dos
gráficos dos resíduos estimados por MQO. Também podem ser vistos em detalhes os sumários
das regressões de cada série.
Vetores Autorregressivos
Do primeiro passo de MQO, obtemos séries dessazonalizadas e corrigidas para os efeitos descritos
e podemos passar para a definição de defasagem do VAR a ser considerado, que utiliza como
variáveis dependentes os resíduos estimados de MQO dos sete tipos sanguíneos A+, A-, AB+,
B+, B-, O+ e O-.
O anexo II mostra os gráficos dos resíduos de cada série proveniente do VAR(2), além de seus
histogramas, qq plot, FAC e FACP. Com o auxílio dos gráficos e com as estatísticas dos testes
Jarque-Bera ([41]), feitas em cada série de resíduos, para verificação de normalidade, pôde-se
9
Em função do aumento da demanda por sangue no período que compreende o Carnaval no Rio de Janeiro,
o Hemorio faz um esforço de campanha desde o começo do ano para abastecimento dos estoques de sangue da
instituição
10
Um ajuste fino feito inicialmente no modelo considerou a significância dos estimadores obtidos, dada pela
estatística t, para fazer regressões personalizadas por tipo sanguíneo, incluindo conjunto possivelmente menor dos
estimadores inicialmente considerados. Com as estatísticas Wald, foram feitos testes de restrição dos coeficientes
para entender se os efeitos das dummies explicativas eram diferentes em anos distintos. Como ambas análises pro-
duziram pouca diferença em relação às regressões sem restrições, por simplicidade e automatização computacional
elas foram desconsideradas.
13
comprovar que tais séries, com fracas exceções, não poderiam ser consideradas como advindas
de distribuições Gaussianas.
Apesar de não seguirem distribuição normal, as séries de resíduo estimadas do VAR(2) são
independentes e identicamente distribuídas (iid), como verificado pelo teste BDS([11]). 11 No
Anexo III é possível acessar as estatísticas dos testes Jarque-Bera e BDS a cada uma das séries.
Em todas as três metodologias, as trajetórias futuras para a série de oferta de sangue do tipo
sanguíneo AB- foram obtidas por processo de Monte Carlo ([53]), através do sorteio sequencial,
com reposição, de valores amostrais da série.
Neste momento, faz-se necessário um comentário acerca da escolha pela modelagem contínua
das séries. Como consequência da escolha de modelagem feita das séries nesse trabalho, em al-
gumas das trajetórias calculadas foram obtidos valores negativos às variáveis de oferta. A forma
escolhida para tratar a questão foi a imposição de mínimo zero para todas as observações gera-
das, de forma que todas as observações negativas foram artificialmente substituídas por valores
nulos.
Bootstrap Gaussiano
Usada como base de comparação para as outras duas metodologias, a simulação Gaussiana
consiste na geração de trajetórias de bootstrap futuras utilizando os parâmetros estimados no
modelo VAR(2) e da hipótese que os erros são Gaussianos. Este é um bootstrap paramétrico,
onde ao invés de se sortear da distribuição amostral dos erros, se sorteia da distribuição teórica -
11
Todos os testes foram feitos com m igual a 6 e erro variando entre 0,5 e 2,5 desvios padrão
14
no caso, 𝑁 (0, ˆ 𝑢 ), onde ˆ 𝑢 é a matriz variância covariância dos erros amostrais. Após a geração
∑︀ ∑︀
das trajetórias futuras do VAR(2), é realizado processo de recuperação dos valores de interesse,
que são estimações para as séries de oferta de sangue. Assim, percorre-se o caminho inverso à
estimação, construindo as trajetórias ao modelo de MQO a partir das trajetórias do modelo VAR
e, posteriormente, discretizando os valores obtidos para conversão das trajetórias em trajetórias
de número de bolsas de sangue ofertadas por dia, por tipo sanguíneo.
Os gráficos finais de cada tipo sanguíneo, contendo as 2.000 trajetórias, a previsão da série
(média das trajetórias em cada 𝑡, 𝑡 = {1,...,30}), e o intervalo de confiança de 95% encontram-se
no Anexo IV.
Os gráficos de cada tipo sanguíneo, contendo as 2.000 trajetórias, a previsão da série (média
das trajetórias em cada 𝑡, 𝑡 = {1,...,30}), e o intervalo de confiança de 95% encontram-se no
Anexo V.
Os gráficos de cada tipo sanguíneo, contendo as 2.000 trajetórias, a previsão da série (média
das trajetórias em cada 𝑡, 𝑡 = {1,...,30}) e o intervalo de confiança de 95%, juntamente com a
comparação com o método de [48], encontram-se no Anexo VI.
Para todos os tipos sanguíneos considerados, os resultados de Bootstrap dos métodos não
Gaussianos são similares sob o modelo VAR(2). Em ambos métodos observam-se valores espera-
dos dado pelas trajetórias como similares ao encontrado pelo Bootstrap Gaussiano. A principal
diferença entre este e os dois métodos não Gaussianos está na construção dos intervalos de con-
fiança, que são mais ruidosos, em linha com o esperado. Conclui-se que ambas metodologias de
Bootstrap não Gaussiano são adequadas e abordagens possíveis para melhorar a previsibilidade
das séries de oferta de sangue.
12
Para detalhes, ver [48]
Capítulo 3
Problemas de otimização estocástica buscam solucionar de forma eficiente situações reais, através
de modelos matemáticos onde os parâmetros estocásticos, i.e., os parâmetros cujo valor é incerto
no momento de definição das ações a serem tomadas, são representados por variáveis aleatórias.
Sendo bastante comuns em diversas áreas da ciência e engenharia, esses tipos de problemas são
amplamente explorados pela literatura em variadas formulações possíveis, desde problemas de
inventário ([62], [23], [66]) até problemas de seleção de carteira ([5], [7], [34], [66]).
Enquanto Modelos de Recurso ([17], [4], [66]) utilizam abordagem reativa, corrigindo viola-
ções a restrições após a realização das incerteza, Modelos Probabilísticos ([14], [66]) expressam
restrições de estágios futuros em termos de declarações probabilísticas sobre as decisões de pri-
meiro estágio. Os modelos probabilísticos são particularmente úteis quando os custos e benefícios
associados às decisões futuras são difíceis de serem avaliados.
O procedimento básico através do qual modelos probabilísticos lidam com incerteza é ilustrado
16
⎨ min 𝑐𝑇 𝑥
⎧
𝐴𝑥 ≥ 𝑏 (3.1)
𝑥 ≥ 0,
⎩
Aplicando a função de distribuição acumulada de 𝑏𝑖 à restrição (3.2), esta pode ser reformu-
lada como
𝑚
∑︁
𝐴𝑖𝑗 𝑥𝑗 ≥ Θ−1
𝑖 (𝛼𝑖 ), 𝑖 = 1,...,𝑛, (3.3)
𝑗=1
onde 𝛼𝑖 e Θ−1
𝑖 são conhecidos. Desta forma a restrição (3.2) é reduzida a uma restrição linear
comum e o modelo probabilístico se transforma em um modelo de programação linear determi-
nístico.
É também possível considerar restrições em probabilidade conjunta do tipo P(𝐴𝑥 ≥ 𝑏) com 𝐴
e 𝑏 aleatórios para o problema (3.1) ([66]). Recentemente restrições em probabilidade conjunta
em modelos dinâmicos em que sequencias de decisões sob incerteza devem ser tomadas foram
também propostos, ver [2], [33].
O problema (3.4) pode ser interpretado como um processo de dois estágios, onde no primeiro
estágio deve-se decidir um valor para a variável 𝑥1 que obedeça à restrição 𝐴1 𝑥1 = 𝑏1 e no se-
gundo estágio se otimiza o valor da variável 𝑥2 , que depende da decisão 𝑥1 tomada no primeiro
estágio e dos parâmetros 𝑐2 , 𝐴2 , 𝑏2 , 𝐵2 .
No caso em que o vetor 𝜉 = (𝑐2 ,𝐵2 ,𝐴2 ,𝑏2 ) dos parâmetros deste problema de segundo estágio
são aleatórios, o problema de segundo estágio depende das realizações desses parâmetros e neste
caso, denotaremos por ⎧
⎨ min 𝑐˜𝑇 𝑥2
𝑥2 2
⎪
˜ = (3.7)
Q(𝑥1 , 𝜉)
⎪ 𝐴˜2 𝑥2 = ˜𝑏2 − 𝐵
˜2 𝑥1
𝑥2 ≥ 0
⎩
o custo de segundo estágio para a realização 𝜉˜ = (˜ ˜2 ,𝐴˜2 ,˜𝑏2 )) dos parâmetros aleatórios.
𝑐2 ,𝐵
Aqui, assume-se que o vetor aleatório 𝜉 possui um número finito de realizações conhecidas
independentes
∑︀𝑀 𝜉1 ,...,𝜉𝑀 chamadas de cenários, cada cenário com sua respectiva probabilidade
𝑝1 ,...,𝑝𝑀 : 𝑖=1 𝑝𝑖 = 1.
Neste caso, para o problema de segundo estágio minimiza-se o valor esperado 𝒬(𝑥1 ) =
𝐸𝜉 [Q(𝑥1 ,𝜉)] do custo que pode ser escrito em função do somatório
𝑀
∑︁
𝒬(𝑥1 ) = 𝑝𝑖 Q(𝑥1 ,𝜉𝑖 ) (3.8)
𝑖=1
Assumindo o modelo discreto, pode-se reescrever (3.4) de forma a chegarmos ao modelo
⎧
𝑐𝑇1 𝑥1 + 𝑀
∑︀
⎨ min
⎪
𝑥1 𝑖=1 𝑝𝑖 Q(𝑥1 ,𝜉𝑖 )
𝐴1 𝑥1 = 𝑏1 (3.9)
⎪
𝑥1 ≥ 0
⎩
onde Q(𝑥1 ,𝜉𝑖 ) é o valor ótimo do problema de segundo estágio para cada realização 𝑖 = 1,...,𝑀 :
⎧
⎨ min 𝑐𝑇 𝑥2
𝑥2 2𝑖
⎪
Q(𝑥1 ,𝜉𝑖 ) = 𝐴2𝑖 𝑥2 = 𝑏2𝑖 − 𝐵2𝑖 𝑥1 (3.10)
⎪
𝑥2 ≥ 0.
⎩
do valor esperado do custo do problema de segundo estágio. No segundo estágio, onde as in-
formações sobre 𝜉 já estão disponíveis, é tomada a decisão sobre o valor do vetor 𝑥2 , refletindo
o comportamento sob informação completa, compensando qualquer decisão inadequada tomada
no primeiro estágio.
Como a decisão de primeiro estágio 𝑥1 depende apenas da informação disponível até aquele
momento (princípio de não antecipatividade), ela independe das realizações do segundo estágio
e, sendo assim, o vetor 𝑥1 é o mesmo para todos os possíveis eventos que venham a ocorrer no
segundo estágio do problema ([10]).
O algoritmo pode ser generalizado para o caso multiestágios. De forma equivalente a equação
(3.5) do problema de dois estágios, o problema para o estágio 𝑡 = 1,...,𝑇 em um modelo de
múltiplos estágios pode ser representado por
⎧
⎨ 𝑥min
⎪ 𝑐𝑇 𝑥𝑡 + 𝒬𝑡+1 (𝑥𝑡 )
𝑛 𝑡
𝑡 ∈R
Q𝑡 (𝑥𝑡−1 , 𝜉𝑡 ) = 𝐴𝑡 𝑥𝑡 + 𝐵𝑡 𝑥𝑡−1 = 𝑏𝑡 (3.11)
⎪
𝑥𝑡 ≥ 0
⎩
onde 𝑏𝑡 e 𝑐𝑡 são vetores aleatórios, as matrizes 𝐴𝑡 e 𝐵𝑡 são aleatórias (com um número finito e
conhecido de linhas), e 𝜉𝑡 é um vetor aleatório correspondendo a concatenação dos elementos das
matrizes aleatórias 𝐴𝑡 e 𝐵𝑡 e dos vetores 𝑏𝑡 , 𝑐𝑡 .
Assume-se que 𝜉𝑡 ,𝑡 = 2,...,𝑇 são independentes, com distribuição discreta e suporte finito
Θ𝑡 = {𝜉𝑡1 ,...,𝜉𝑡𝑀𝑡 } e 𝜉1 é determinístico.
[︁ ]︁
Neste caso, a função de custo futuro para o estágio 𝑡 − 1 é 𝒬𝑡 (𝑥𝑡−1 ) = E𝜉 Q𝑡 (𝑥𝑡−1 , 𝜉𝑡 ) , com
𝒬1 (𝑥0 ) = Q1 (𝑥0 , 𝜉1 ). Convenciona-se que 𝒬𝑇 +1 é nulo e 𝑥0 é dado.
A estratégia dos algoritmos de SDP de aproximação das funções de custo futuro através da discre-
tização das variáveis de estágio e a consideração dos múltiplos cenários das variáveis estocásticas
acarreta em aumento exponencial de complexidade à medida que se acrescentam componentes
nas variáveis de estado (maldição da dimensionalidade), o que impede a aplicação prática da
técnica a problemas com vetores de estado de grande tamanho e muitos estágios ([58]).
a extensão do método para resolver problemas envolvendo medidas de risco ver [65], [35], [36], [30].
O SDDP soluciona uma pequena parte dos cenários de uma árvore de cenários, construindo
a política ótima com base em aproximações das funções de custo futuro, definidas através de
funções afim construídas por hiperplanos de suporte conhecidos como cortes de Benders (ou,
simplesmente, cortes). Os hiperplanos são obtidos pela solução dual do problema de otimização
de cada estágio e são adicionados a função custo a cada iteração do algoritmo. Esta abordagem
evita a necessidade de construção de aproximações da função custo com base em um conjunto
de valores discretos das variáveis de estado, contornando a maldição da dimensionalidade do SDP.
Para entender melhor o algoritmo, considere o problema (3.9), com 𝑀 cenários ∑︀𝑀possíveis para
o vetor aleatório 𝜉 e cada cenário com probabilidade {𝑝𝑖 , 𝑖 = 1,...,𝑀 }, tal que 𝑖=1 𝑝𝑖 = 1.
Pereira e Pinto demonstram que as funções de custo futuro Q(𝑥1 ) são construídas exatamente
por funções lineares afim (cortes). Assim, utilizando apenas uma sub-amostra de valores para
𝑥1 , é possível construir cortes que podem ser utilizados no estágio anterior para prover valores da
função de custo esperada 𝒬(𝑥1 ) para qualquer valor de teste de 𝑥1 . Para calcular esses cortes, o
algoritmo performa duas iterações principais, conhecidas como passo Forward e passo Backward.
Após a definição de pontos de teste, o algoritmo prossegue para o passo Backward, onde se
refina a política ótima sugerida adicionando um novo corte a cada estágio do problema, iniciando
no último estágio e evoluindo para trás até o primeiro estágio.
para todo 𝑗 = 1,...,𝑀 , onde 𝜋𝑖𝑗 é o multiplicador simplex associado a restrição do problema
de segundo estágio do cenário 𝑗 , calculado no ponto de teste 𝑥 ˆ1𝑖 . Assim, dado o conjunto de
pontos de teste {𝑥1𝑖 , 𝑖 = 1,...,𝑛}, é possível calcular os multiplicadores associados {𝜋𝑖𝑗 , 𝑖 = 1,...,𝑛}
para todo 𝑗 = 1,...,𝑀 , resolvendo (3.13) para todo 𝑗 com o conjunto de pontos de teste acima.
Como a aproximação da função de custo futura obtida utiliza apenas parte da totalidade de
hiperplanos de corte que definem a função de custo futuro de cada um dos M cenários, ela é o
limite inferior da função de custo futuro de cada cenário, e o problema de primeiro estágio se
torna
{︂
min 𝑐1 𝑥1 + 𝒬(𝑥1 )
𝑧= (3.14)
𝐴1 𝑥1 ≥ 𝑏1
Um limite inferior sobre o valor ótimo é assim definido como o custo esperado de primeiro
estágio, que é a soma dos custo presente e custos esperados futuros aproximados. O limite su-
perior 𝑧¯, por sua vez, é definido como a estimativa do custo esperado total obtido ao se avaliar
a política ótima definida pelos cortes em diversos cenários. A proximidade estatística entre um
limite inferior e superior observa a convergência entre os passos Backward e Forward, e é testada
por algum tipo de critério de parada. Um candidato a critério de parada é a diferença entre 𝑧¯ e 𝑧
ser inferior a um farrafo. Caso o critério de parada não seja atendido após a realização de dados
passos Forward e Backwards, deve ser feita nova iteração, determinando vértices adicionais para
refinar a aproximação. Para a escolha dos pontos de teste, Pereira e Pinto sugerem simulações
de Monte Carlo da amostra de cenários.
O método SDDP para problemas multiestágios pode ser vista em detalhe no algoritmo para
𝑇 estágios abaixo.
Passo Forward. A cada iteração 𝑘 , o algoritmo aproxima 𝒬𝑡 por 𝒬𝑘𝑡 (𝑥) = max1≤𝑗≤𝑘 𝛼𝑡𝑗 +
⟨𝛽𝑡𝑗 ,𝑥⟩. No início de cada iteração é sorteado um cenário 𝜉2𝑘 ,...,𝜉𝑇𝑘 a partir dos 𝑀 cenários exis-
tentes.
Como visto acima, no passo Forward, são calculados o valor final da função objetivo e as
políticas escolhidas a cada estágio. O objetivo é determinar bons valores de teste com base nas
políticas ótimas {𝑥𝑘𝑡 , 𝑡 = 1,...,𝑇 − 1} do problema (3.16). Esses valores seráo utilizados no passo
Backward seguinte do algoritmo, para gerar novo corte para aproximar a função de custo futura
de cada estágio.
Na primeira iteração o algoritmo inicia tomando como pontos de teste qualquer política fac-
tível, i.e., 𝑥1𝑡 ∈ 𝑋𝑡 (𝑥1𝑡−1 ,𝜉𝑡1 ).
∑︀ Do passo Forward deve-se também computar a média 𝑧¯𝑁 e o desvio padrão 𝜎𝑁 do custo total
(𝑐𝑘 )𝑇 𝑥𝑘 dos últimos 𝑁 passos Forward.
𝑡=1,...,𝑇 𝑡 𝑡
Passo Backward. No passo Backward é calculado um novo corte para aproximação das
funções de custo futuro.
Assim, para 𝑡 = 𝑇,...,2, resolve-se o problema abaixo para todos os cenários possíveis 𝑗 =
1, . . . ,𝑀 ,
⎨ min 𝑐𝑇𝑡,𝑗 𝑥𝑡 + 𝑓
⎧
onde 𝛽 corresponde ao corte definido pela solução dual do problema acima. Denotando por 𝜋𝑡𝑗 𝑘
Para 𝑡 = 1, resolvemos
21
⎨ min 𝑐𝑇1 𝑥𝑡 + 𝑓
⎧
𝑥1 ∈ 𝑋1 (𝑥0 , 𝜉1 ), (3.18)
𝑓 ≥ 𝛼1ℓ + ⟨𝛽2ℓ , 𝑥1 ⟩, ℓ = 1, . . . ,𝑘,
⎩
A prova de convergência do método de SDDP para problemas lineares foi feita em [61]. Diversos
incrementos e extensões ao SDDP foram propostas, incluindo variantes para aversão ao risco
([35], [37], [49]), além de fórmulas de corte para problemas não lineares ([31]) e regularizações
para problemas lineares ([3]) e não lineares ([34]). As provas de convergência para problemas não
lineares foram feitas em [28] para problemas com neutralidade ao risco e em [31] para problemas
risco-avesso.
Uma outra variante possível do algoritmo clássico do SDDP adiciona múltiplos cortes a cada
estágio, por iteração. Chamaremos essa técnica de Multicut Decomposition Algorithm (MuDA).
Esse método possui a vantagem de diminuir a quantidade necessária de iterações para que se
satisfaça o critério de parada, dado que cada iteração calcula centenas de cortes a mais que
uma iteração do SDDP convencional, gerando mais rapidamente boas aproximações das funções
de custo futuro. Por outro lado, a adição de cortes aumenta a complexidade de cada iteração,
fazendo com que o tempo computacional despendido por iteração pode elevar o tempo total de
convergência do algoritmo em relação ao SDDP convencional, mesmo com menos iterações. Para
experimentos númericos ver [70].
Assim como são possíveis estratégias de seleção de corte para aceleração da convergência do
método SDDP, também deveriam ser úteis estratégias de seleção de corte para MuDA. Ao aplicar
seleção de cortes ao algoritmo, previne-se que cada iteração adicional resolva os subproblemas
dos passos Backward e Forward com mais restrições do que o necessário, permitindo ganhos de
eficiência nos cálculos de cada subproblema. Chamaremos de Cut Selection for Multicut De-
composition Algorithms (CuSMuDA) os algoritmos que utilizam estratégias de seleção de corte
acoplados com o método MuDA. Até o nosso conhecimento não foi proposto na literatura este
tipo de combinação de técnicas.
22
3.2 Modelos
Nesta seção, apresentaremos o modelo de seleção de carteira utilizado em nosso trabalho, além
dos algoritmos de MuDA e CuSMuDA para esta aplicação. Para este segundo algoritmo, apre-
sentaremos as duas estratégias de seleção de corte utilizadas em nosso trabalho: a primeira é a
estratégia de seleção de corte denominada Level 1 citada na seção anterior, que já possui espaço
na literatura aplicada a modelos SDDP simples; a segunda foi descrita em [32] (no contexto da
DDP), onde apenas o corte mais antigo é selecionado. Chamaremos pelos nomes de CuSMuDA
CS 1 e CuSMuDA CS 2 os algoritmos de CuSMuDA com as respectivas estratégias de seleção
de corte.
Suponha 𝑥𝑡 ∈ R𝑛+1 + o vetor que representa o valor financeiro investido nos 𝑛 ativos arris-
cados e no ativo sem risco 𝑛 + 1, de modo que 𝑥𝑡 (𝑖) representa o investido no ativo 𝑖 para
𝑖 = 1,...,𝑛 + 1 ao final do período 𝑡 para 𝑡 = 1,...,𝑇 . Suponha que para 𝑡 = 1,...,𝑇 cada ativo
arriscado (𝑖 = 1,...,𝑛) possua sua respectiva taxa de retorno 𝜉𝑡 (𝑖) = 𝑟𝑡 (𝑖), desconhecida no mo-
mento da decisão, enquanto o retorno do ativo sem risco 𝜉𝑡 (𝑛 + 1) = 𝑟𝑡 (𝑛 + 1) é determinístico e
conhecido a priori, i.e., 𝑟𝑡 (𝑛 + 1) = 𝑟(𝑛 + 1) para todo 𝑡. Considere 𝑦𝑡 = (𝑦𝑡 (1),...,𝑦𝑡 (𝑛)) ∈ R𝑛+ e
𝑧𝑡 = (𝑧𝑡 (1),...,𝑧𝑡 (𝑛)) ∈ R𝑛+ os conjuntos de valores em dólar vendidos e comprados dos n ativos ao
final de cada período 𝑡, respectivamente, e 𝜂𝑡𝑖 > 0 e 𝜈𝑡𝑖 > 0, 𝑖 = 1,...,𝑛 os custos diretos de transa-
ção de venda e de compra do i-ésimo ativo no período 𝑡, respectivamente. Supondo que a riqueza
inicial 𝑊0 seja distribuída entre os 𝑛 + 1 ativos, considere 𝑥0 = (𝑥0 (1),...,𝑥0 (𝑛 + 1)) ∈ R𝑛+1 + a
∑︀𝑛+1
distribuição inicial, conhecida, onde 𝑖=1 𝑥0 (𝑖) = 𝑊0 .
{︂
𝑥𝑡 (𝑖) = 𝑥𝑡−1 (𝑖)𝑟𝑡 (𝑖) − 𝑦𝑡 (𝑖) + 𝑧𝑡 (𝑖), 𝑖 ∑︀
= 1, . . . ,𝑛,
(3.19)
𝑥𝑡 (𝑛 + 1) = 𝑥𝑡−1 (𝑛 + 1)𝑟𝑡 (𝑛 + 1) + 𝑛𝑖=1 (1 − 𝜂𝑡𝑖 )𝑦𝑡 (𝑖) − 𝑛𝑖=1 (1 + 𝜈𝑡𝑖 )𝑧𝑡 (𝑖),
∑︀
A equação (3.19) diz que, o valor investido em um ativo arriscado 𝑖, 𝑖 = 1,..., 𝑛 ao final
do período 𝑡, 𝑥𝑡 (𝑖) será equivalente ao rendimento do ativo ao longo do período (𝑥𝑡−1 (𝑖)𝑟𝑡 (𝑖))
menos a quantidade vendida do ativo no período 𝑡, 𝑦𝑡 (𝑖), acrescida da quantidade comprada
do ativo no mesmo período, 𝑧𝑡 (𝑖). Equivalentemente, o valor total investido no ativo sem risco
ao final do período 𝑡, 𝑥𝑡 (𝑛 + 1) será equivalente ao rendimento do ativo ao longo do período
(𝑥𝑡−1 (𝑛 + 1)𝑟𝑡 (𝑛 + 1)) acrescido do total recebido∑︀pela venda de ativos arriscados no período
𝑡 (descontados os custos de transação de venda), 𝑛𝑖=1 (1 − 𝜂𝑡𝑖 )𝑦𝑡 (𝑖) e descontado o total gasto
na
∑︀𝑛compra de ativos arriscados no período 𝑡 (considerando os custos de transação de compra),
(1 + 𝜈 𝑖 )𝑧 (𝑖).
𝑖=1 𝑡 𝑡
min − 𝑛+1
{︂ ∑︀
Q𝑇 (𝑥𝑇 −1 , 𝑟𝑇 −1 ) = 𝑖=1 E[𝑟𝑇 (𝑖)]𝑥𝑇 (𝑖) (3.20)
(𝑥𝑇 ,𝑦𝑇 ,𝑧𝑇 ) ∈ 𝒳 (𝑥𝑇 −1 , 𝑟𝑇 −1 ),
23
e para 𝑡 = 2, . . . ,𝑇 − 1,
{︂
min 𝒬𝑡+1 (𝑥𝑡 )
Q𝑡 (𝑥𝑡−1 , 𝑟𝑡−1 ) = (3.21)
(𝑥𝑡 ,𝑦𝑡 ,𝑧𝑡 ) ∈ 𝒳 (𝑥𝑡−1 , 𝑟𝑡−1 ).
No primeiro estágio resolvemos
3.2.2 MuDA
MuDA se baseia em, a cada iteração 𝑘 , aproximar Q𝑡 (·, 𝑟𝑡−1,𝑗 ) por Q𝑘𝑡 (𝑥, 𝑟𝑡−1,𝑗 ) = max1≤ℓ≤𝑘𝑁 ⟨𝛽𝑡,𝑗
ℓ , 𝑥⟩,
(ℓ−1)𝑁 +𝑘
onde 𝛽𝑡,𝑗 , 1 ≤ 𝑘 ≤ 𝑁 , é um corte calculado na iteração ℓ para o estágio 𝑡 e cenário 𝑗 da
variável aleatória 𝑟𝑡−1,𝑗 de retornos, com 𝑗 = 1,...,𝑀 finito, onde o conjunto de possíveis realiza-
ções dos retornos 𝑟𝑡−1 é finito: 𝑟𝑡−1,𝑗 , 𝑗 = 1, . . . ,𝑀 .
Desta forma, ele difere do algoritmo clássico do SDDP por considerar cada corte calculado
para cada cenário e para cada estágio, ao invés de calcular apenas um corte resultante da expec-
tativa de todos os cenários a cada estágio.
O algoritmo MuDA, aplicado ao problema de seleção de carteira, pode ser acessado pelo
pseudocódigo abaixo. [︁ ]︁
Seja 𝒬𝑡 (𝑥𝑡−1 ) = E Q𝑡 (𝑥𝑡−1 , 𝑟𝑡−1 ) para 𝑡 = 2, . . . ,𝑇 .
Na iteração 𝑘 , aproximamos Q𝑡 (·, 𝑟𝑡−1,𝑗 ) por Q𝑘𝑡 (𝑥, 𝑟𝑡−1,𝑗 ) = max1≤ℓ≤𝑘𝑁 ⟨𝛽𝑡,𝑗
ℓ , 𝑥⟩.
Passo forward da iteração 𝑖. São gerados 𝑁 cenários 𝜉˜𝑘 = (𝜉˜2𝑘 ,...,𝜉˜𝑇𝑘 ), 𝑘 = (𝑖 − 1)𝑁 +
1,...,𝑖𝑁 de (𝜉2 ,...,𝜉𝑇 ) e é resolvido o problema abaixo para 𝑘 = (𝑖 − 1)𝑁 + 1,...,𝑖𝑁 e 𝑡 = 1,...,𝑇 − 1
⎧ ∑︀𝑀𝑡
⎨ min 𝑗=1 𝑝𝑡+1ℓ 𝑓ℓ
𝑥𝑡 ∈ 𝒳𝑡 (𝑥𝑘𝑡−1 , 𝜉˜𝑡𝑘 ), (3.23)
⎩ 𝑚 , 𝑥 ⟩, 𝑚 = 1, . . . ,(𝑖 − 1)𝑁,
𝑓ℓ ≥ ⟨𝛽𝑡+1ℓ 𝑡
começando com (𝑥𝑘0 ,𝜉˜1𝑘 ) = (𝑥0 , 𝜉1 ). Seja 𝑥𝑘𝑡 a solução ótima. Para 𝑡 = 𝑇 e 𝑘 = (𝑖 − 1)𝑁 +
1, . . . ,𝑖𝑁 resolvemos
min − 𝑛+1
{︂ ∑︀
𝑖=1 E[𝜉𝑇 +1 (𝑖)]𝑥𝑇 (𝑖) (3.24)
𝑥𝑇 ∈ 𝒳𝑇 (𝑥𝑘𝑇 −1 , 𝜉˜𝑇𝑘 ),
⎯
𝑖𝑁 𝑇 ⎸ 𝑖𝑁 𝑇
𝑖 1 ∑︁ ∑︁ ⎸1 ∑︁ (︀ ∑︁ 𝑖 )︀2
𝐶𝑢𝑠𝑡𝑜 = 𝑘 𝑘 𝑖
𝑐˜𝑡 𝑥𝑡 , 𝜎 = ⎷ 𝑐˜𝑘𝑡 𝑥𝑘𝑡 − 𝐶𝑢𝑠𝑡𝑜 . (3.25)
𝑁 𝑁
𝑘=(𝑖−1)𝑁 +1 𝑡=1 𝑘=(𝑖−1)𝑁 +1 𝑡=1
24
𝑖 𝜎𝑖
𝑖
𝑧𝑠𝑢𝑝 = 𝐶𝑢𝑠𝑡𝑜 + √ Φ−1 (1 − 𝛼) (3.26)
𝑁
onde Φ−1 (1 − 𝛼) é o quantil (1 − 𝛼) da distribuição Normal padrão.
min − 𝑛+1
{︂ ∑︀
𝑖=1 E[𝑟𝑇 (𝑖)]𝑥𝑇 (𝑖) (3.27)
𝑥𝑇 ∈ 𝒳𝑇 (𝑥𝑘𝑇 −1 , 𝜉𝑇 𝑗 ),
e para 𝑡 = 𝑇 − 1,...,2, 𝑗 = 1, . . . 𝑀 ,
⎧ ∑︀𝑀
⎨ min ℓ=1 𝑝𝑡+1ℓ 𝑓ℓ
𝑥 ∈ 𝒳𝑡 (𝑥𝑘𝑡−1 , 𝜉𝑡𝑗 ), (3.28)
⎩ 𝑡 𝑚 , 𝑥 ⟩, 𝑚 = 1, . . . ,𝑖𝑁.
𝑓ℓ ≥ ⟨𝛽𝑡+1ℓ 𝑡
Para o problema acima (problema (3.27) para 𝑡 < 𝑇 e problema (3.28) para 𝑡 = 𝑇 ) com
realização 𝜉𝑡𝑗 de 𝜉𝑡 , e denotando por 𝜆𝑘𝑡𝑗 o multiplicador de Lagrange associado às restrições de
igualdade computamos
𝑘
𝛽𝑡𝑗 = 𝜆𝑘𝑡𝑗 ∘ 𝜉𝑡𝑗 , (3.29)
lembrando que o vetor 𝑥 ∘ 𝑦 tem componentes (𝑥 ∘ 𝑦)(𝑖) = 𝑥(𝑖)𝑦(𝑖) para vetores 𝑥,𝑦 .
3.2.3 CuSMuDA
Como dito anteriormente, CuSMuDA é a variante do MuDA que utiliza estratégias de seleção
de cortes, resolvendo os problemas dos passos Forward e Backward utilizando uma aproximação
de Q𝑘𝑡 (𝑥, 𝑟𝑡−1,𝑗 ) que considera apenas um subconjunto do total de cortes calculados até a itera-
ção considerada. Com isso, o número de restrições adicionadas aos problemas de otimização de
cada estágio dos passos Forward e Backwards é reduzido, otimizando o gasto computacional do
algoritmo a cada iteração.
Seja 𝑆𝑡𝑗 𝑘 o conjunto que reúne os índices dos cortes selecionados ao final da iteração 𝑘 para
onde 𝐶𝑡𝑗
ℓ é o corte calculado para o cenário 𝑗 estágio 𝑡 na iteração ℓ.
25
onde 𝐼𝑡𝑗
𝑖𝑘 = argmax𝐶 𝑙 (𝑥𝑖 ).
𝑡𝑗 𝑡−1
ℓ=1,...,𝑘
Esta estratégia foi apresentada em dois trabalhos no contexto do SDDP: [60] onde foi cha-
mada de Level 1, e [59], onde foi chamada de Territory Algorithm.
altos neste ponto (definido no parágrafo anterior) e selecionamos o mais velho desses cortes.
Esta estratégia de corte foi apresentada pela primeira vez em [32] no contexto do método
DDP, sendo diretamenteo aplicável para SDDP e MUDA, e implica que, em um dado ponto de
teste, sempre selecionaremos o corte mais velho dentre todos os cortes que obtém valor máximo
neste ponto, i.e., selecionaremos o corte que foi computado primeiro.
O Anexo VII expõe os pseudo-códigos das duas estratégias de corte apresentadas.
O algoritmo CuSMuDA é obtido incluindo no algoritmo MuDA uma das duas estratégias de
seleção de corte acima mencionadas após o cálculo dos cortes no passo Backward.
3.3 Resultados
Para cada estágio 𝑡, a distribuição de 𝑟𝑡 (1 : 𝑛) possui 𝑀 realizações 𝑟𝑡1 (1 : 𝑛), . . . ,𝑟𝑡𝑀 (1 : 𝑛),
com 𝑝𝑡𝑖 = 𝑃 (𝑟𝑡 = 𝑟𝑡𝑖 ) = 1/𝑀 e 𝑟1 (1 : 𝑛), 𝑟𝑡1 (1 : 𝑛),...,𝑟𝑡𝑀 (1 : 𝑛) são sorteados aleatoriamente da
série histórica de retornos diários de 𝑛 ativos do Índice S&P 500, no período entre 18/5/2009 e
28/5/2015. Os ativos escolhidos da amostra, para cada configuração do valor de 𝑛 do problema,
encontram-se na tabela 3.1.
O retorno diário do ativo livre de risco 𝑟𝑡 (𝑛 + 1) é 0,1% para todo 𝑡. Os custos de transação
são conhecidos, com 𝜈𝑡 (𝑖) = 𝜂𝑡 (𝑖), ∀𝑡; ∀𝑖 obtidos sorteando da distribuição 0,08 + 0,06 cos( 2𝜋
𝑇 𝑈𝑇 ),
onde 𝑈𝑇 é uma variável aleatória com distribuição discreta uniforme no conjunto {1,2,...,𝑇 }.
e 𝑧𝑠𝑢𝑝
𝐾 computados na última iteração 𝐾 dos algoritmos deveriam ser próximos do valor ótimo
𝒬1 (𝑥0 ) do problema. Como não sabemos o valor ótimo 𝒬1 (𝑥0 ) do problema, os valores compu-
𝐾 e 𝑧 𝐾 deveriam ser próximos em todos os três algoritmos. É possível observar na
tados para 𝑧𝑖𝑛𝑓 𝑠𝑢𝑝
figura 3.1 que, nos três algoritmos implementados este é o caso. Além disso, o comportamento
das séries é em linha com o esperado, com uma tendência de crescimento do limite inferior e de
queda do limite superior a cada iteração.
Em todos os algoritmos, poucas iterações são necessárias para satisfazer o critério de pa-
rada, não sendo necessárias mais que sete iterações para a convergência no modelo MuDA, por
exemplo. Ainda que haja poucas iterações, é importante lembrar que uma imensa quantidade de
cortes está sendo computada por iteração. Para ilustrar, no modelo de portfólio (𝑇,𝑛) = (8,6)
implementado com o algoritmo MuDA, com a nossa configuração do problema, o número de
cortes calculados por iteração e por estágio é de 𝑁 𝑀 = 200 × 20 = 4.000 para todo 𝑡, o que, con-
siderando que foram necessárias 7 iterações para a convergência, totaliza 7(𝑇 − 1)𝑀 𝑁 = 196.000
cortes calculados até a convergência do método.
Tempo computacional
O tempo computacional de cada algoritmo para cada versão do problema de portfolio encontra-
se na tabela 3.2. Como podemos observar, o algoritmo CuSMuDA CS1 demanda entre 40% e
105% mais tempo para solucionar o problema que o algoritmo MuDA. Por outro lado, o CuS-
MuDA CS 2 é consistentemente mais eficiente que os outros dois algoritmos (entre 5,1 e 12,6
vezes mais rápido que o MuDA e entre 10,3 e 21,9 vezes mais rápido que o CuSMuDA CS1), em
qualquer versão do problema de portfólio considerada.
−23.4 −33
−23.6
−33.5
−23.8
−24 −34
MuDA
−24.2 CuSMuDA CS 1
−34.5 CuSMuDA CS 2
MuDA
−24.4 CuSMuDA CS 1
CuSMuDA CS 2
−35
−24.6
−24.8 −35.5
−25
−36
−25.2
−25.4 −36.5
1 2 1 2 3
Iteration Iteration
(a) 𝑇 = 5, 𝑛 = 4, 𝑀 = 20 (b) 𝑇 = 5, 𝑛 = 5, 𝑀 = 20
−32
−34
−33 −34.5
−34 −35
−35.5 MuDA
−35 MuDA
CuSMuDA CS 1
CuSMuDA CS 1
−36 CuSMuDA CS 2
−36 CuSMuDA CS 2
−36.5
−37
−37
−38
−37.5
−39
−38
−40 −38.5
1 2 3 4 5 1 2 3
Iteration Iteration
(c) 𝑇 = 5, 𝑛 = 6, 𝑀 = 20 (d) 𝑇 = 8, 𝑛 = 4, 𝑀 = 10
−12 −20
−13
−14 −25
−15
−16 −30
−17
−21
−22 −45
1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9
Iteration Iteration
(e) 𝑇 = 8, 𝑛 = 4, 𝑀 = 10 (f) 𝑇 = 8, 𝑛 = 6, 𝑀 = 10
fato, a complexidade de cada problema de otimização realizado nos passos Forward e Backward
pode ser substancialmente reduzida se há menos restrições a serem consideradas. Por outro lado,
selecionar os melhores cortes implica em comparar cortes para cada ponto teste existente, a cada
iteração, o que pode também aumentar o tempo computacional do algoritmo.
Como podemos ver nas figuras 3.2 a 3.4, a proporção média (ao longo das iterações) de cortes
selecionados no CuSMuDA CS 2 é inferior a 5% para todos os estágios, em qualquer variante do
modelo de seleção de portfólio, o que significa que uma grande quantidade de cortes possuem o
mesmo valor para alguns pontos de teste e que, para cada um destes pontos, enquanto o algo-
ritmo CuSMuDA CS 1 seleciona todos os cortes, o algoritmo CuSMuDA CS 2 seleciona apenas o
mais antigo desses cortes. Isso permite que os problemas de otimização resolvidos no algoritmo
CuSMuDA tenham menor complexidade, refletindo em maior eficiência deste algoritmo quando
comparado ao CuSMuDA CS 2. Ainda, pela proporção de cortes selecionados ser deveras baixa,
o algoritmo consegue ter um ganho de performance relacionado a resolução das subrotinas de
otimização em ordem muito superior ao tempo computacional que é demandado para selecio-
nar os cortes, fazendo com que o CuSMuDA CS 2 também seja muito mais eficiente que o MuDA.
Por outro lado, o algoritmo CuSMuDA CS 1 seleciona, em média, pelo menos 60% dos cortes
computados por iteração, com todos os cortes sendo selecionados no último estágio (como espe-
rado). Pela proporção de cortes selecionados ser alta, a redução de complexidade dos problemas
de otimização das subrotinas do algoritmo não conseguem compensar o tempo computacional
demandado para selecionar os cortes, fazendo com que o algoritmo CuSMuDA CS 2 seja menos
eficiente que o algoritmo MuDA.
As figuras 3.3 e 3.4 mostram a evolução da proporção média de cortes selecionados (ao longo
das iterações do algoritmo) para Q𝑡 (·, 𝑟𝑡𝑗 ) como função de 𝑗 = 1,...,𝑀 . Além de mostrar conclu-
sões similares as acima, os gráficos dessas figuras revelam que a proporção de cortes selecionados
para as funções Q𝑡 (·, 𝑟𝑡𝑗 ) como função de 𝑗 = 1,...,𝑀 são bastante similares para cada 𝑗 .
Por fim, é necessário notar que, apesar de ser esperado que o CuSMuDA CS 1 selecionasse
todos os cortes no último estágio, nossa primeira implementação do algoritmo resultou na eli-
minação de alguns cortes no último estágio. Isso ocorre devido ao fato que os problemas de
otimização das subrotinas computam valores aproximados para solução. Portanto, dois pro-
blemas de otimização poderiam computar os mesmos cortes e ainda assim retornar soluções
aproximadas diferentes, ainda que muito próximas. Similarmente, um corte pode ser, em teoria,
o maior para algum ponto teste, mas numericamente o valor de outro corte neste ponto pode
ser considerado marginalmente maior devido aos erros numéricos. Para resolver tal problema
de implementação, introduzimos um pequeno termo de erro 𝜖0 (𝜖0 = 10−6 nas nossas simula-
ções) tal que dois valores 𝑉1 e 𝑉2 de dois cortes 𝒞1 e 𝒞2 em um ponto teste são considerados
29
1
1
0.9
CuSMuDA CS 1 0.8
0.8
CuSMuDA CS 2
0.7
CuSMuDA CS 1
0.6 CuSMuDA CS 2
0.6
0.5
0.4 0.4
0.3
0.2 0.2
0.1
0 0
2 3 4 5 2 3 4 5
Stage Stage
(a) 𝑇 = 5, 𝑛 = 4, 𝑀 = 20 (b) 𝑇 = 5, 𝑛 = 5, 𝑀 = 20
1
1
0.9
0.8 CuSMuDA CS 1
0.8
CuSMuDA CS 2
0.7 CuSMuDA CS 1
CuSMuDA CS 2
0.6
0.6
0.5
0.4 0.4
0.3
0.2 0.2
0.1
0 0
2 3 4 5 2 3 4 5 6 7 8
Stage Stage
(c) 𝑇 = 5, 𝑛 = 6, 𝑀 = 20 (d) 𝑇 = 8, 𝑛 = 4, 𝑀 = 10
1
1
0.9
0.9
0.8 0.8
0.7 0.7
0.6 0.6
CuSMuDA CS 1
0.5 CuSMuDA CS 2
0.5
CuSMuDA CS 1
0.4 CuSMuDA CS 2 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
2 3 4 5 6 7 8 2 3 4 5 6 7 8
Stage Stage
(e) 𝑇 = 8, 𝑛 = 5, 𝑀 = 10 (f) 𝑇 = 8, 𝑛 = 6, 𝑀 = 10
Figura 3.2: Proporção média de cortes selecionados (ao longo das iterações do algoritmo) para
os estágios 𝑡 = 2,...,𝑇 pelos modelos CuSMuDA CS1 e CuSMuDA CS2
30
0.06
1
Stage 2
Stage 3
0.05 Stage 4
0.8 Stage 5
0.04
0.6
Stage 2
Stages 3, 4, 5 0.03
0.4
0.02
0.2
0.01
0
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
j j
0.8
0.04
0.75
0.03
0.7
0.02
0.65
0.01
0.6
0.55 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
j j
1 Stage 2
0.06 Stage 3
Stage 4
0.95
Stage 5
0.05
0.9 Stage 2
Stage 3
Stages 4, 5 0.04
0.85
0.8
0.03
0.75
0.02
0.7
0.01
0.65
0.6 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
j j
Figura 3.3: Representação para os estágios 𝑡 = 2,...,𝑇 , com 𝑇 = 5, da proporção média de cortes
(ao longo das iterações dos algoritmos) selecionados para Q𝑡 (·,𝑟𝑡𝑗 ) como função de 𝑗 = 1,...,𝑀
e 𝑀 = 20. Gráficos da esquerda consideram o modelo CuSMuDA CS 1 e gráficos da direita o
modelo CuSMuDA CS 2.
31
0.07
1 Stage 2
0.06 Stage 3
Stage 4
Stage 5
0.8 Stage 6
0.05
Stage 7
Stage 8
0.04
0.6
0.03
0.4 Stage 2
Stage 3
Stages 4, 5 0.02
Stages 6, 7, 8
0.2
0.01
0 0
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
j j
0.9
0.02
0.8
0.7 0.015
0.6 Stage 2
Stage 3
0.01 Stage 4
0.5 Stage 5
Stage 6
Stages 2, 5 Stage 7
0.4 Stage 3 Stage 8
0.005
Stage 4
0.3 Stage 6
Stage 7
Stage 8
0.2 0
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
j j
1 Stage 2
0.08
Stage 3
0.9 Stage 4
0.07 Stage 5
0.8 Stage 6
0.06 Stage 7
0.7 Stage 8
0.6 0.05
0.5 0.04
0.4 Stage 2
Stage 3 0.03
0.3 Stage 4
Stage 5
0.02
0.2 Stages 6, 7
Stage 8
0.01
0.1
0 0
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
j j
Figura 3.4: Representação para os estágios 𝑡 = 2,...,𝑇 , com 𝑇 = 8, da proporção média de cortes
(ao longo das iterações dos algoritmos) selecionados para Q𝑡 (·,𝑟𝑡𝑗 ) como função de 𝑗 = 1,...,𝑀
e 𝑀 = 10. Gráficos da esquerda consideram o modelo CuSMuDA CS 1 e gráficos da direita o
modelo CuSMuDA CS 2.
32
iguais se |𝑉2 − 𝑉1 | ≤ 𝜖0 𝑚𝑎𝑥(1,|𝑉1 |), enquanto 𝒞1 é considerado maior que 𝒞2 neste ponto teste se
𝑉1 ≥ 𝑉2 + 𝜖0 𝑚𝑎𝑥(1,|𝑉1 |). Portanto, os pseudo códigos informados anteriormente foram levemente
modificados, como pode ser conferido no Anexo XIII.
Capítulo 4
Conclusão
O presente trabalho se dedicou ao estudo de dois problemas matemáticos distintos, aplicados ao
mundo real.
No primeiro foi feito estudo econométrico de modelagem de séries de oferta de sangue, in-
cluindo estimação e geração de trajetórias futuras. Foram utilizados dados do HEMORIO para
a estimação, apesar da abordagem ser suficientemente generalista para poder ser adaptada a
outras séries de oferta de sangue. As séries de oferta de sangue foram estimadas por Vetores
Autorregressivos (VAR). As trajetórias futuras geradas através das duas técnicas de Bootstrap
estudadas obtiveram expectativa e intervalos de confiança similares e em linha com o esperado,
mostrando-se ambas adequadas e abordagens possíveis para melhorar a previsibilidade das séries
de oferta de sangue.
Próximos passos de interesse incluem a realização de estudo similar para as séries de demanda
de sangue pelos múltiplos hospitais atendidos pela Hemorrede do Estado do Rio de Janeiro e
utilização das estimações para modelos de gestão de bancos de sangue.
O segundo estudo foi dedicado a extensões do algoritmo de Programação Dinâmica Dual Es-
tocástica (Stochastic Dual Dynamic Programming, SDDP). Comparamos dois algoritmos, MuDA
e CuSMuDA, aplicados a seis casos do problema de seleção de carteira. Resultados mostraram
a atratividade do modelo proposto CuSMuDA CS2, que obteve tempos computacionais entre
5,1 e 12,6 vezes menores que o MuDA e entre 10,3 e 21,9 vezes menores que o CuSMuDA CS1.
O trabalho contribuiu com a literatura de otimização estocástica graças à proposta do uso de
estratégias de seleção de corte à extensão de multicortes do SDDP, e particularmente ao sugerir o
uso da estratégia de seleção de cortes Limited Memory Level 1 no caso estocástico. A estratégia
permite ganhos de velocidade de convergência do algoritmo e pode ser aplicada a qualquer pro-
blema prático que necessite de técnicas de otimização estocástica e programação dinâmica linear.
Próximos passos de interesse a este estudo incluem a implementação dos algoritmos a outros
problemas além de seleção de carteira e estudo de convergência do método.
Referências Bibliográficas
[1] H. Akaike, B.N. Petrov, and F. Csaki. Information theory and an extension of the maximum
likelihood principle. Springer, 1973.
[2] L. Andrieu, R. Henrion, and W. Römisch. A model for dynamic chance constraints in hydro
power reservoir management. European Journal of Operational Research, 207:579–589, 2010.
[4] E.M.L. Beale. On minimizing a convex function subject to linear inequalities. Journal of
the Royal Statistical Society. Series B (Methodological), pages 173–184, 1955.
[5] A. Ben-Tal, T. Margalit, and A. Nemirovski. Robust modeling of multi-stage portfolio
problems. In High performance optimization, pages 303–328. Springer, 2000.
[6] J. Berkowitz and L. Kilian. Recent developments in bootstrapping time series. Econometric
Reviews, 19(1):1–48, 2000.
[7] M.J. Best and J. Hlouskova. An algorithm for portfolio optimization with transaction costs.
Management Science, 51(11):1676–1688, 2005.
[8] J.R. Birge. Decomposition and partitioning methods for multistage stochastic linear pro-
grams. Operations research, 33(5):989–1007, 1985.
[9] J.R. Birge and F. Louveaux. Introduction to stochastic programming. series in operations
research and financial engineering, 1997.
[10] J.R. Birge and F.V. Louveaux. A multicut algorithm for two-stage stochastic linear pro-
grams. European Journal of Operational Research, 34(3):384–392, 1988.
[11] W.A. Broock, J.A. Scheinkman, W.D. Dechert, and B. LeBaron. A test for independence
based on the correlation dimension. Econometric reviews, 15(3):197–235, 1996.
[12] N. Buras. Dynamic programming in water resources development. Academic Press, 1966.
[13] G. Casella and R.L. Berger. Statistical inference, volume 2. Duxbury Pacific Grove, CA,
2002.
[15] M.R. Chernick. Bootstrap methods: A guide for practitioners and researchers, john wilery
& sons. Inc., Hoboken, New Jersey, 2008.
[16] P.D. Cumming, K.E. Kendall, C.C. Pegels, J.P. Seagle, and J.F. Shubsda. A collections
planning model for regional blood suppliers: description and validation. Management Sci-
ence, 22(9):962–971, 1976.
35
[17] G. Dantzig, A. Orden, and P. Wolfe. The generalized simplex method for minimizing a linear
form under linear inequality restraints. Pacific Journal of Mathematics, 5(2):183–195, 1955.
[18] R. Davidson and J. G. MacKinnon. Econometric theory and methods, volume 5. Oxford
University Press New York, 2004.
[19] B. Efron and R.J. Tibshirani. An introduction to the bootstrap: Monographs on statistics
and applied probability, vol. 57. New York and London: Chapman and Hall/CRC, 1993.
[20] R.C. Elston and J.C. Pickrel. A statistical approach to ordering and usage policies for a
hospital blood bank. Transfusion, 3(1):41–47, 1963.
[21] R.C. Elston and J.C. Pickrel. Guides to inventory levels for a hospital blood bank determined
by electronic computer simulation. Transfusion, 5(5):465–470, 1965.
[22] W. Enders. Applied econometric time series. John Wiley & Sons, 2008.
[23] N. Erkip, W.H. Hausman, and S. Nahmias. Optimal centralized ordering policies in multi-
echelon inventory systems with correlated demands. Management Science, 36(3):381–392,
1990.
[24] G. Schwarz et al. Estimating the dimension of a model. The annals of statistics, 6(2):461–
464, 1978.
[25] G.M. Frankfurter, K.E. Kendall, and C.C. Pegels. Management control of blood through a
short-term supply-demand forecast system. Management Science, 21(4):444–452, 1974.
[26] D. Fresoli, E. Ruiz, , and L. Pascual. Bootstrap multi-step forecasts of non-gaussian var
models. International Journal of Forecasting, 31(3):834–848, 2015.
[29] S.K. Goyal and B.C. Giri. Recent trends in modeling of deteriorating inventory. European
Journal of operational research, 134(1):1–16, 2001.
[30] V. Guigues. SDDP for some interstage dependent risk-averse problems and application to
hydro-thermal planning. Computational Optimization and Applications, 57:167–203, 2014.
[32] V. Guigues. Dual dynamic programing with cut selection: Convergence proof and numerical
experiments. European Journal of Operational Research, 258:47–57, 2017.
[33] V. Guigues and R. Henrion. Joint dynamic probabilistic constraints with projected linear
decision rules. Optimization Methods & Software, 32:1006–1032, 2017.
[34] V. Guigues, M. Lejeune, and W. Tekaya. Regularized decomposition methods for determi-
nistic and stochastic convex optimization and application to portfolio selection with direct
transaction and market impact costs. arXiv, 2017.
36
[35] V. Guigues and W. Römisch. Sampling-based decomposition methods for multistage stochas-
tic programs based on extended polyhedral risk measures. SIAM Journal on Optimization,
22(2):286–312, 2012.
[36] V. Guigues and W. Römisch. SDDP for multistage stochastic linear programs based on
spectral risk measures. Operations Research Letters, 40:313–318, 2012.
[37] V. Guigues and C. Sagastizabal. Risk-averse feasible policies for large-scale multistage
stochastic linear programs. Mathematical Programming, 138(1-2):167–198, 2013.
[38] W. Hall and N. Buras. The dynamic programming approach to water-resources development.
Journal of Geophysical Research, 66(2):517–520, 1961.
[39] D.I. Harvey and P. Newbold. The non-normality of some macroeconomic forecast errors.
International Journal of Forecasting, 19(4):635–653, 2003.
[40] HEMORIO. 2016 (acessado em 3 de fevereiro de 2017).
[41] C.M. Jarque and A.K. Bera. Efficient tests for normality, homoscedasticity and serial inde-
pendence of regression residuals. Economics letters, 6(3):255–259, 1980.
[42] J.B. Jennings and P. Kolesar. Letter to the editor - comments on a blood-bank inventory
model of pegels and jelmert. Operations Research, 21(3):855–858, 1973.
[43] I.Z. Karaesmen, A. Scheller-Wolf, and B. Deniz. Managing perishable and aging inventories:
review and future research directions. In Planning production and inventories in the extended
enterprise, pages 393–436. Springer, 2011.
[44] K.E. Kendall. Planning for innovation in health care: a breakthrough in blood banking.
Long range planning, 17(6):127–131, 1984.
[45] L. Kilian. Accounting for lag order uncertainty in autoregressions: the endogenous lag order
bootstrap algorithm. Journal of Time Series Analysis, 19(5):531–548, 1998.
[46] L. Kilian. Confidence intervals for impulse responses under departures from normality.
Econometric Reviews, 17(1):1–29, 1998.
[47] J.H. Kim. The relationship between forward and backward representations of the stationary
var models. Econometric Theory, 14(5):691–693, 1998.
[48] J.H. Kim. Asymptotic and bootstrap prediction regions for vector autoregression. Interna-
tional Journal of Forecasting, 15(4):393–403, 1999.
[49] V. Kozmík and D.P. Morton. Evaluating policies in risk-averse multi-stage stochastic pro-
gramming. Mathematical Programming, 152(1-2):275–300, 2015.
[52] H. Lütkepohl. New introduction to multiple time series analysis. Springer Science & Business
Media, 2005.
[53] N. Metropolis and S. Ulam. The monte carlo method. Journal of the American statistical
association, 44(247):335–341, 1949.
37
[54] S. Nahmias. Optimal ordering policies for perishable. Operations Research, 23(4):735–749,
1975.
[56] S. Nahmias. Perishable inventory systems, volume 160. Springer Science & Business Media,
2011.
[57] C.C. Pegels and A.E. Jelmert. An evaluation of blood-inventory policies: A markov chain
application. Operations Research, 18(6):1087–1098, 1970.
[58] M.V.F. Pereira and L.M.V.G. Pinto. Multi-stage stochastic optimization applied to energy
planning. Mathematical programming, 52(1):359–375, 1991.
[59] L. Pfeiffer, R. Apparigliato, and S. Auchapt. Two methods of pruning Benders’ cuts and
their application to the management of a gas portfolio. PhD thesis, INRIA Report, 2012.
[60] A. Philpott, V. de Matos, and E. Finardi. Improving the performance of stochastic dual
dynamic programming. Journal of Computational and Applied Mathematics, 290:196–208,
2012.
[61] A.B. Philpott and Z. Guan. On the convergence of stochastic dual dynamic programming
and related methods. Operations Research Letters, 36(4):450–455, 2008.
[62] E.L. Porteus. Stochastic inventory theory. Handbooks in operations research and manage-
ment science, 2:605–652, 1990.
[63] G.P. Prastacos. Blood inventory management: an overview of theory and practice. Mana-
gement Science, 30(7):777–800, 1984.
[64] A. Ruszczyński. Parallel decomposition of multistage stochastic programming problems.
Mathematical programming, 58(1):201–228, 1993.
[65] A. Shapiro. Analysis of stochastic dual dynamic programming method. European Journal
of Operational Research, 209:63–72, 2011.
[66] A. Shapiro, D. Dentcheva, and A. Ruszczyński. Lectures on Stochastic Programming: Mo-
deling and Theory, second edition. SIAM, Philadelphia, 2014.
[67] R.C. Souza and A.C. Neto. A bootstrap simulation study in arma (p, q) structures. Journal
of Forecasting, 15(4):343–353, 1996.
[68] L.A. Thombs and W.R. Schucany. Bootstrap prediction intervals for autoregression. Journal
of the American Statistical Association, 85(410):486–492, 1990.
[69] A. Turgeon. A decomposition method for the long-term scheduling of reservoirs in series.
Water Resources Research, 17(6):1565–1570, 1981.
[70] W. Zhang, H. Rahimian, and G. Bayraksan. Decomposition algorithms for risk-averse mul-
tistage stochastic programs with application to water allocation under uncertainty. IN-
FORMS Journal on Computing, 28:385–404, 2016.
Anexo I: Estimações de MQO
1. Série A +:
Estimate Std. Error t value Pr(>|𝑡|)
(Intercept) 21.2842 0.7270 29.28 0.0000
pre_carnaval2013 1.0146 0.1309 7.75 0.0000
pre_carnaval2014 0.1931 0.0418 4.61 0.0000
pre_carnaval2015 0.2579 0.0793 3.25 0.0012
jan001 -62.1223 1.4353 -43.28 0.0000
campanha2013 103.7035 1.2252 84.64 0.0000
campanha2014 122.8965 1.4810 82.98 0.0000
campanha2015 127.6354 1.5786 80.86 0.0000
natal2013 -55.1329 1.4642 -37.65 0.0000
natal2014 -50.6944 1.3916 -36.43 0.0000
reveillon2013 33.9258 1.4734 23.03 0.0000
reveillon2014 62.8671 1.4642 42.94 0.0000
copa -7.1545 1.8823 -3.80 0.0002
copabrasil -20.9221 3.0157 -6.94 0.0000
seasonal1 40.2346 1.3259 30.34 0.0000
seasonal2 40.7900 1.4771 27.62 0.0000
seasonal3 41.8487 1.5572 26.88 0.0000
seasonal4 38.4102 1.3903 27.63 0.0000
seasonal5 41.9824 1.3274 31.63 0.0000
seasonal6 36.1700 1.2850 28.15 0.0000
2
Tipo A+
Actual Fitted
200
150
100
50
Resíduos OLS
60
40
20
−20
−40
Histograma resíduos
150
100
Frequency
50
0
−40 −20 0 20 40
df3
Partial ACF
0.1
0.10
ACF
0.0
0.00
−0.1
−0.10
Lag Lag
Tipo A−
30 Actual Fitted
25
20
15
10
Resíduos OLS
10
−5
Histograma resíduos
80 100
Frequency
60
40
20
0
−5 0 5 10
df3
0.10
Partial ACF
ACF
0.00
0.00
−0.10
−0.10
Lag Lag
2. Série A -:
4
3. Série B +:
5
Tipo B+
Actual Fitted
60
40
20
Resíduos OLS
30
20
10
−10
Histograma resíduos
150
100
Frequency
50
0
−20 −10 0 10 20
df3
Partial ACF
ACF
0.00
0.00
−0.10
−0.10
Lag Lag
4. Série B -:
7
Tipo B−
Actual Fitted
10
Resíduos OLS
−2
Histograma resíduos
150
100
Frequency
50
0
−2 0 2 4 6
df3
0.05
Partial ACF
ACF
0.00
0.00
−0.05
−0.05
Lag Lag
5. Série AB +:
9
Tipo AB+
Actual Fitted
25
20
15
10
Resíduos OLS
10
−5
Histograma resíduos
100
80
Frequency
60
40
20
0
−5 0 5 10
df3
0.05
Partial ACF
ACF
0.00
0.00
−0.05
−0.05
Lag Lag
6. Série O +:
11
Tipo O+
Actual Fitted
300
250
200
150
100
50
0
Resíduos OLS
50
−50
Histograma resíduos
100
Frequency
60
20
0
−50 0 50
df3
0.3
0.2
0.2
Partial ACF
ACF
0.1
0.1
0.0
0.0
−0.1
−0.1
p
Lag Lag
7. Série A -:
13
Tipo O−
60
Actual Fitted
50
40
30
20
10
Resíduos OLS
20
15
10
5
0
−5
−10
Histograma resíduos
80 100
Frequency
60
40
20
0
−15 −10 −5 0 5 10 15
df3
0.10
Partial ACF
ACF
0.00
0.00
−0.10
−0.10
Lag Lag
=======================================
ominus = aplus.l1 + aminus.l1 + bplus.l1 + bminus.l1 + abplus.l1 +
oplus.l1 + ominus.l1 + aplus.l2 + aminus.l2 + bplus.l2 + bminus.l2 +
abplus.l2 + oplus.l2 + ominus.l2
VAR(2): Resíduo A+
60
40
20
−20
−40
N(0,dp(A+))
4
●
0.030
●
●
●
●
3
●●
●●●●
0.025
●
●
●
●●
●●
●
●●
●
●●
●●
2
●
●●
●●
●
●
●●
●
●●
●
●
●●
●●
●
●●
●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●●
0.020
●
●
●●
●●
●
●
●●
●
●●
●
●
●●
Sample Quantiles
●
●●
●
●
●
●
●
●●
●
●
1
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
Density
●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
0.015
●
●
●●
●
●●
●
●●
●●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
0
●●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
0.010
●
●
●●
●
●
●●
●
●
●
●
●
●
−1
●
●●
●
●
●●
●
●●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●●
●
●●
●
●
●●
●●
0.005
●
●
●●
●
●
●
●
−2
●
●●
●
●●
●●
●
●●
●●
●
●●
●●●
●
●●●
●●●
●
●●
0.000
−3
●
● ●
−40 −20 0 20 40 60 −3 −2 −1 0 1 2 3
FAC FACP
0.05
0.05
Partial ACF
0.00
ACF
0.00
−0.10 −0.05
−0.05
Lag Lag
VAR(2): Resíduo A−
15
10
−5
N(0,dp(A−)) ●
0.15
●
●●
●●
●●
3
●
●
●
●●●
●
●
●
●
●
●●
●●
●
●●
●●
●●
●
●
●
●●
●
●
0.10
●
●
●
●
●●
●
●
●●
●
●
●●
Sample Quantiles
●●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●●
●●
●
Density
●
●●
●
●
●
●
●●
●●
●
●
1
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●
0
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
0.05
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●●
−1
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●●
●
●●
●
●●
●
●
●
●●
●●
●
●
●
●●
●
●●
●
●
●●
●
●●
●
●●
●
●
●
●●
●
●●
●
●●
●
●●
−2
●●●
●
●●●
●●
●●
●●
0.00
● ● ●
−5 0 5 10 −3 −2 −1 0 1 2 3
FAC FACP
0.05
0.05
Partial ACF
ACF
0.00
0.00
−0.05
−0.05
Lag Lag
VAR(2): Resíduo B+
30
20
10
−10
N(0,dp(B+)) ●
●
0.06
●●
●●
●
0.05
●●
●●●
●
●●
●
●●
●
●●
●
●●
●
●●
●●
●
●
2
●
●
●
●●
●
●
0.04
●
●●
●
●
●
●
●●
●
Sample Quantiles
●●
●
●●
●●
●
●●
●●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
Density
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●●
●●
●
0.03
●●
●
●●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●●
●
●●
●
●●
●
●
●●
●
●
0
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
0.02
●
●
●●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●
●●
●
●●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●●
●
●●
●
●
●●
●
●●
●
●●
●
●●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●
0.01
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
−2
●●
●
●●
●
●
●
●●
●●
●●
●●
●●
●●●
●●●●
●
● ●●
0.00
● ●
●
−10 0 10 20 30 −3 −2 −1 0 1 2 3
FAC FACP
0.10
0.05
0.05
Partial ACF
ACF
0.00
0.00
−0.05
−0.05
Lag Lag
VAR(2): Resíduo B−
−2
N(0,dp(B−)) ●
●
4
0.25
●
●●
●
●
●●
3
●●●●●
●●
0.20
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
2
●
●
●●
●
Sample Quantiles
●
●●
●
●●
●
●
●●
●
●●
0.15
●
●●
●
●
●●
Density
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
1
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●
0.10
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●●
●
●
●●
●
●
0
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
0.05
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●●
−1
●●
●
●
●●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
●●
●
●●
●●
●
●●
●●
●
●●
●
●●
●●
●●●
●●
●●●●
●●
●●●
−2
● ●●
0.00
−2 0 2 4 6 −3 −2 −1 0 1 2 3
FAC FACP
0.05
0.05
Partial ACF
ACF
0.00
0.00
−0.05
−0.05
Lag Lag
10
−5
N(0,dp(AB+)) ●
●
4
●
0.15
●
●
●
3
●●
●●●
●●●●
●●
●
●●
●
●●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
2
●
●
●
●●
●
●●
●●
●●
●
Sample Quantiles
●●
●
●
●
0.10
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●
Density
●●
●
●
●
●
●●
●
●
1
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●●
●●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
0
●
●●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
0.05
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●●
●
●●
●
●
●
●
−1
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●●
●
●
●●
●
●●
●
●
●●
●
●●
●
●●
●●
●●
●●
●●
−2
●●●
●●●●●
●●●●
●●
0.00
●
●
−5 0 5 10 −3 −2 −1 0 1 2 3
FAC FACP
0.05
0.05
Partial ACF
ACF
0.00
0.00
−0.05
−0.05
Lag Lag
VAR(2): Resíduo O+
50
−50
N(0,dp(O+)) ●
●
4
●
●
0.020
●
●●
●●●●
●
●●●●
●●
●
●
●
●
●●
●●
●
●
●●
●
●●
●
●
2
●●
●●
●
●
●●
●
●
●●
●
●
●
●
0.015
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
Sample Quantiles
●●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
●●
●
●
Density
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
0
●
0.010
●
●●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●●
●●
●
●
●●
●
●
●●
●
●●
●
●
●●
●●
●
●●
●
●
●●
●
●●
●●
●
0.005
●●
●
●
●●
●
●●
●
●
●
●
●●
●
●
−2
●
●
●●
●
●
●●
●
●
●
●●
●●●
●
●●●
●
●●●
●
●●
●
0.000
−50 0 50 −3 −2 −1 0 1 2 3
FAC FACP
0.05
0.05
Partial ACF
ACF
0.00
0.00
−0.05
−0.05
Lag Lag
VAR(2): Resíduo O−
15
10
−5
−10
N(0,dp(O−)) ●
● ●
●●●
●
3
●●●
●
●●
●●
●●
●●
0.08
●
●
●●
●
●
●
●
●
●●
●
●
●
●
2
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●●
●●
●
●●
●
●●
●
●
●
●●
●
0.06
●
●●
●
●
1
●●
●
●
●●
●
●●
●
●
●
Sample Quantiles
●
●●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●●
●
Density
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●●
●
●●
●
0
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●●
●
●
0.04
●●
●
●●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●●
●
●●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
−1
●●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●●
●●
●
●
●●
●
●
0.02
●
●
●●
●
●
●●
●
●●
●
●●
●
●
●●
●●
●
−2
●●●
●
●●●
●●
●
●●●
●
●
●
−3
0.00
−15 −10 −5 0 5 10 15 −3 −2 −1 0 1 2 3
FAC FACP
0.05
0.05
Partial ACF
ACF
0.00
0.00
−0.05
−0.05
Lag Lag
1. Série A +:
Teste Jarque Bera na variável A+
data: VAR$res[, i]
X-squared = 8.7545, df = 2, p-value = 0.01256
2. Série A -:
Teste Jarque Bera na variável A-
data: VAR$res[, i]
X-squared = 81.093, df = 2, p-value < 2.2e-16
3. Série B +:
Teste Jarque Bera na variável B+
data: VAR$res[, i]
X-squared = 56.61, df = 2, p-value = 5.097e-13
4. Série B -:
Teste Jarque Bera na variável B-
data: VAR$res[, i]
X-squared = 168.19, df = 2, p-value < 2.2e-16
5. Série AB +:
Teste Jarque Bera na variável AB+
data: VAR$res[, i]
X-squared = 78.623, df = 2, p-value < 2.2e-16
6. Série AB -:
Teste Jarque Bera na variável AB-
data: ab
X-squared = 18054, df = 2, p-value < 2.2e-16
7. Série O +:
Teste Jarque Bera na variável O+
data: VAR$res[, i]
X-squared = 49.624, df = 2, p-value = 1.676e-11
8. Série O -:
Teste Jarque Bera na variável O-
data: VAR$res[, i]
X-squared = 29.805, df = 2, p-value = 3.373e-07
Testes BDS
1. Série A +:
Teste BDS na variável A+
BDS Test
data: VAR$res[, i]
29
Embedding dimension = 2 3 4 5 6
Standard Normal =
[ 7.1055 ] [ 14.2111 ] [ 21.3166 ] [ 28.4221 ] [ 35.5276 ]
[ 2 ] -0.3704 -0.3121 -0.5272 -0.8477 -1.1830
[ 3 ] -0.5643 -0.6246 -0.9268 -1.2069 -1.5461
[ 4 ] -0.8955 -1.1777 -1.4822 -1.6708 -1.9991
[ 5 ] -1.3136 -1.1920 -1.6598 -1.8119 -2.2506
[ 6 ] -0.7430 -0.8381 -1.5489 -1.7439 -2.3495
p-value =
[ 7.1055 ] [ 14.2111 ] [ 21.3166 ] [ 28.4221 ] [ 35.5276 ]
[ 2 ] 0.7111 0.7550 0.5981 0.3966 0.2368
[ 3 ] 0.5725 0.5322 0.3540 0.2275 0.1221
[ 4 ] 0.3705 0.2389 0.1383 0.0948 0.0456
[ 5 ] 0.1890 0.2332 0.0970 0.0700 0.0244
[ 6 ] 0.4575 0.4020 0.1214 0.0812 0.0188
2. Série A -:
Teste BDS na variável A-
BDS Test
data: VAR$res[, i]
Embedding dimension = 2 3 4 5 6
Standard Normal =
[ 1.4696 ] [ 2.9392 ] [ 4.4088 ] [ 5.8784 ] [ 7.348 ]
[ 2 ] 1.1416 1.0017 1.2910 1.6631 1.7931
[ 3 ] 0.7601 0.3596 0.7976 1.4680 1.9754
[ 4 ] 0.3717 -0.0800 0.4917 1.2348 1.7544
[ 5 ] -0.0537 -0.0563 0.5506 1.3684 1.8430
[ 6 ] 0.0828 -0.2217 0.4299 1.2923 1.7235
p-value =
[ 1.4696 ] [ 2.9392 ] [ 4.4088 ] [ 5.8784 ] [ 7.348 ]
[ 2 ] 0.2536 0.3165 0.1967 0.0963 0.0730
[ 3 ] 0.4472 0.7192 0.4251 0.1421 0.0482
[ 4 ] 0.7102 0.9363 0.6229 0.2169 0.0794
[ 5 ] 0.9571 0.9551 0.5819 0.1712 0.0653
[ 6 ] 0.9340 0.8246 0.6673 0.1962 0.0848
3. Série B +:
30
BDS Test
data: VAR$res[, i]
Embedding dimension = 2 3 4 5 6
Standard Normal =
[ 3.1205 ] [ 6.2409 ] [ 9.3614 ] [ 12.4818 ] [ 15.6023 ]
[ 2 ] 0.3880 0.3218 0.4347 0.4891 0.3087
[ 3 ] 0.7002 0.6983 0.7478 0.6696 0.4657
[ 4 ] 0.7994 1.0881 1.1724 0.9404 0.5373
[ 5 ] 0.8749 1.3731 1.2785 1.0066 0.5906
[ 6 ] 0.9563 1.4268 1.2881 0.9720 0.5683
p-value =
[ 3.1205 ] [ 6.2409 ] [ 9.3614 ] [ 12.4818 ] [ 15.6023 ]
[ 2 ] 0.6980 0.7476 0.6638 0.6247 0.7575
[ 3 ] 0.4838 0.4850 0.4546 0.5031 0.6414
[ 4 ] 0.4241 0.2766 0.2410 0.3470 0.5911
[ 5 ] 0.3816 0.1697 0.2011 0.3141 0.5548
[ 6 ] 0.3389 0.1536 0.1977 0.3311 0.5698
4. Série B -:
BDS Test
data: VAR$res[, i]
Embedding dimension = 2 3 4 5 6
Standard Normal =
[ 0.7816 ] [ 1.5631 ] [ 2.3447 ] [ 3.1262 ] [ 3.9078 ]
[ 2 ] -0.4387 -0.3968 -0.7357 -1.0170 -1.3377
[ 3 ] 0.4629 0.1949 0.1274 -0.1098 -0.3846
[ 4 ] 0.4984 -0.0110 0.0243 -0.3254 -0.5844
[ 5 ] 0.5180 -0.1844 -0.1459 -0.5510 -0.7824
[ 6 ] 1.0459 -0.3593 -0.3617 -0.7354 -0.9322
p-value =
[ 0.7816 ] [ 1.5631 ] [ 2.3447 ] [ 3.1262 ] [ 3.9078 ]
[ 2 ] 0.6609 0.6915 0.4619 0.3091 0.1810
[ 3 ] 0.6434 0.8455 0.8986 0.9126 0.7005
31
5. Série AB +:
Teste BDS na variável AB+
BDS Test
data: VAR$res[, i]
Embedding dimension = 2 3 4 5 6
Standard Normal =
[ 1.3915 ] [ 2.7829 ] [ 4.1744 ] [ 5.5658 ] [ 6.9573 ]
[ 2 ] -0.8643 -1.0501 -0.7094 -0.9368 -0.7527
[ 3 ] -1.1604 -1.2205 -0.7101 -0.5425 -0.2417
[ 4 ] -0.9011 -1.2914 -0.6536 -0.3498 -0.0522
[ 5 ] -0.0452 -1.3700 -0.5839 -0.1814 0.1613
[ 6 ] 0.9887 -1.3932 -0.5470 -0.1106 0.3109
p-value =
[ 1.3915 ] [ 2.7829 ] [ 4.1744 ] [ 5.5658 ] [ 6.9573 ]
[ 2 ] 0.3874 0.2937 0.4781 0.3489 0.4516
[ 3 ] 0.2459 0.2223 0.4776 0.5875 0.8090
[ 4 ] 0.3676 0.1966 0.5134 0.7265 0.9584
[ 5 ] 0.9639 0.1707 0.5593 0.8561 0.8719
[ 6 ] 0.3228 0.1636 0.5843 0.9119 0.7559
6. Série AB -:
Teste BDS na variável AB-
BDS Test
data: ab
Embedding dimension = 2 3 4 5 6
Standard Normal =
[ 0.5282 ] [ 1.0564 ] [ 1.5846 ] [ 2.1128 ] [ 2.641 ]
[ 2 ] 1.6473 3.5566 3.5566 8.8578 8.8578
[ 3 ] 2.0886 3.9477 3.9477 8.6149 8.6149
[ 4 ] 1.7868 3.6842 3.6842 7.8723 7.8723
32
p-value =
[ 0.5282 ] [ 1.0564 ] [ 1.5846 ] [ 2.1128 ] [ 2.641 ]
[ 2 ] 0.0995 4e-04 4e-04 0 0
[ 3 ] 0.0367 1e-04 1e-04 0 0
[ 4 ] 0.0740 2e-04 2e-04 0 0
[ 5 ] 0.1073 2e-04 2e-04 0 0
[ 6 ] 0.1091 1e-04 1e-04 0 0
7. Série O +:
Teste BDS na variável O+
BDS Test
data: VAR$res[, i]
Embedding dimension = 2 3 4 5 6
Standard Normal =
[ 9.6038 ] [ 19.2075 ] [ 28.8113 ] [ 38.415 ] [ 48.0188 ]
[ 2 ] -0.5084 -0.4981 -0.8531 -0.9209 -1.0728
[ 3 ] -1.5814 -1.2042 -1.3772 -1.0271 -0.8586
[ 4 ] -1.9661 -1.4602 -1.4442 -0.9644 -0.6487
[ 5 ] -1.7231 -1.2057 -1.1786 -0.6516 -0.3395
[ 6 ] -1.3543 -1.0745 -1.0870 -0.5535 -0.3075
p-value =
[ 9.6038 ] [ 19.2075 ] [ 28.8113 ] [ 38.415 ] [ 48.0188 ]
[ 2 ] 0.6112 0.6184 0.3936 0.3571 0.2834
[ 3 ] 0.1138 0.2285 0.1684 0.3044 0.3905
[ 4 ] 0.0493 0.1442 0.1487 0.3348 0.5165
[ 5 ] 0.0849 0.2279 0.2386 0.5146 0.7342
[ 6 ] 0.1756 0.2826 0.2770 0.5799 0.7584
8. Série O -:
Teste BDS na variável O-
BDS Test
data: VAR$res[, i]
Embedding dimension = 2 3 4 5 6
33
Standard Normal =
[ 2.2042 ] [ 4.4083 ] [ 6.6125 ] [ 8.8167 ] [ 11.0208 ]
[ 2 ] -0.3892 -0.6597 -0.8278 -0.4449 -0.5610
[ 3 ] -0.2328 -0.5430 -0.8241 -0.5387 -0.8181
[ 4 ] -0.4591 -0.5016 -0.8579 -0.5609 -0.9508
[ 5 ] -1.0527 -0.7813 -1.0491 -0.7255 -1.1192
[ 6 ] -0.9081 -0.8667 -0.9894 -0.7765 -1.2680
p-value =
[ 2.2042 ] [ 4.4083 ] [ 6.6125 ] [ 8.8167 ] [ 11.0208 ]
[ 2 ] 0.6971 0.5094 0.4078 0.6564 0.5748
[ 3 ] 0.8159 0.5871 0.4099 0.5901 0.4133
[ 4 ] 0.6462 0.6160 0.3910 0.5749 0.3417
[ 5 ] 0.2925 0.4346 0.2941 0.4681 0.2630
[ 6 ] 0.3639 0.3861 0.3225 0.4375 0.2048
Anexo IV: Trajetórias
Boostrap Gaussiano
1
Trajetórias Gaussianas A+
80
60
40
traj_var_gau[(j − 1) * M + 1, ]
20
−20
−40
previsto
−60 amostral
0 5 10 15 20 25 30
Index
2
Trajetórias Gaussianas A−
15
10
5
traj_var_gau[(j − 1) * M + 1, ]
−5
−10
previsto
amostral
0 5 10 15 20 25 30
Index
3
Trajetórias Gaussianas B+
30
20
10
traj_var_gau[(j − 1) * M + 1, ]
−10
−20
previsto
amostral
−30
0 5 10 15 20 25 30
Index
4
Trajetórias Gaussianas B−
4
traj_var_gau[(j − 1) * M + 1, ]
−2
−4
−6 previsto
amostral
0 5 10 15 20 25 30
Index
5
Trajetórias Gaussianas AB+
10
5
traj_var_gau[(j − 1) * M + 1, ]
−5
−10
previsto
amostral
0 5 10 15 20 25 30
Index
6
Trajetórias Gaussianas O+
100
50
traj_var_gau[(j − 1) * M + 1, ]
−50
previsto
−100 amostral
0 5 10 15 20 25 30
Index
7
Trajetórias Gaussianas O−
20
10
traj_var_gau[(j − 1) * M + 1, ]
−10
previsto
amostral
0 5 10 15 20 25 30
Index
8
Trajetórias Gaussianas A+
200
150
traj_final_gau[(j − 1) * M + 1, ]
100
50
0 previsto
amostral
0 5 10 15 20 25 30
Index
9
Trajetórias Gaussianas A−
30
25
20
traj_final_gau[(j − 1) * M + 1, ]
15
10
0 previsto
amostral
0 5 10 15 20 25 30
Index
10
Trajetórias Gaussianas B+
80
60
traj_final_gau[(j − 1) * M + 1, ]
40
20
0 previsto
amostral
0 5 10 15 20 25 30
Index
11
Trajetórias Gaussianas B−
10
8
traj_final_gau[(j − 1) * M + 1, ]
0 previsto
amostral
0 5 10 15 20 25 30
Index
12
Trajetórias Gaussianas AB+
20
15
traj_final_gau[(j − 1) * M + 1, ]
10
0 previsto
amostral
0 5 10 15 20 25 30
Index
13
Trajetórias Gaussianas AB−
12
10
traj_final_gau[(j − 1) * M + 1, ]
0 previsto
amostral
0 5 10 15 20 25 30
Index
14
Trajetórias Gaussianas O+
200
150
traj_final_gau[(j − 1) * M + 1, ]
100
50
0 previsto
amostral
0 5 10 15 20 25 30
Index
15
Trajetórias Gaussianas O−
35
30
25
traj_final_gau[(j − 1) * M + 1, ]
20
15
10
0 previsto
amostral
0 5 10 15 20 25 30
Index
16
Anexo V: Trajetórias finais
de Boostrap Kim
1
Trajetórias Bootstrap A+
60
40
traj_var_kim[(j − 1) * M + 1, ]
20
−20
−40
previsto
amostral
−60
0 5 10 15 20 25 30
Index
2
Trajetórias Bootstrap A−
15
10
traj_var_kim[(j − 1) * M + 1, ]
−5
previsto
amostral
−10
0 5 10 15 20 25 30
Index
3
Trajetórias Bootstrap B+
30
20
traj_var_kim[(j − 1) * M + 1, ]
10
−10
previsto
−20 amostral
0 5 10 15 20 25 30
Index
4
Trajetórias Bootstrap B−
6
traj_var_kim[(j − 1) * M + 1, ]
−2
−4 previsto
amostral
0 5 10 15 20 25 30
Index
5
Trajetórias Bootstrap AB+
15
10
traj_var_kim[(j − 1) * M + 1, ]
−5
previsto
amostral
0 5 10 15 20 25 30
Index
6
Trajetórias Bootstrap O+
100
50
traj_var_kim[(j − 1) * M + 1, ]
−50
previsto
amostral
0 5 10 15 20 25 30
Index
7
Trajetórias Bootstrap O−
20
10
traj_var_kim[(j − 1) * M + 1, ]
−10
previsto
amostral
0 5 10 15 20 25 30
Index
8
Trajetórias de Bootstrap A+
200
150
traj_final_kim[(j − 1) * M + 1, ]
100
50
0 previsto
amostral
0 5 10 15 20 25 30
Index
9
Trajetórias de Bootstrap A−
30
25
traj_final_kim[(j − 1) * M + 1, ]
20
15
10
0 previsto
amostral
0 5 10 15 20 25 30
Index
10
Trajetórias de Bootstrap B+
80
60
traj_final_kim[(j − 1) * M + 1, ]
40
20
0 previsto
amostral
0 5 10 15 20 25 30
Index
11
Trajetórias de Bootstrap B−
12
10
8
traj_final_kim[(j − 1) * M + 1, ]
0 previsto
amostral
0 5 10 15 20 25 30
Index
12
Trajetórias de Bootstrap AB+
20
15
traj_final_kim[(j − 1) * M + 1, ]
10
0 previsto
amostral
0 5 10 15 20 25 30
Index
13
Trajetórias de Bootstrap AB−
12
10
traj_final_kim[(j − 1) * M + 1, ]
0 previsto
amostral
0 5 10 15 20 25 30
Index
14
Trajetórias de Bootstrap O+
250
200
traj_final_kim[(j − 1) * M + 1, ]
150
100
50
0 previsto
amostral
0 5 10 15 20 25 30
Index
15
Trajetórias de Bootstrap O−
35
30
25
traj_final_kim[(j − 1) * M + 1, ]
20
15
10
0 previsto
amostral
0 5 10 15 20 25 30
Index
16
Anexo VI: Trajetórias Finais
de Boostrap Fresoli vs. Kim
1
Trajetórias Bootstrap Ruiz A+
60
40
traj_var_ruiz[(j − 1) * M + 1, ]
20
−20
−40
Kim
Ruiz
−60
0 5 10 15 20 25 30
Index
2
Trajetórias Bootstrap Ruiz A−
15
10
traj_var_ruiz[(j − 1) * M + 1, ]
−5
Kim
Ruiz
−10
0 5 10 15 20 25 30
Index
3
Trajetórias Bootstrap Ruiz B+
30
20
traj_var_ruiz[(j − 1) * M + 1, ]
10
−10
Kim
−20 Ruiz
0 5 10 15 20 25 30
Index
4
Trajetórias Bootstrap Ruiz B−
6
traj_var_ruiz[(j − 1) * M + 1, ]
−2
−4 Kim
Ruiz
0 5 10 15 20 25 30
Index
5
Trajetórias Bootstrap Ruiz AB+
15
10
traj_var_ruiz[(j − 1) * M + 1, ]
−5
Kim
Ruiz
0 5 10 15 20 25 30
Index
6
Trajetórias Bootstrap Ruiz O+
100
50
traj_var_ruiz[(j − 1) * M + 1, ]
−50
Kim
Ruiz
0 5 10 15 20 25 30
Index
7
Trajetórias Bootstrap Ruiz O−
20
10
traj_var_ruiz[(j − 1) * M + 1, ]
−10
Kim
Ruiz
0 5 10 15 20 25 30
Index
8
Trajetórias de Bootstrap RuizA+
200
150
traj_final_ruiz[(j − 1) * M + 1, ]
100
50
0 Kim
Ruiz
0 5 10 15 20 25 30
Index
9
Trajetórias de Bootstrap RuizA−
30
25
traj_final_ruiz[(j − 1) * M + 1, ]
20
15
10
0 Kim
Ruiz
0 5 10 15 20 25 30
Index
10
Trajetórias de Bootstrap RuizB+
80
60
traj_final_ruiz[(j − 1) * M + 1, ]
40
20
0 Kim
Ruiz
0 5 10 15 20 25 30
Index
11
Trajetórias de Bootstrap RuizB−
10
8
traj_final_ruiz[(j − 1) * M + 1, ]
0 Kim
Ruiz
0 5 10 15 20 25 30
Index
12
Trajetórias de Bootstrap RuizAB+
20
15
traj_final_ruiz[(j − 1) * M + 1, ]
10
0 Kim
Ruiz
0 5 10 15 20 25 30
Index
13
Trajetórias de Bootstrap RuizAB−
12
10
traj_final_ruiz[(j − 1) * M + 1, ]
0 Kim
Ruiz
0 5 10 15 20 25 30
Index
14
Trajetórias de Bootstrap RuizO+
200
150
traj_final_ruiz[(j − 1) * M + 1, ]
100
50
0 Kim
Ruiz
0 5 10 15 20 25 30
Index
15
Trajetórias de Bootstrap RuizO−
35
30
25
traj_final_ruiz[(j − 1) * M + 1, ]
20
15
10
0 Kim
Ruiz
0 5 10 15 20 25 30
Index
16
Anexo VII: Pseudo-códigos para seleção
de cortes utilizando Level 1 e FMLM
Algorithm 1 algorithmic[1]
𝑘 = {𝑘}, 𝑚𝑘 = 𝐶 𝑘 (𝑥𝑘 )
𝐼𝑡𝑗 𝑡𝑗 𝑡𝑗 𝑡−1
for 𝑙 = 1,...,𝑘 − 1 do:
if 𝐶𝑡𝑗𝑘 (𝑥𝑙𝑡−1 ) > 𝑚𝑙𝑡𝑗 + 𝜀0 max(1,|𝑚𝑙𝑡𝑗 |) then:
𝑙 = {𝑘}, 𝑚𝑙 = 𝐶 𝑘 (𝑥𝑙 )
𝐼𝑡𝑗 𝑡𝑗 𝑡𝑗 𝑡−1
else if |𝐶𝑡𝑗𝑘 (𝑥𝑙𝑡−1 ) − 𝑚𝑙𝑡𝑗 | ≤ 𝜀0 max(1,|𝑚𝑙𝑡𝑗 |) then:
𝑙 = 𝐼 𝑙 ∪ {𝑘}
𝐼𝑡𝑗 𝑡𝑗
end if
if 𝐶𝑡𝑗𝑙 (𝑥𝑘𝑡−1 ) > 𝑚𝑘𝑡𝑗 + 𝜀0 max(1,|𝑚𝑘𝑡𝑗 | then:
𝑘 = {𝑙}, 𝑚𝑘 = 𝐶 𝑙 (𝑥𝑘 )
𝐼𝑡𝑗 𝑡𝑗 𝑡𝑗 𝑡−1
else if |𝐶𝑡𝑗𝑘 (𝑥𝑙𝑡−1 ) − 𝑚𝑙𝑡𝑗 | ≤ 𝜀0 max(1,|𝑚𝑙𝑡𝑗 |) then:
𝑘 = 𝐼 𝑘 ∪ {𝑙}
𝐼𝑡𝑗 𝑡𝑗
end if
end for
=0
end
Algorithm 2 algorithmic[1]
𝑘
𝐼𝑡𝑗= {1}, 𝑚𝑘𝑡𝑗= 𝐶𝑡𝑗1 (𝑥𝑘 )
𝑡−1
for 𝑙 = 1,...,𝑘 − 1 do:
if 𝐶𝑡𝑗𝑘 (𝑥𝑙𝑡−1 ) > 𝑚𝑙𝑡𝑗 + 𝜀0 max(1,|𝑚𝑙𝑡𝑗 |) then:
𝑙 = {𝑘}, 𝑚𝑙 = 𝐶 𝑘 (𝑥𝑙 )
𝐼𝑡𝑗 𝑡𝑗 𝑡𝑗 𝑡−1
end if
if 𝐶𝑡𝑗𝑙+1 (𝑥𝑘𝑡−1 ) > 𝑚𝑘𝑡𝑗 + 𝜀0 max(1,|𝑚𝑘𝑡𝑗 | then:
𝑘 = {𝑙 + 1}, 𝑚𝑘 = 𝐶 𝑙+1 (𝑥𝑘 )
𝐼𝑡𝑗 𝑡𝑗 𝑡𝑗 𝑡−1
end if
end for=0
end
Anexo VIII: Pseudo-códigos para
seleção de cortes utilizando Level 1 e
FMLM considerando erros de
aproximação computacional
Algorithm 3 algorithmic[1]
𝑘 = {𝑘}, 𝑚𝑘 = 𝒞 𝑘 (𝑥𝑘 )
𝐼𝑡𝑗 𝑡𝑗 𝑡𝑗 𝑡−1
for ℓ = 1,...,𝑘 − 1 do:
if 𝒞𝑡𝑗𝑘 (𝑥ℓ𝑡−1 ) > 𝑚ℓ𝑡𝑗 + 𝜀0 max(1,|𝑚ℓ𝑡𝑗 |) then:
𝐼𝑡𝑗ℓ = {𝑘}, 𝑚ℓ = 𝒞 𝑘 (𝑥ℓ )
𝑡𝑗 𝑡𝑗 𝑡−1
else if |𝒞𝑡𝑗𝑘 (𝑥ℓ𝑡−1 ) − 𝑚ℓ𝑡𝑗 | ≤ 𝜀0 max(1,|𝑚ℓ𝑡𝑗 |) then:
𝐼𝑡𝑗ℓ = 𝐼 ℓ ∪ {𝑘}
𝑡𝑗
end if
if 𝒞𝑡𝑗ℓ (𝑥𝑘𝑡−1 ) > 𝑚𝑘𝑡𝑗 + 𝜀0 max(1,|𝑚𝑘𝑡𝑗 | then:
𝑘 = {ℓ}, 𝑚𝑘 = 𝒞 ℓ (𝑥𝑘 )
𝐼𝑡𝑗 𝑡𝑗 𝑡𝑗 𝑡−1
else if |𝒞𝑡𝑗ℓ (𝑥𝑘𝑡−1 ) − 𝑚𝑘𝑡𝑗 | ≤ 𝜀0 max(1,|𝑚𝑘𝑡𝑗 |) then:
𝑘 = 𝐼 𝑘 ∪ {ℓ}
𝐼𝑡𝑗 𝑡𝑗
end if
end for=0
end
Algorithm 4 algorithmic[1]
𝑘 = {1}, 𝑚𝑘 = 𝒞 1 (𝑥𝑘 )
𝐼𝑡𝑗 𝑡𝑗 𝑡𝑗 𝑡−1
for ℓ = 1,...,𝑘 − 1 do:
if 𝒞𝑡𝑗𝑘 (𝑥ℓ𝑡−1 ) > 𝑚ℓ𝑡𝑗 + 𝜀0 max(1,|𝑚ℓ𝑡𝑗 |) then:
𝐼𝑡𝑗ℓ = {𝑘}, 𝑚ℓ = 𝒞 𝑘 (𝑥ℓ )
𝑡𝑗 𝑡𝑗 𝑡−1
end if
if 𝒞𝑡𝑗ℓ+1 (𝑥𝑘𝑡−1 ) > 𝑚𝑘𝑡𝑗 + 𝜀0 max(1,|𝑚𝑘𝑡𝑗 |) then:
𝑘 = {ℓ + 1}, 𝑚𝑘 = 𝒞 ℓ+1 (𝑥𝑘 )
𝐼𝑡𝑗 𝑡𝑗 𝑡𝑗 𝑡−1
end if
end for=0
end
Ficha catalográfica elaborada pela Biblioteca Mario Henrique Simonsen/FGV
CDD – 519.62