Você está na página 1de 126

Introduo ao R

Mtodos de Otimizao
Aplicaes em Finanas

Mtodos de Otimizao em Finanas com R


Paulo Henrique Sales Guimares
Universidade Federal de Lavras
paulo.guimaraes@des.ufla.br

29 de setembro de 2016

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Mtodos de Otimizao em Finanas com R

Introduo ao R
Instalao do R
Principais Funes
Instalao de Pacotes

Mtodos de Otimizao

Aplicaes em Finanas

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Software R

O R foi criado originalmente por Ross Ihaka e por Robert Gentleman na Universidade de Auckland, Nova Zelndia, desenvolvido
por um esforo colaborativo por pessoas de todo o mundo. Sendo
ao mesmo tempo uma linguagem de programao e um ambiente
para computao estatstica e grfica.
Trata-se de uma linguagem de programao especializada em
computao com dados. Algumas das suas principais caractersticas so o seu carter gratuito e a sua disponibilidade para uma
gama bastante variada de sistemas operacionais.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Caractersticas

Software Livre (gratuito)

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Caractersticas

Software Livre (gratuito)


Cdigo Fonte Aberto

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Caractersticas

Software Livre (gratuito)


Cdigo Fonte Aberto
Possui Diversas GUI

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Caractersticas

Software Livre (gratuito)


Cdigo Fonte Aberto
Possui Diversas GUI
Software Colaborativo (pacotes)

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Caractersticas

Software Livre (gratuito)


Cdigo Fonte Aberto
Possui Diversas GUI
Software Colaborativo (pacotes)
Linguagem de Programao

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Caractersticas

Software Livre (gratuito)


Cdigo Fonte Aberto
Possui Diversas GUI
Software Colaborativo (pacotes)
Linguagem de Programao
Manipulao e Anlise de Dados

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Caractersticas

Software Livre (gratuito)


Cdigo Fonte Aberto
Possui Diversas GUI
Software Colaborativo (pacotes)
Linguagem de Programao
Manipulao e Anlise de Dados
Usado em Vrios Sistemas Operacionais
(UNIX,WINDOWS,etc)

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Instalao do R

Primeiro Passo
O programa de instalao do R pode ser baixado a partir do
site: The R Project for Statistical Computing.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Instalao do R

Primeiro Passo
O programa de instalao do R pode ser baixado a partir do
site: The R Project for Statistical Computing.
Devemos escolher o CRAN Mirrors (por exemplo,
Universidade Federal do Paran.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Instalao do R

Primeiro Passo
O programa de instalao do R pode ser baixado a partir do
site: The R Project for Statistical Computing.
Devemos escolher o CRAN Mirrors (por exemplo,
Universidade Federal do Paran.
Sistema Operacional (por exemplo, Windows)

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Instalao do R

Primeiro Passo
O programa de instalao do R pode ser baixado a partir do
site: 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 verso: R.3.3.1 for Windows).

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Instalao do R

Primeiro Passo
O programa de instalao do R pode ser baixado a partir do
site: 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 verso: R.3.3.1 for Windows).

Segundo Passo
Abra o programa de instalao do R que acabou de baixar
(selecione o idioma).

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Instalao do R

Primeiro Passo
O programa de instalao do R pode ser baixado a partir do
site: 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 verso: R.3.3.1 for Windows).

Segundo Passo
Abra o programa de instalao do R que acabou de baixar
(selecione o idioma).
Clique em Avanar e depois no final Concluir.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Software R
Ao iniciar o R abrir automaticamente o Console que a janela
na qual os comandos so digitados. Internamente ao Console, se
encontra o prompt, conforme figura abaixo, que um sinal indicador
de que o programa est pronto para receber comando.

Figura: Interface do R - Console e Prompt


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Software R
Uma forma mais fcil de inserir os comandos no R por meio do
script (Arquivo + Novo Script + Janela (Dividir Lado a Lado).

Figura: Interface do R - Script


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Interface do R

R uma linguagem de expresses com regras e sintaxe muito simples.


Faz distino entre maisculas e minsculas, de modo que os caracteres x e X so interpretados como sendo diferentes.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Tipos de Dados
Basicamente tem-se quatro tipos de dados no R: nmericos, caracteres, lgicos e nmeros complexos.

Figura: Tipos de Dados


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Comandos Bsicos
No R possvel fazer uma atribuio de valores de vrias formas,
conforme o exemplo:

Figura: Atribuio de Valores


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Comandos Bsicos
O R pode funcionar como uma calculadora executando operaes
matemticas.

Figura: Atribuio de Valores


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Tabela: Operadores Bsicos

Smbolo
<
>
<=
>=
==
&
|
!
!=
TRUE ou 1
FALSE ou 0

Descrio
Menor
Maior
Menor Igual
Maior Igual
Comparao
E (and)
Ou (or)
No
Diferente
Valor verdadeiro (booleano)
Valor falso (booleano)

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Comandos Bsicos
Na prxima tabela so apresentadas algumas outras operaes
possveis:
Tabela: Funes Matemticas Bsicas
Funo
abs(x)
ceiling(x)
exp(x)
floor(x)
length(x)
log(x)
log(x,a)
max(x)
min(x)
sqrt(x)

Descrio
Valor absoluto de x
Arredondamento de x para o maior valor
Exponencial elevado a x
Arredondamento de x para o menor valor
Nmero de elementos do vetor x
Logaritmo natural de x
Logaritmo de x com base a
Seleciona o maior valor de x
Menor valor de x
Raiz quadrada de x

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Vetores
Vetores so conjuntos de dados unidimensionais. Sua principal
utilidade poder armazenar diversos dados em forma de lista e
aplicar funes e operaes sobre todos os dados pertencentes a
determinado vetor.
Para criar um vetor devemos utilizar o comando c().
Exemplos:

Mtodos de Otimizao em Finanas com R


Figura: Vetores

Paulo Henrique Sales Guimares

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Vetores
O comando seq() bastante til para a criao de vetores.
Exemplos:

Figura: Comando seq()

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Vetores
O comando rep() tambm pode ser utilizado para a criao de vetores.
Exemplos:

Figura: Comando req()


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Matrizes
Assim como os vetores, h tambm vrias maneiras de se criar
matrizes no R.
A funo matrix() recebe um vetor como argumento e o transforma
em uma matriz de acordo com as dimenses especificadas.
Exemplos:

Figura: Matrizes
Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Matrizes
Algumas operaes bsicas com matrizes:
Tabela: Operaes Bsicas Matrizes

Funo
A%*%B
t(A)
solve(A)
x=solve(A,b)
det(B)
eigen(A)

Descrio
Produto matricial de A por B
Transposta da matriz A
Inversa da matriz A
Resolve o sistema linear Ax=b
Determinante de B
Retorna os autovalores e autovetores de A

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Matrizes
Alguns exemplos de operaes com matrizes:

Figura: Exemplos de operaes com matrizes

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Dados Externos

Geralmente, trabalhamos com arquivos salvos sob forma de planilhas, tabelas, etc.Desta forma, precisamos que o R leia estes arquivos, transformando-os em um objeto.
Para que o R reconhea o conjunto de dados do arquivo necessrio que as colunas sejam separadas. Caso isso no ocorra o R
no conseguir separar as colunas e emitir uma mensagem de
erro. Um modo fcil de resolver este problema salvar a planilha
de dados com o formato (.csv) que utiliza virgula (,) como elemento
separador das colunas ou no formato (.txt).

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Dados Externos
Antes de iniciar a entrada de dados no R deve-se alterar o diretrio
no R em que a pasta de trabalho padro com o arquivo de dados
(.csv ou .txt) est salvo (Arquivo - Mudar Diretrio).
Para verificar qual o diretrio use getwd() .
Outra forma de mudar o diretrio por meio do comando:setwd("C:/Documents and Settings/Administrador/Meus documentos/temp1").
Em seguida, devemos dar o comando para que o R carregue o arquivo (.csv ou .txt) no console de trabalho da forma:
dados<-read.table("exemplo.txt",h=T) ou
dados<-read.table("exemplo.csv",h=T).

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Dados Externos

No R muito comum trabalharmos com conjuntos de dados da


forma de Data Frame.Estes possuem linhas e colunas, em que
cada coluna pode armazenar elementos de diferentes tipos.
Assim data.frame um tipo especial de lista, composta por vetores
de mesmo tamanho, mas que podem ser de classes diferentes:

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Dados Externos

O R permite acessar um banco de dados disponvel na web.Esta


tarefa importante,pois facilita o acesso aos dados provenientes da
internet sem a necessidade dos dados serem copiados para algum
diretrio e, posteriormente, carregados para o R.
Para fazer a leitura usamos: read.table("http://endereo").
Exemplo:read.table("http://www.leg.ufpr.br/ paulojus/dados/exemplo02.txt").

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Funes

Uma das grandes vantagens do R poder criar (programar) novas


funes. Para fazer uma funo so necessrios as seguintes atribuies:
nome(da funo)<-function(argumento1,...,argumenton).

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Funes
Exemplo:

Figura: Funo Mdia


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Grficos

Outra grande vantagem do R a sua capacidade grfica. Consegue plotar desde grficos bidimensionais simples at grficos tridimensionais mais complexos por meio de comandos bastante simples.
O comando bsico dado por meio da funo plot ().

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Grficos
Exemplo:

Figura: Exemplo de Grfico Simples


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Grficos
Alguns comandos bsicos para grficos:
Tabela: Comandos bsicos para grficos

Argumentos Bsicos
pch( )
lwd( )
lty( )
main( )
xlab( )
ylab( )
text( )
points( )
lines( )
Paulo Henrique Sales Guimares

Descrio
Muda o padro dos pontos
Muda a largura das linhas
Muda o estilo das linhas
Ttulo do grfico
Ttulo do eixo x
Ttulo do eixo y
Adiciona texto
Adiciona pontos
Adiciona linhas
Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Grficos
Exemplo:

Figura: Exemplo de Grfico


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Ajuda do R (Help)

Em diversos casos precisamos de alguma funo ou temos alguma


dvida em algum comando do R . Nestes casos existem duas formas bsicas para descobrir uma funo que faa aquilo que voc
deseja utilizando o help do R.
help(nome da funo ou comando)ou
?(nome da funo ou comando).

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Ajuda do R (Help)

Geralmente, o arquivo de help do R possui 10 tpicos bsicos:


1) Description - faz um resumo geral sobre o uso da funo
2) Usage - mostra como a funo pode ser utilizada e quais os argumentos que devem ser especificados
3) Arguments - explica o que cada um dos argumentos
4) Details - explica alguns detalhes sobre o uso e aplicao da funo
5) Value - mostra o que sai no output aps usar a funo (os resultados).

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Ajuda do R (Help)

6) Note - algumas notas sobre a funo


7) Authors - lista os autores da funo (quem escreveu os cdigos
em R)
8) References - referncias para os mtodos utilizados
9) See also - mostra outras funes relacionadas que podem ser
consultadas
10) Examples - exemplos do uso da funo.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Instalao de Pacotes

Quando instalarmos o R apenas as configuraes mnimas para


seu funcionamento bsico so instaladas (pacotes que vem na instalao base). Para realizar tarefas mais complicadas pode ser
necessrio instalar pacotes adicionais (packages).
Packages ou bibliotecas designam um conjunto de funes (comandos) e, ou, dados agregados.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Instalao de Pacotes

As funes bsicas do R esto no pacote chamado base. H outras


bibliotecas j inclusas no R advindas da instalao padro.
Os pacotes do R so desenvolvidos por usurios do prprio R.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Instalao de Pacotes

Para fazer a instalao de pacotes do R podemos fazer por meio


do comando: Pacotes + Escolher espelho CRAN (por exemplo, Brazil,RJ) + Nome do Pacote)
Importante: Podemos fazer a instalao de pacotes tambm por
meio Install Package(s) from local zip files (arquivo externo).

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Carregando um Pacote
Carregando um pacote do R:

Figura: Carregando Pacote


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Carregando um Pacote

Outra forma de carregar um pacote por meio do comando library


ou require + nome do pacote.
Exemplo:
library(MASS)
require(MASS).

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Citao de Pacote

No R existe um comando que mostra como citar o R ou um de seus


pacotes.
Exemplo:
citation("MASS")
citation()
R Development Core Team (2016). R: A language and environment
for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-0, URL http://www.R-project.org/.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Alguns Pacotes para Otimizao


NlcOptim:Resolve problemas de otimizao no-linear com
restries de desigualdade linear e no-linear da igualdade e,
implementando um mtodo sequencial de programao
quadrtica (SQP). Diponvel em: CRAN NlcOptim.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Alguns Pacotes para Otimizao


NlcOptim:Resolve problemas de otimizao no-linear com
restries de desigualdade linear e no-linear da igualdade e,
implementando um mtodo sequencial de programao
quadrtica (SQP). Diponvel em: CRAN NlcOptim.
dfoptim:Procedimentos de otimizao livre de derivativos,
contm implementaes bastante eficientes R dos algoritmos
de Nelder-Mead e Hooke-Jeeves.Diponvel em: CRAN
dfoptim.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Alguns Pacotes para Otimizao


NlcOptim:Resolve problemas de otimizao no-linear com
restries de desigualdade linear e no-linear da igualdade e,
implementando um mtodo sequencial de programao
quadrtica (SQP). Diponvel em: CRAN NlcOptim.
dfoptim:Procedimentos de otimizao livre de derivativos,
contm implementaes bastante eficientes R dos algoritmos
de Nelder-Mead e Hooke-Jeeves.Diponvel em: CRAN
dfoptim.
maxLik: Mtodos de otimizao de funo de
verossimilhana. Diponvel em: CRAN maxLik.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Alguns Pacotes para Otimizao


NlcOptim:Resolve problemas de otimizao no-linear com
restries de desigualdade linear e no-linear da igualdade e,
implementando um mtodo sequencial de programao
quadrtica (SQP). Diponvel em: CRAN NlcOptim.
dfoptim:Procedimentos de otimizao livre de derivativos,
contm implementaes bastante eficientes R dos algoritmos
de Nelder-Mead e Hooke-Jeeves.Diponvel em: CRAN
dfoptim.
maxLik: Mtodos de otimizao de funo de
verossimilhana. Diponvel em: CRAN maxLik.
limSolve:Encontra o mnimo / mximo de uma funo linear
ou quadrtica.Diponvel em: CRAN limSolve.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Alguns Pacotes para Otimizao

NMOF:Fornece implementaes de vrios mtodos de


otimizao. Diponvel em: CRAN NMOF.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Alguns Pacotes para Otimizao

NMOF:Fornece implementaes de vrios mtodos de


otimizao. Diponvel em: CRAN NMOF.
Rsolnp: Utiliza o mtodo do multiplicador de Lagrange
aumentado.Diponvel em: CRAN Rsolnp.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Alguns Pacotes para Otimizao

NMOF:Fornece implementaes de vrios mtodos de


otimizao. Diponvel em: CRAN NMOF.
Rsolnp: Utiliza o mtodo do multiplicador de Lagrange
aumentado.Diponvel em: CRAN Rsolnp.
lpSolve: Programao linear, inteira, problemas de atribuio
e de transporte. Diponvel em: CRAN lpSolve.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Instalao do R
Principais Funes
Instalao de Pacotes

Alguns Pacotes para Otimizao

NMOF:Fornece implementaes de vrios mtodos de


otimizao. Diponvel em: CRAN NMOF.
Rsolnp: Utiliza o mtodo do multiplicador de Lagrange
aumentado.Diponvel em: CRAN Rsolnp.
lpSolve: Programao linear, inteira, problemas de atribuio
e de transporte. Diponvel em: CRAN lpSolve.
nloptr:Problemas de otimizao no linear.Diponvel em:
CRAN nloptr.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Otimizao em Finanas

Inmeros problemas em Finanas envolvem encontrar mnimo e


mximo de funes multidimensionais. Estes podem ser definidos
como problemas de otimizao.
No R existem trs funes na instalao base para problemas de
otimizao: optimize( ) para problemas unidimensionais, optim ( )
para problemas multidimensionais, e constrOptim( ) para
otimizao com restries lineares.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1: Otimizar a funo f (x) = xsen(4x).


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

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1: Otimizar a funo f (x) = xsen(4x).


f = function(x) x*sin(4*x)
curve(f,0,3)

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel


Exemplo: Otimizar a funo f (x) = xsen(4x).

Figura: Grfico funo f(x)


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1 : Otimizar a funo f (x) = xsen(4x).


optimize(f,c(0,3))

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1 : Otimizar a funo f (x) = xsen(4x).


optimize(f,c(0,3))
min1 = 1,228297

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1 : Otimizar a funo f (x) = xsen(4x).


optimize(f,c(0,3))
min1 = 1,228297
optimize(f,c(1.5,3))

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1 : Otimizar a funo f (x) = xsen(4x).


optimize(f,c(0,3))
min1 = 1,228297
optimize(f,c(1.5,3))
min2 = 2,771403

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1 : Otimizar a funo 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 Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1: Otimizar a funo f (x) = xsen(4x).


require(pracma)

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1: Otimizar a funo f (x) = xsen(4x).


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

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1: Otimizar a funo f (x) = xsen(4x).


require(pracma)
f.mins = findmins(f,0,3)
1,228312 e 2,771382

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1: Otimizar a funo f (x) = xsen(4x).


require(pracma)
f.mins = findmins(f,0,3)
1,228312 e 2,771382
f(f.mins[1:2])

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Uma Varivel

Exemplo 1: Otimizar a funo 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 Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Exemplo 2: Otimizar a funo f (x, y) =


(Hanna and Sandall, p. 191).

1
x

1
y

1y
y(1x)

1
(1x)(1y) .

x e y so fraes molares (entre 0 e 1)

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Exemplo 2: Otimizar a funo f (x, y) =


(Hanna and Sandall, p. 191).

1
x

1
y

1y
y(1x)

1
(1x)(1y) .

x e y so fraes molares (entre 0 e 1)


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

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Exemplo 2: Otimizar a funo f (x, y) =


(Hanna and Sandall, p. 191).

1
x

1
y

1y
y(1x)

1
(1x)(1y) .

x e y so fraes 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)))

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Exemplo 2: Otimizar a funo f (x, y) =


(Hanna and Sandall, p. 191).

1
x

1
y

1y
y(1x)

1
(1x)(1y) .

x e y so fraes 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 Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis


Exemplo 2: Otimizar a funo f (x, y) =
(Hanna and Sandall, p. 191).

1
x

1
y

1y
y(1x)

1
(1x)(1y) .

Figura: Grfico funo f(x,y)


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Sempre que se puder razoavelmente assumir que a funo objetivo suave ou pelo menos diferencivel, pode-se utilizar o mtodo
"BFGS"ou "L-BFGS-B", aplicando "Nelder-Mead"apenas em outros
casos, e apenas para tarefas de baixa dimensionalidade.
Todos estes so mtodos da funo optim. Se a funo objetivo
no suave, nenhuma destas abordagens podem ser bem sucedidas.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

optim(par, fn, gr = NULL, ..., method = c("Nelder-Mead", "BFGS",


"CG", "L-BFGS-B", "SANN", "Brent"),lower = -Inf, upper = Inf, control = list(), hessian = FALSE)

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis


Exemplo 2: Otimizar a funo f (x, y) =

1
x

1
y

1y
y(1x)

1
(1x)(1y) .

Figura: Otimizao f(x,y)


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Exemplo 3: Otimizar a funo z(x, y) = 100 y x2


senbrock Banana function").

2

+ (1 x)2 (Ro-

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

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Exemplo 3: Otimizar a funo z(x, y) = 100 y x2


senbrock Banana function").

2

+ (1 x)2 (Ro-

x = y = seq(-1.2,1,0.1)
z = outer(x,y,FUN=function(x,y) 100 (y x x)2 + (1 x)2 )

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Exemplo 3: Otimizar a funo z(x, y) = 100 y x2


senbrock Banana function").

2

+ (1 x)2 (Ro-

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 Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis




Exemplo 3: Otimizar a funo z(x, y) = 100 y x2


senbrock Banana function").

2

+ (1 x)2 (Ro-

Figura: Otimizao z(x,y)


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Exemplo 3: Otimizar a funo z(x, y) = 100 y x2


senbrock Banana function").

2

+ (1 x)2 (Ro-

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

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Exemplo 3: Otimizar a funo z(x, y) = 100 y x2


senbrock Banana function").

2

+ (1 x)2 (Ro-

optim(c(-1.2,1),z)
z = outer(x,y,FUN=function(x,y) 100 (y x x)2 + (1 x)2 )

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis

Exemplo 3: Otimizar a funo z(x, y) = 100 y x2


senbrock Banana function").

2

+ (1 x)2 (Ro-

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 Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis




Exemplo 3: Otimizar a funo z(x, y) = 100 y x2


senbrock Banana function").

2

+ (1 x)2 (Ro-

Figura: Otimizao z(x,y)


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Otimizao com restries

Na base do R tem a fuo constrOptim que permite minimizar uma


funo com p parmetros desconhecidos sujeito a k restries de
desigualdade lineares. Ele usa a funo optim para fazer a maior
parte do clculo, mas acrescenta uma barreira logartmica para impor as restries.
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 Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Otimizao com restries

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

2

+ (1 x)2 sujeito a:

1 0 x1
1

.
0 1 x2
1
! !
!
!
1 0 x1
1
0
Podendo ser rearranjado da forma:

0 1 x2
1
0

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Funo de Vrias Variveis




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

2

+ (1 x)2 .

Figura: Otimizao z(x,y)


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

H inmeros pacotes no R que permitem trabalhar com a programao linear.


Exemplos de pacotes:intpoint, lpSolve,Rglpk,e Rsymphony.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

O pacote intpoint de programao linear utiliza o mtodo do ponto


interior e grfico (duas dimenses)para resolver problemas.
Exemplo 1: max Z = x1 + 2x2
sujeito a:

x1 + x2 = 1
x2 = 4
x1 , x2 0.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Figura: Mtodo Grfico

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Exemplo 2: max Z = 500m1 + 400m2


sujeito a:

20m1 + 20m2 100


5m1 + 30m2 50
15m1 + 7m2 60
m1 , m2 0.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Utilizando o pacote lpSolve com a funo lp temos que definir:

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Utilizando o pacote lpSolve com a funo lp temos que definir:


Funo objetivo

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Utilizando o pacote lpSolve com a funo lp temos que definir:


Funo objetivo
Matriz de restries

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Utilizando o pacote lpSolve com a funo lp temos que definir:


Funo objetivo
Matriz de restries
Tipos de desigualdades

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Utilizando o pacote lpSolve com a funo lp temos que definir:


Funo objetivo
Matriz de restries
Tipos de desigualdades
Lado direito das desigualdades.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Figura: Programao linear no R


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Exemplo 3:
Uma empresa de investimentos gerencia recursos de terceiros por
meio da escolha de carteiras de investimento para diversos clientes, baseados em bonds de diversas empresas. Um de seus clientes exige que:
No mais de 25% do total seja aplicado em um nico
investimento.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Exemplo 3:
Uma empresa de investimentos gerencia recursos de terceiros por
meio da escolha de carteiras de investimento para diversos clientes, baseados em bonds de diversas empresas. Um de seus clientes exige que:
No mais de 25% do total seja aplicado em um nico
investimento.
Mais de 50% do total deve ser aplicado em ttulos de
maturidade de mais de 10 anos.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Exemplo 3:
Uma empresa de investimentos gerencia recursos de terceiros por
meio da escolha de carteiras de investimento para diversos clientes, baseados em bonds de diversas empresas. Um de seus clientes exige que:
No mais de 25% do total seja aplicado em um nico
investimento.
Mais de 50% do total deve ser aplicado em ttulos de
maturidade de mais de 10 anos.
O total aplicado em ttulos de alto risco deve ser no mximo
de 50% do total investido.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Tabela: Ttulos Selecionados

Ttulos
1
2
3
4
5
6

Retorno Anual
8,7%
9,5%
12,0%
9,0%
13,0%
20,0%

Vencimento (anos)
15
12
8
7
11
5

Paulo Henrique Sales Guimares

Risco
Muito baixo
Regular
Alto
Baixo
Alto
Muito alto

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Variveis de Deciso:
P1 Parcela do total aplicado no ttulo do tipo 1
P2 Parcela do total aplicado no ttulo do tipo 2
P3 Parcela do total aplicado no ttulo do tipo 3
P4 Parcela do total aplicado no ttulo do tipo 4
P5 Parcela do total aplicado no ttulo do tipo 5
P6 Parcela do total aplicado no ttulo do tipo 6

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Funo objetivo:

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Funo objetivo:
Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Funo objetivo:
Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6
Restrio de oramento

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Funo objetivo:
Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6
Restrio de oramento

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

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Funo objetivo:
Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6
Restrio de oramento

P1 + P2 + P3 + P4 + P5 + P6 = 1
Restrio de aplicao

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Funo objetivo:
Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6
Restrio de oramento

P1 + P2 + P3 + P4 + P5 + P6 = 1
Restrio de aplicao

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

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Funo objetivo:
Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6
Restrio de oramento

P1 + P2 + P3 + P4 + P5 + P6 = 1
Restrio de aplicao

P1,2,3,4,5,6 6 0, 25
Restrio para o mnimo aplicado

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Funo objetivo:
Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6
Restrio de oramento

P1 + P2 + P3 + P4 + P5 + P6 = 1
Restrio de aplicao

P1,2,3,4,5,6 6 0, 25
Restrio para o mnimo aplicado

P1 + P2 + P5 > 0, 5

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Funo objetivo:
Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6
Restrio de oramento

P1 + P2 + P3 + P4 + P5 + P6 = 1
Restrio de aplicao

P1,2,3,4,5,6 6 0, 25
Restrio para o mnimo aplicado

P1 + P2 + P5 > 0, 5
Restrio para o mximo aplicado

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear
Funo objetivo:
Max 0, 087P1 + 0, 095P2 + 0, 12P3 + 0, 09P4 + 0, 13P5 + 0, 2P6
Restrio de oramento

P1 + P2 + P3 + P4 + P5 + P6 = 1
Restrio de aplicao

P1,2,3,4,5,6 6 0, 25
Restrio para o mnimo aplicado

P1 + P2 + P5 > 0, 5
Restrio para o mximo aplicado

P3 + P5 + P6 6 0, 5

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Linear

Figura: Retorno da carteira

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Inteira

Um problema de Programao Inteira um modelo de programao linear no qual algumas ou todas as variveis do problema pertencem ao conjunto dos nmeros inteiros.
Exemplo:Considere o problema da mochila que pode ser resolvido
usando a programao inteira. Seja um vendedor ambulante quer
encher a mochila de capacidade de peso 105 com itens que tm
os seguintes valores e pesos, de modo a maximizar o seu lucro:

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Inteira

Figura: Programao inteira no R

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Quadrtica

A programao quadrtica visa otimizar uma funo quadrtica de


vrias variveis sujeitas a restries lineares sobre essas. Isto ,
desejamos minimizar a funo:

f (x) = dT x + 12 xT Dx
sujeito a: AT x x0 ,
em que D uma matriz de coeficientes quadrticos, d um vector
de coeficientes linear, A uma matriz de restries, e x0 um vetor de
valores de restrio.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Quadrtica

Exemplo 4: f(x) = f (x) = 12 x12 + x22 x1 x2 2x1 6x2


sujeito a: x1 + x2 6 2

x1 + 2x2 6 2
2x1 + x2 6 3
0 x1 , 0 x2 .

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Programao Quadrtica
No R podemos utilizar o pacote quadprog.

Figura: Programao quadrtica no R


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Otimizao de Portflio (Carteiras)

A teoria moderna do portflio, ou simplesmente teoria do portflio,


busca entender como investidores racionais iro usar o princpio
da diversificao para otimizar as suas carteiras de investimentos,
e como um ativo arriscado deve ser precificado.
O trabalho pioneiro na rea de otimizao de portflio foi proposio do modelo mdia-varincia por Markowitz (1952).A teoria do
portflio estabelece que decises relacionadas seleo de investimentos devam ser tomadas com base na relao risco-retorno.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Otimizao de Portflio (Carteiras)

De acordo com o modelo Markowitz (1952):


1 - O retorno da carteira a combinao ponderada da proporo
de retorno dos ativos que a constituem.
2 - A volatilidade da carteira uma funo da correlao dos
ativos componentes. A alterao na volatilidade no-linear com a
mudanas na ponderao dos ativos componentes.
A principal motivao para o desenvolvimento destes modelos se
relaciona reduo do risco a que o investidor est exposto, por
meio da diversificao ou balanceamento da carteira.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Otimizao de Portflio (Carteiras)

Se formos variando o nvel de retorno desejado, e a cada vez resolvendo o problema de minimizao da varincia do portflio, ser
gerada uma fronteira que possui, para cada nvel de retorno, o portflio com a menor varincia.A parte superior desta fronteira chamada fronteira eficiente. A prxima figura traz um exemplo de uma
fronteira eficiente composta por sete ativos financeiros.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Otimizao de Portflio (Carteiras)


Para construir este grfico ver aqui.

Figura: Fronteira Eficiente


Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R

Introduo ao R
Mtodos de Otimizao
Aplicaes em Finanas

Referncias

BLOOMFIELD(2014)
Using R for Numerical Analysis in Science and Engineering,University of
Minnesota Minneapolis, USA.

UNC

,R.(2006)
CORNUEJOLS,G.,T UT
U
Optimization Methods in Finance,Carnegie Mellon University, Pittsburgh,
USA.
LACHTERMACHER(2006)
Pesquisa Operacional na Tomada de Decises,Rio de Janeiro:Campus.
MARKOWITZ(1952)
Portfolio selection. The Journal of Finance, v. 7, n. 1, p. 77-91, 1952.

Paulo Henrique Sales Guimares

Mtodos de Otimizao em Finanas com R