métodos de otimização em finanças com r · 2 métodos de otimização ... por um esforço...

126
Introdução ao R Métodos de Otimização Aplicações em Finanças Métodos de Otimização em Finanças com R Paulo Henrique Sales Guimarães Universidade Federal de Lavras [email protected]fla.br 29 de setembro de 2016 Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional Vitória, ES, 27 a 30 de setembro de 2016. 3745

Upload: buicong

Post on 11-Oct-2018

231 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Métodos de Otimização em Finanças com R

Paulo Henrique Sales Guimarães

Universidade Federal de Lavras

[email protected]

29 de setembro de 2016

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

3745

Page 2: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Métodos de Otimização em Finanças com R

1 Introdução ao RInstalação do RPrincipais FunçõesInstalação de Pacotes

2 Métodos de Otimização

3 Aplicações em Finanças

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3746

Page 3: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Software R

O R foi criado originalmente por Ross Ihaka e por Robert Gentle-man na Universidade de Auckland, Nova Zelândia, desenvolvidopor um esforço colaborativo por pessoas de todo o mundo. Sendoao mesmo tempo uma linguagem de programação e um ambientepara computação estatística e gráfica.Trata-se de uma linguagem de programação especializada emcomputação com dados. Algumas das suas principais caracterís-ticas são o seu caráter gratuito e a sua disponibilidade para umagama bastante variada de sistemas operacionais.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3747

Page 4: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Características

Software Livre (gratuito)

Código Fonte Aberto

Possui Diversas GUI

Software Colaborativo (pacotes)

Linguagem de Programação

Manipulação e Análise de Dados

Usado em Vários Sistemas Operacionais(UNIX,WINDOWS,etc)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3748

Page 5: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Características

Software Livre (gratuito)

Código Fonte Aberto

Possui Diversas GUI

Software Colaborativo (pacotes)

Linguagem de Programação

Manipulação e Análise de Dados

Usado em Vários Sistemas Operacionais(UNIX,WINDOWS,etc)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3749

Page 6: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Características

Software Livre (gratuito)

Código Fonte Aberto

Possui Diversas GUI

Software Colaborativo (pacotes)

Linguagem de Programação

Manipulação e Análise de Dados

Usado em Vários Sistemas Operacionais(UNIX,WINDOWS,etc)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3750

Page 7: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Características

Software Livre (gratuito)

Código Fonte Aberto

Possui Diversas GUI

Software Colaborativo (pacotes)

Linguagem de Programação

Manipulação e Análise de Dados

Usado em Vários Sistemas Operacionais(UNIX,WINDOWS,etc)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3751

Page 8: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Características

Software Livre (gratuito)

Código Fonte Aberto

Possui Diversas GUI

Software Colaborativo (pacotes)

Linguagem de Programação

Manipulação e Análise de Dados

Usado em Vários Sistemas Operacionais(UNIX,WINDOWS,etc)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3752

Page 9: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Características

Software Livre (gratuito)

Código Fonte Aberto

Possui Diversas GUI

Software Colaborativo (pacotes)

Linguagem de Programação

Manipulação e Análise de Dados

Usado em Vários Sistemas Operacionais(UNIX,WINDOWS,etc)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3753

Page 10: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Características

Software Livre (gratuito)

Código Fonte Aberto

Possui Diversas GUI

Software Colaborativo (pacotes)

Linguagem de Programação

Manipulação e Análise de Dados

Usado em Vários Sistemas Operacionais(UNIX,WINDOWS,etc)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3754

Page 11: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Instalação do R

1 Primeiro PassoO programa de instalação do R pode ser baixado a partir dosite: The R Project for Statistical Computing.

Devemos escolher o CRAN Mirrors (por exemplo,Universidade Federal do Paraná.Sistema Operacional (por exemplo, Windows)Install R for the first time (última versão: R.3.3.1 for Windows).

2 Segundo PassoAbra o programa de instalação do R que acabou de baixar(selecione o idioma).Clique em Avançar e depois no final Concluir.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3755

Page 12: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Instalação do R

1 Primeiro PassoO programa de instalação do R pode ser baixado a partir dosite: The R Project for Statistical Computing.Devemos escolher o CRAN Mirrors (por exemplo,Universidade Federal do Paraná.

Sistema Operacional (por exemplo, Windows)Install R for the first time (última versão: R.3.3.1 for Windows).

2 Segundo PassoAbra o programa de instalação do R que acabou de baixar(selecione o idioma).Clique em Avançar e depois no final Concluir.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3756

Page 13: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Instalação do R

1 Primeiro PassoO programa de instalação do R pode ser baixado a partir dosite: The R Project for Statistical Computing.Devemos escolher o CRAN Mirrors (por exemplo,Universidade Federal do Paraná.Sistema Operacional (por exemplo, Windows)

Install R for the first time (última versão: R.3.3.1 for Windows).2 Segundo Passo

Abra o programa de instalação do R que acabou de baixar(selecione o idioma).Clique em Avançar e depois no final Concluir.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3757

Page 14: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Instalação do R

1 Primeiro PassoO programa de instalação do R pode ser baixado a partir dosite: The R Project for Statistical Computing.Devemos escolher o CRAN Mirrors (por exemplo,Universidade Federal do Paraná.Sistema Operacional (por exemplo, Windows)Install R for the first time (última versão: R.3.3.1 for Windows).

2 Segundo PassoAbra o programa de instalação do R que acabou de baixar(selecione o idioma).Clique em Avançar e depois no final Concluir.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3758

Page 15: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Instalação do R

1 Primeiro PassoO programa de instalação do R pode ser baixado a partir dosite: The R Project for Statistical Computing.Devemos escolher o CRAN Mirrors (por exemplo,Universidade Federal do Paraná.Sistema Operacional (por exemplo, Windows)Install R for the first time (última versão: R.3.3.1 for Windows).

2 Segundo PassoAbra o programa de instalação do R que acabou de baixar(selecione o idioma).

Clique em Avançar e depois no final Concluir.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3759

Page 16: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Instalação do R

1 Primeiro PassoO programa de instalação do R pode ser baixado a partir dosite: The R Project for Statistical Computing.Devemos escolher o CRAN Mirrors (por exemplo,Universidade Federal do Paraná.Sistema Operacional (por exemplo, Windows)Install R for the first time (última versão: R.3.3.1 for Windows).

2 Segundo PassoAbra o programa de instalação do R que acabou de baixar(selecione o idioma).Clique em Avançar e depois no final Concluir.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3760

Page 17: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Software RAo iniciar o R abrirá automaticamente o Console que é a janelana qual os comandos são digitados. Internamente ao Console, seencontra o prompt, conforme figura abaixo, que é um sinal indicadorde que o programa está pronto para receber comando.

Figura: Interface do R - Console e Prompt

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3761

Page 18: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Software RUma forma mais fácil de inserir os comandos no R é por meio doscript (Arquivo + Novo Script + Janela (Dividir Lado a Lado).

Figura: Interface do R - Script

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3762

Page 19: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Interface do R

R é uma linguagem de expressões com regras e sintaxe muito sim-ples.Faz distinção entre maiúsculas e minúsculas, de modo que os ca-racteres “x” e “X” são interpretados como sendo diferentes.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3763

Page 20: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Tipos de DadosBasicamente tem-se quatro tipos de dados no R: númericos, carac-teres, lógicos e números complexos.

Figura: Tipos de Dados

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3764

Page 21: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Comandos BásicosNo R é possível fazer uma atribuição de valores de várias formas,conforme o exemplo:

Figura: Atribuição de ValoresPaulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3765

Page 22: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Comandos BásicosO R pode funcionar como uma calculadora executando operaçõesmatemáticas.

Figura: Atribuição de Valores

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3766

Page 23: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Tabela: Operadores Básicos

Símbolo Descrição< Menor> Maior

<= Menor Igual>= Maior Igual== Comparação& E (and)| Ou (or)! Não

!= DiferenteTRUE ou 1 Valor verdadeiro (booleano)FALSE ou 0 Valor falso (booleano)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3767

Page 24: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Comandos BásicosNa próxima tabela são apresentadas algumas outras operaçõespossíveis:

Tabela: Funções Matemáticas Básicas

Função Descriçãoabs(x) Valor absoluto de x

ceiling(x) Arredondamento de x para o maior valorexp(x) Exponencial elevado a xfloor(x) Arredondamento de x para o menor valor

length(x) Número de elementos do vetor xlog(x) Logaritmo natural de x

log(x,a) Logaritmo de x com base amax(x) Seleciona o maior valor de xmin(x) Menor valor de xsqrt(x) Raiz quadrada de x

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3768

Page 25: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

VetoresVetores são conjuntos de dados unidimensionais. Sua principalutilidade é poder armazenar diversos dados em forma de lista eaplicar funções e operações sobre todos os dados pertencentes adeterminado vetor.Para criar um vetor devemos utilizar o comando c().Exemplos:

Figura: VetoresPaulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3769

Page 26: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Vetores

O comando seq() é bastante útil para a criação de vetores.Exemplos:

Figura: Comando seq()

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3770

Page 27: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

VetoresO comando rep() também pode ser utilizado para a criação de ve-tores.Exemplos:

Figura: Comando req()

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3771

Page 28: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

MatrizesAssim como os vetores, há também várias maneiras de se criarmatrizes no R.A função matrix() recebe um vetor como argumento e o transformaem uma matriz de acordo com as dimensões especificadas.Exemplos:

Figura: MatrizesPaulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3772

Page 29: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Matrizes

Algumas operações básicas com matrizes:

Tabela: Operações Básicas Matrizes

Função DescriçãoA%*%B Produto matricial de A por B

t(A) Transposta da matriz Asolve(A) Inversa da matriz A

x=solve(A,b) Resolve o sistema linear Ax=bdet(B) Determinante de B

eigen(A) Retorna os autovalores e autovetores de A

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3773

Page 30: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Matrizes

Alguns exemplos de operações com matrizes:

Figura: Exemplos de operações com matrizes

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3774

Page 31: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Dados Externos

Geralmente, trabalhamos com arquivos salvos sob forma de plani-lhas, tabelas, etc.Desta forma, precisamos que o R leia estes ar-quivos, transformando-os em um objeto.Para que o R reconheça o conjunto de dados do arquivo é neces-sário que as colunas sejam separadas. Caso isso não ocorra o Rnão conseguirá separar as colunas e emitirá uma mensagem deerro. Um modo fácil de resolver este problema é salvar a planilhade dados com o formato (.csv) que utiliza virgula (,) como elementoseparador das colunas ou no formato (.txt).

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3775

Page 32: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Dados Externos

Antes de iniciar a entrada de dados no R deve-se alterar o diretóriono R em que a pasta de trabalho padrão com o arquivo de dados(.csv ou .txt) está salvo (Arquivo - Mudar Diretório).Para verificar qual é o diretório use getwd() .Outra forma de mudar o diretório é por meio do co-mando:setwd("C:/Documents and Settings/Administrador/Meus do-cumentos/temp1").Em seguida, devemos dar o comando para que o R carregue o ar-quivo (.csv ou .txt) no console de trabalho da forma:dados<-read.table("exemplo.txt",h=T) oudados<-read.table("exemplo.csv",h=T).

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3776

Page 33: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Dados Externos

No R é muito comum trabalharmos com conjuntos de dados daforma de Data Frame.Estes possuem linhas e colunas, em quecada coluna pode armazenar elementos de diferentes tipos.Assim data.frame é um tipo especial de lista, composta por vetoresde mesmo tamanho, mas que podem ser de classes diferentes:

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3777

Page 34: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Dados Externos

O R permite acessar um banco de dados disponível na web.Estatarefa é importante,pois facilita o acesso aos dados provenientes dainternet sem a necessidade dos dados serem copiados para algumdiretório e, posteriormente, carregados para o R.Para fazer a leitura usamos: read.table("http://endereço").

Exemplo:read.table("http://www.leg.ufpr.br/ paulo-jus/dados/exemplo02.txt").

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3778

Page 35: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Funções

Uma das grandes vantagens do R é poder criar (programar) novasfunções. Para fazer uma função são necessários as seguintes atri-buições:nome(da função)<-function(argumento1,...,argumenton).

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3779

Page 36: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

FunçõesExemplo:

Figura: Função Média

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3780

Page 37: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Gráficos

Outra grande vantagem do R é a sua capacidade gráfica. Conse-gue plotar desde gráficos bidimensionais simples até gráficos tridi-mensionais mais complexos por meio de comandos bastante sim-ples.O comando básico é dado por meio da função plot ().

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3781

Page 38: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Gráficos

Exemplo:

Figura: Exemplo de Gráfico Simples

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3782

Page 39: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

GráficosAlguns comandos básicos para gráficos:

Tabela: Comandos básicos para gráficos

Argumentos Básicos Descriçãopch( ) Muda o padrão dos pontoslwd( ) Muda a largura das linhaslty( ) Muda o estilo das linhas

main( ) Título do gráficoxlab( ) Título do eixo xylab( ) Título do eixo ytext( ) Adiciona texto

points( ) Adiciona pontoslines( ) Adiciona linhas

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3783

Page 40: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Gráficos

Exemplo:

Figura: Exemplo de Gráfico

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3784

Page 41: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Ajuda do R (Help)

Em diversos casos precisamos de alguma função ou temos algumadúvida em algum comando do R . Nestes casos existem duas for-mas básicas para descobrir uma função que faça aquilo que vocêdeseja utilizando o help do R.help(nome da função ou comando)ou?(nome da função ou comando).

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3785

Page 42: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Ajuda do R (Help)

Geralmente, o arquivo de help do R possui 10 tópicos básicos:1) Description - faz um resumo geral sobre o uso da função2) Usage - mostra como a função pode ser utilizada e quais os ar-gumentos que devem ser especificados3) Arguments - explica o que é cada um dos argumentos4) Details - explica alguns detalhes sobre o uso e aplicação da fun-ção5) Value - mostra o que sai no output após usar a função (os resul-tados).

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3786

Page 43: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Ajuda do R (Help)

6) Note - algumas notas sobre a função7) Authors - lista os autores da função (quem escreveu os códigosem R)8) References - referências para os métodos utilizados9) See also - mostra outras funções relacionadas que podem serconsultadas10) Examples - exemplos do uso da função.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3787

Page 44: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Instalação de Pacotes

Quando instalarmos o R apenas as configurações mínimas paraseu funcionamento básico são instaladas (pacotes que vem na ins-talação “base”). Para realizar tarefas mais complicadas pode sernecessário instalar pacotes adicionais (packages).Packages ou bibliotecas designam um conjunto de funções (co-mandos) e, ou, dados agregados.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3788

Page 45: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Instalação de Pacotes

As funções básicas do R estão no pacote chamado base. Há outrasbibliotecas já inclusas no R advindas da instalação padrão.Os pacotes do R são desenvolvidos por usuários do próprio R.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3789

Page 46: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Instalação de Pacotes

Para fazer a instalação de pacotes do R podemos fazer por meiodo comando: Pacotes + Escolher espelho CRAN (por exemplo, Bra-zil,RJ) + Nome do Pacote)Importante: Podemos fazer a instalação de pacotes também pormeio Install Package(s) from local zip files (arquivo externo).

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3790

Page 47: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Carregando um PacoteCarregando um pacote do R:

Figura: Carregando PacotePaulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3791

Page 48: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Carregando um Pacote

Outra forma de carregar um pacote é por meio do comando libraryou require + nome do pacote.Exemplo:library(MASS)require(MASS).

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3792

Page 49: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Citação de Pacote

No R existe um comando que mostra como citar o R ou um de seuspacotes.Exemplo:citation("MASS")citation()R Development Core Team (2016). R: A language and environmentfor statistical computing. R Foundation for Statistical Computing, Vi-enna, Austria. ISBN 3-900051-07-0, URL http://www.R-project.org/.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3793

Page 50: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Alguns Pacotes para Otimização

NlcOptim:Resolve problemas de otimização não-linear comrestrições de desigualdade linear e não-linear da igualdade e,implementando um método sequencial de programaçãoquadrática (SQP). Diponível em: CRAN NlcOptim.

dfoptim:Procedimentos de otimização livre de derivativos,contém implementações bastante eficientes R dos algoritmosde Nelder-Mead e Hooke-Jeeves.Diponível em: CRANdfoptim.

maxLik: Métodos de otimização de função deverossimilhança. Diponível em: CRAN maxLik.

limSolve:Encontra o mínimo / máximo de uma função linearou quadrática.Diponível em: CRAN limSolve.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3794

Page 51: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Alguns Pacotes para Otimização

NlcOptim:Resolve problemas de otimização não-linear comrestrições de desigualdade linear e não-linear da igualdade e,implementando um método sequencial de programaçãoquadrática (SQP). Diponível em: CRAN NlcOptim.

dfoptim:Procedimentos de otimização livre de derivativos,contém implementações bastante eficientes R dos algoritmosde Nelder-Mead e Hooke-Jeeves.Diponível em: CRANdfoptim.

maxLik: Métodos de otimização de função deverossimilhança. Diponível em: CRAN maxLik.

limSolve:Encontra o mínimo / máximo de uma função linearou quadrática.Diponível em: CRAN limSolve.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3795

Page 52: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Alguns Pacotes para Otimização

NlcOptim:Resolve problemas de otimização não-linear comrestrições de desigualdade linear e não-linear da igualdade e,implementando um método sequencial de programaçãoquadrática (SQP). Diponível em: CRAN NlcOptim.

dfoptim:Procedimentos de otimização livre de derivativos,contém implementações bastante eficientes R dos algoritmosde Nelder-Mead e Hooke-Jeeves.Diponível em: CRANdfoptim.

maxLik: Métodos de otimização de função deverossimilhança. Diponível em: CRAN maxLik.

limSolve:Encontra o mínimo / máximo de uma função linearou quadrática.Diponível em: CRAN limSolve.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3796

Page 53: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Alguns Pacotes para Otimização

NlcOptim:Resolve problemas de otimização não-linear comrestrições de desigualdade linear e não-linear da igualdade e,implementando um método sequencial de programaçãoquadrática (SQP). Diponível em: CRAN NlcOptim.

dfoptim:Procedimentos de otimização livre de derivativos,contém implementações bastante eficientes R dos algoritmosde Nelder-Mead e Hooke-Jeeves.Diponível em: CRANdfoptim.

maxLik: Métodos de otimização de função deverossimilhança. Diponível em: CRAN maxLik.

limSolve:Encontra o mínimo / máximo de uma função linearou quadrática.Diponível em: CRAN limSolve.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3797

Page 54: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Alguns Pacotes para Otimização

NMOF:Fornece implementações de vários métodos deotimização. Diponível em: CRAN NMOF.

Rsolnp: Utiliza o método do multiplicador de Lagrangeaumentado.Diponível em: CRAN Rsolnp.

lpSolve: Programação linear, inteira, problemas de atribuiçãoe de transporte. Diponível em: CRAN lpSolve.

nloptr:Problemas de otimização não linear.Diponível em:CRAN nloptr.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3798

Page 55: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Alguns Pacotes para Otimização

NMOF:Fornece implementações de vários métodos deotimização. Diponível em: CRAN NMOF.

Rsolnp: Utiliza o método do multiplicador de Lagrangeaumentado.Diponível em: CRAN Rsolnp.

lpSolve: Programação linear, inteira, problemas de atribuiçãoe de transporte. Diponível em: CRAN lpSolve.

nloptr:Problemas de otimização não linear.Diponível em:CRAN nloptr.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3799

Page 56: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Alguns Pacotes para Otimização

NMOF:Fornece implementações de vários métodos deotimização. Diponível em: CRAN NMOF.

Rsolnp: Utiliza o método do multiplicador de Lagrangeaumentado.Diponível em: CRAN Rsolnp.

lpSolve: Programação linear, inteira, problemas de atribuiçãoe de transporte. Diponível em: CRAN lpSolve.

nloptr:Problemas de otimização não linear.Diponível em:CRAN nloptr.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3800

Page 57: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Instalação do RPrincipais FunçõesInstalação de Pacotes

Alguns Pacotes para Otimização

NMOF:Fornece implementações de vários métodos deotimização. Diponível em: CRAN NMOF.

Rsolnp: Utiliza o método do multiplicador de Lagrangeaumentado.Diponível em: CRAN Rsolnp.

lpSolve: Programação linear, inteira, problemas de atribuiçãoe de transporte. Diponível em: CRAN lpSolve.

nloptr:Problemas de otimização não linear.Diponível em:CRAN nloptr.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3801

Page 58: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Otimização em Finanças

Inúmeros problemas em Finanças envolvem encontrar mínimo emáximo de funções multidimensionais. Estes podem ser definidoscomo problemas de otimização.No R existem três funções na instalação base para problemas deotimização: optimize( ) para problemas unidimensionais, optim ( )para problemas multidimensionais, e constrOptim( ) paraotimização com restrições lineares.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3802

Page 59: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1: Otimizar a função f (x) = xsen(4x).

f = function(x) x*sin(4*x)

curve(f,0,3)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3803

Page 60: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1: Otimizar a função f (x) = xsen(4x).

f = function(x) x*sin(4*x)

curve(f,0,3)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3804

Page 61: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma VariávelExemplo: Otimizar a função f (x) = xsen(4x).

Figura: Gráfico função f(x)Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3805

Page 62: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1 : Otimizar a função f (x) = xsen(4x).

optimize(f,c(0,3))

min1 = 1,228297

optimize(f,c(1.5,3))

min2 = 2,771403

optimize(f,c(1,3),maximum=TRUE)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3806

Page 63: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1 : Otimizar a função f (x) = xsen(4x).

optimize(f,c(0,3))

min1 = 1,228297

optimize(f,c(1.5,3))

min2 = 2,771403

optimize(f,c(1,3),maximum=TRUE)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3807

Page 64: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1 : Otimizar a função f (x) = xsen(4x).

optimize(f,c(0,3))

min1 = 1,228297

optimize(f,c(1.5,3))

min2 = 2,771403

optimize(f,c(1,3),maximum=TRUE)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3808

Page 65: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1 : Otimizar a função f (x) = xsen(4x).

optimize(f,c(0,3))

min1 = 1,228297

optimize(f,c(1.5,3))

min2 = 2,771403

optimize(f,c(1,3),maximum=TRUE)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3809

Page 66: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1 : Otimizar a função f (x) = xsen(4x).

optimize(f,c(0,3))

min1 = 1,228297

optimize(f,c(1.5,3))

min2 = 2,771403

optimize(f,c(1,3),maximum=TRUE)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3810

Page 67: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1: Otimizar a função f (x) = xsen(4x).

require(pracma)

f.mins = findmins(f,0,3)

1,228312 e 2,771382

f(f.mins[1:2])

-1,203617 e -2,760177

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3811

Page 68: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1: Otimizar a função f (x) = xsen(4x).

require(pracma)

f.mins = findmins(f,0,3)

1,228312 e 2,771382

f(f.mins[1:2])

-1,203617 e -2,760177

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3812

Page 69: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1: Otimizar a função f (x) = xsen(4x).

require(pracma)

f.mins = findmins(f,0,3)

1,228312 e 2,771382

f(f.mins[1:2])

-1,203617 e -2,760177

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3813

Page 70: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1: Otimizar a função f (x) = xsen(4x).

require(pracma)

f.mins = findmins(f,0,3)

1,228312 e 2,771382

f(f.mins[1:2])

-1,203617 e -2,760177

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3814

Page 71: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Uma Variável

Exemplo 1: Otimizar a função f (x) = xsen(4x).

require(pracma)

f.mins = findmins(f,0,3)

1,228312 e 2,771382

f(f.mins[1:2])

-1,203617 e -2,760177

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3815

Page 72: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 2: Otimizar a função f (x, y) = 1x +

1y +

1−yy(1−x) +

1(1−x)(1−y) .

(Hanna and Sandall, p. 191).

x e y são frações molares (entre 0 e 1)

x = y = seq(0.1,0.9,0.01)

z = outer(x,y,FUN=function(x,y) 1/x + 1/y +(1-y)/(y*(1-x1)) +1/((1-x)*(1-y)))

persp(x,y,z,theta=45,phi=0,col="green")

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3816

Page 73: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 2: Otimizar a função f (x, y) = 1x +

1y +

1−yy(1−x) +

1(1−x)(1−y) .

(Hanna and Sandall, p. 191).

x e y são frações molares (entre 0 e 1)

x = y = seq(0.1,0.9,0.01)

z = outer(x,y,FUN=function(x,y) 1/x + 1/y +(1-y)/(y*(1-x1)) +1/((1-x)*(1-y)))

persp(x,y,z,theta=45,phi=0,col="green")

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3817

Page 74: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 2: Otimizar a função f (x, y) = 1x +

1y +

1−yy(1−x) +

1(1−x)(1−y) .

(Hanna and Sandall, p. 191).

x e y são frações molares (entre 0 e 1)

x = y = seq(0.1,0.9,0.01)

z = outer(x,y,FUN=function(x,y) 1/x + 1/y +(1-y)/(y*(1-x1)) +1/((1-x)*(1-y)))

persp(x,y,z,theta=45,phi=0,col="green")

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3818

Page 75: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 2: Otimizar a função f (x, y) = 1x +

1y +

1−yy(1−x) +

1(1−x)(1−y) .

(Hanna and Sandall, p. 191).

x e y são frações molares (entre 0 e 1)

x = y = seq(0.1,0.9,0.01)

z = outer(x,y,FUN=function(x,y) 1/x + 1/y +(1-y)/(y*(1-x1)) +1/((1-x)*(1-y)))

persp(x,y,z,theta=45,phi=0,col="green")

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3819

Page 76: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 2: Otimizar a função f (x, y) = 1x +

1y +

1−yy(1−x) +

1(1−x)(1−y) .

(Hanna and Sandall, p. 191).

Figura: Gráfico função f(x,y)Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3820

Page 77: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Sempre que se puder razoavelmente assumir que a função obje-tivo é suave ou pelo menos diferenciável, pode-se utilizar o método"BFGS"ou "L-BFGS-B", aplicando "Nelder-Mead"apenas em outroscasos, e apenas para tarefas de baixa dimensionalidade.Todos estes são métodos da função optim. Se a função objetivo énão suave, nenhuma destas abordagens podem ser bem sucedi-das.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3821

Page 78: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

optim(par, fn, gr = NULL, ..., method = c("Nelder-Mead", "BFGS","CG", "L-BFGS-B", "SANN", "Brent"),lower = -Inf, upper = Inf, con-trol = list(), hessian = FALSE)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3822

Page 79: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 2: Otimizar a função f (x, y) = 1x +

1y +

1−yy(1−x) +

1(1−x)(1−y) .

Figura: Otimização f(x,y)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3823

Page 80: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 3: Otimizar a função z(x, y) = 100(y − x2

)2+ (1 − x)2 (Ro-

senbrock “Banana function").

x = y = seq(-1.2,1,0.1)

z = outer(x,y,FUN=function(x,y) 100 ∗ (y − x ∗ x)2 + (1 − x)2)

persp(x,y,z,theta=150,col="blue")

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3824

Page 81: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 3: Otimizar a função z(x, y) = 100(y − x2

)2+ (1 − x)2 (Ro-

senbrock “Banana function").

x = y = seq(-1.2,1,0.1)

z = outer(x,y,FUN=function(x,y) 100 ∗ (y − x ∗ x)2 + (1 − x)2)

persp(x,y,z,theta=150,col="blue")

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3825

Page 82: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 3: Otimizar a função z(x, y) = 100(y − x2

)2+ (1 − x)2 (Ro-

senbrock “Banana function").

x = y = seq(-1.2,1,0.1)

z = outer(x,y,FUN=function(x,y) 100 ∗ (y − x ∗ x)2 + (1 − x)2)

persp(x,y,z,theta=150,col="blue")

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3826

Page 83: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 3: Otimizar a função z(x, y) = 100(y − x2

)2+ (1 − x)2 (Ro-

senbrock “Banana function").

Figura: Otimização z(x,y)Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3827

Page 84: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 3: Otimizar a função z(x, y) = 100(y − x2

)2+ (1 − x)2 (Ro-

senbrock “Banana function").

optim(c(-1.2,1),z)

z = outer(x,y,FUN=function(x,y) 100 ∗ (y − x ∗ x)2 + (1 − x)2)

persp(x,y,z,theta=150,col="blue")

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3828

Page 85: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 3: Otimizar a função z(x, y) = 100(y − x2

)2+ (1 − x)2 (Ro-

senbrock “Banana function").

optim(c(-1.2,1),z)

z = outer(x,y,FUN=function(x,y) 100 ∗ (y − x ∗ x)2 + (1 − x)2)

persp(x,y,z,theta=150,col="blue")

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3829

Page 86: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 3: Otimizar a função z(x, y) = 100(y − x2

)2+ (1 − x)2 (Ro-

senbrock “Banana function").

optim(c(-1.2,1),z)

z = outer(x,y,FUN=function(x,y) 100 ∗ (y − x ∗ x)2 + (1 − x)2)

persp(x,y,z,theta=150,col="blue")

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3830

Page 87: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 3: Otimizar a função z(x, y) = 100(y − x2

)2+ (1 − x)2 (Ro-

senbrock “Banana function").

Figura: Otimização z(x,y)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3831

Page 88: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Otimização com restrições

Na base do R tem a fução constrOptim que permite minimizar umafunção com p parâmetros desconhecidos sujeito a k restrições dedesigualdade lineares. Ele usa a função optim para fazer a maiorparte do cálculo, mas acrescenta uma barreira logarítmica para im-por as restrições.constrOptim(theta, f, grad, ui, ci, mu = 1e-04, control = list(),method= if(is.null(grad)) "Nelder-Mead"else "BFGS",outer.iterations = 100,outer.eps = 1e-05, ...,hessian = FALSE)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3832

Page 89: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Otimização com restrições

Exemplo 4:Minimizar z(x, y) = 100(y − x2

)2+ (1 − x)2 sujeito a:(

1 00 1

) (x1x2

)≤

(11

).

Podendo ser rearranjado da forma:(−1 00 −1

) (x1x2

)−

(−1−1

)≥

(00

)

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3833

Page 90: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Função de Várias Variáveis

Exemplo 4:Minimizar z(x, y) = 100(y − x2

)2+ (1 − x)2.

Figura: Otimização z(x,y)Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3834

Page 91: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Há inúmeros pacotes no R que permitem trabalhar com a progra-mação linear.Exemplos de pacotes:intpoint, lpSolve,Rglpk,e Rsymphony.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3835

Page 92: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

O pacote intpoint de programação linear utiliza o método do pontointerior e gráfico (duas dimensões)para resolver problemas.Exemplo 1: max Z = x1 + 2x2sujeito a:x1 + x2 = 1x2 = 4x1, x2 ≥ 0.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3836

Page 93: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Figura: Método Gráfico

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3837

Page 94: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Exemplo 2: max Z = 500m1 + 400m2sujeito a:20m1 + 20m2 ≤ 1005m1 + 30m2 ≤ 5015m1 + 7m2 ≤ 60m1,m2 ≥ 0.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3838

Page 95: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Utilizando o pacote lpSolve com a função lp temos que definir:

Função objetivo

Matriz de restrições

Tipos de desigualdades

Lado direito das desigualdades.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3839

Page 96: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Utilizando o pacote lpSolve com a função lp temos que definir:

Função objetivo

Matriz de restrições

Tipos de desigualdades

Lado direito das desigualdades.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3840

Page 97: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Utilizando o pacote lpSolve com a função lp temos que definir:

Função objetivo

Matriz de restrições

Tipos de desigualdades

Lado direito das desigualdades.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3841

Page 98: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Utilizando o pacote lpSolve com a função lp temos que definir:

Função objetivo

Matriz de restrições

Tipos de desigualdades

Lado direito das desigualdades.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3842

Page 99: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Utilizando o pacote lpSolve com a função lp temos que definir:

Função objetivo

Matriz de restrições

Tipos de desigualdades

Lado direito das desigualdades.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3843

Page 100: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Figura: Programação linear no R

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3844

Page 101: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Exemplo 3:Uma empresa de investimentos gerencia recursos de terceiros pormeio da escolha de carteiras de investimento para diversos clien-tes, baseados em bonds de diversas empresas. Um de seus clien-tes exige que:

Não mais de 25% do total seja aplicado em um únicoinvestimento.

Mais de 50% do total deve ser aplicado em títulos dematuridade de mais de 10 anos.

O total aplicado em títulos de alto risco deve ser no máximode 50% do total investido.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3845

Page 102: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Exemplo 3:Uma empresa de investimentos gerencia recursos de terceiros pormeio da escolha de carteiras de investimento para diversos clien-tes, baseados em bonds de diversas empresas. Um de seus clien-tes exige que:

Não mais de 25% do total seja aplicado em um únicoinvestimento.

Mais de 50% do total deve ser aplicado em títulos dematuridade de mais de 10 anos.

O total aplicado em títulos de alto risco deve ser no máximode 50% do total investido.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3846

Page 103: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Exemplo 3:Uma empresa de investimentos gerencia recursos de terceiros pormeio da escolha de carteiras de investimento para diversos clien-tes, baseados em bonds de diversas empresas. Um de seus clien-tes exige que:

Não mais de 25% do total seja aplicado em um únicoinvestimento.

Mais de 50% do total deve ser aplicado em títulos dematuridade de mais de 10 anos.

O total aplicado em títulos de alto risco deve ser no máximode 50% do total investido.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3847

Page 104: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Tabela: Títulos Selecionados

Títulos Retorno Anual Vencimento (anos) Risco1 8,7% 15 Muito baixo2 9,5% 12 Regular3 12,0% 8 Alto4 9,0% 7 Baixo5 13,0% 11 Alto6 20,0% 5 Muito alto

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3848

Page 105: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Variáveis de Decisão:– P1 – Parcela do total aplicado no título do tipo 1– P2 – Parcela do total aplicado no título do tipo 2– P3 – Parcela do total aplicado no título do tipo 3– P4 – Parcela do total aplicado no título do tipo 4– P5 – Parcela do total aplicado no título do tipo 5– P6 – Parcela do total aplicado no título do tipo 6

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3849

Page 106: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Função objetivo:

Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Restrição de orçamentoP1 + P2 + P3 + P4 + P5 + P6 = 1

Restrição de aplicaçãoP1,2,3,4,5,6 6 0, 25

Restrição para o mínimo aplicadoP1 + P2 + P5 > 0, 5

Restrição para o máximo aplicadoP3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3850

Page 107: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Função objetivo:Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Restrição de orçamentoP1 + P2 + P3 + P4 + P5 + P6 = 1

Restrição de aplicaçãoP1,2,3,4,5,6 6 0, 25

Restrição para o mínimo aplicadoP1 + P2 + P5 > 0, 5

Restrição para o máximo aplicadoP3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3851

Page 108: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Função objetivo:Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Restrição de orçamento

P1 + P2 + P3 + P4 + P5 + P6 = 1

Restrição de aplicaçãoP1,2,3,4,5,6 6 0, 25

Restrição para o mínimo aplicadoP1 + P2 + P5 > 0, 5

Restrição para o máximo aplicadoP3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3852

Page 109: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Função objetivo:Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Restrição de orçamentoP1 + P2 + P3 + P4 + P5 + P6 = 1

Restrição de aplicaçãoP1,2,3,4,5,6 6 0, 25

Restrição para o mínimo aplicadoP1 + P2 + P5 > 0, 5

Restrição para o máximo aplicadoP3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3853

Page 110: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Função objetivo:Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Restrição de orçamentoP1 + P2 + P3 + P4 + P5 + P6 = 1

Restrição de aplicação

P1,2,3,4,5,6 6 0, 25

Restrição para o mínimo aplicadoP1 + P2 + P5 > 0, 5

Restrição para o máximo aplicadoP3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3854

Page 111: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Função objetivo:Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Restrição de orçamentoP1 + P2 + P3 + P4 + P5 + P6 = 1

Restrição de aplicaçãoP1,2,3,4,5,6 6 0, 25

Restrição para o mínimo aplicadoP1 + P2 + P5 > 0, 5

Restrição para o máximo aplicadoP3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3855

Page 112: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Função objetivo:Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Restrição de orçamentoP1 + P2 + P3 + P4 + P5 + P6 = 1

Restrição de aplicaçãoP1,2,3,4,5,6 6 0, 25

Restrição para o mínimo aplicado

P1 + P2 + P5 > 0, 5

Restrição para o máximo aplicadoP3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3856

Page 113: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Função objetivo:Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Restrição de orçamentoP1 + P2 + P3 + P4 + P5 + P6 = 1

Restrição de aplicaçãoP1,2,3,4,5,6 6 0, 25

Restrição para o mínimo aplicadoP1 + P2 + P5 > 0, 5

Restrição para o máximo aplicadoP3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3857

Page 114: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Função objetivo:Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Restrição de orçamentoP1 + P2 + P3 + P4 + P5 + P6 = 1

Restrição de aplicaçãoP1,2,3,4,5,6 6 0, 25

Restrição para o mínimo aplicadoP1 + P2 + P5 > 0, 5

Restrição para o máximo aplicado

P3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3858

Page 115: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Função objetivo:Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Restrição de orçamentoP1 + P2 + P3 + P4 + P5 + P6 = 1

Restrição de aplicaçãoP1,2,3,4,5,6 6 0, 25

Restrição para o mínimo aplicadoP1 + P2 + P5 > 0, 5

Restrição para o máximo aplicadoP3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3859

Page 116: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Linear

Figura: Retorno da carteira

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3860

Page 117: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Inteira

Um problema de Programação Inteira é um modelo de programa-ção linear no qual algumas ou todas as variáveis do problema per-tencem ao conjunto dos números inteiros.Exemplo:Considere o problema da mochila que pode ser resolvidousando a programação inteira. Seja um vendedor ambulante querencher a mochila de capacidade de peso 105 com itens que têmos seguintes valores e pesos, de modo a maximizar o seu lucro:

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3861

Page 118: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Inteira

Figura: Programação inteira no R

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3862

Page 119: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Quadrática

A programação quadrática visa otimizar uma função quadrática devárias variáveis sujeitas a restrições lineares sobre essas. Isto é,desejamos minimizar a função:

f (x) = −dTx + 12 xTDx

sujeito a: ATx ≥ x0,

em que D é uma matriz de coeficientes quadráticos, d um vectorde coeficientes linear, A uma matriz de restrições, e x0 um vetor devalores de restrição.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3863

Page 120: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação Quadrática

Exemplo 4: f(x) = f (x) = 12 x2

1 + x22 − x1x2 − 2x1 − 6x2

sujeito a: x1 + x2 6 2− x1 + 2x2 6 22x1 + x2 6 30 ≤ x1, 0 ≤ x2.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3864

Page 121: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Programação QuadráticaNo R podemos utilizar o pacote quadprog.

Figura: Programação quadrática no R

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3865

Page 122: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Otimização de Portfólio (Carteiras)

A teoria moderna do portfólio, ou simplesmente teoria do portfólio,busca entender como investidores racionais irão usar o princípioda diversificação para otimizar as suas carteiras de investimentos,e como um ativo arriscado deve ser precificado.O trabalho pioneiro na área de otimização de portfólio foi à propo-sição do modelo média-variância por Markowitz (1952).A teoria doportfólio estabelece que decisões relacionadas à seleção de inves-timentos devam ser tomadas com base na relação risco-retorno.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3866

Page 123: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Otimização de Portfólio (Carteiras)

De acordo com o modelo Markowitz (1952):1 - O retorno da carteira é a combinação ponderada da proporçãode retorno dos ativos que a constituem.2 - A volatilidade da carteira é uma função da correlação ρ dosativos componentes. A alteração na volatilidade é não-linear com amudanças na ponderação dos ativos componentes.A principal motivação para o desenvolvimento destes modelos serelaciona à redução do risco a que o investidor está exposto, pormeio da diversificação ou balanceamento da carteira.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3867

Page 124: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Otimização de Portfólio (Carteiras)

Se formos variando o nível de retorno desejado, e a cada vez re-solvendo o problema de minimização da variância do portfólio, serágerada uma fronteira que possui, para cada nível de retorno, o port-fólio com a menor variância.A parte superior desta fronteira é cha-mada fronteira eficiente. A próxima figura traz um exemplo de umafronteira eficiente composta por sete ativos financeiros.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3868

Page 125: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Otimização de Portfólio (Carteiras)Para construir este gráfico ver aqui.

Figura: Fronteira EficientePaulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3869

Page 126: Métodos de Otimização em Finanças com R · 2 Métodos de Otimização ... por um esforço colaborativo por pessoas de todo o mundo. Sendo ao mesmo tempo uma linguagem de programação

Anais do XLVIII SBPO Simpósio Brasileiro de Pesquisa Operacional

Vitória, ES, 27 a 30 de setembro de 2016.

Introdução ao RMétodos de Otimização

Aplicações em Finanças

Referências

BLOOMFIELD(2014)Using R for Numerical Analysis in Science and Engineering,University ofMinnesota Minneapolis, USA.

CORNUEJOLS,G.,TUTUNCU,R.(2006)Optimization Methods in Finance,Carnegie Mellon University, Pittsburgh,USA.

LACHTERMACHER(2006)Pesquisa Operacional na Tomada de Decisões,Rio de Janeiro:Campus.

MARKOWITZ(1952)Portfolio selection. The Journal of Finance, v. 7, n. 1, p. 77-91, 1952.

Paulo Henrique Sales Guimarães Métodos de Otimização em Finanças com R

3870