Вы находитесь на странице: 1из 16

Introduo simulao de Monte Carlo1

Aplica-se ao: Microsoft Office Excel 2003 Aplica-se a Microsoft Office Excel 2003

Este artigo foi adaptado do Microsoft Excel Data Analysis and Business Modeling de Wayne L. Winston. Visite Microsoft Learning para aprender mais sobre este livro. Este livro estilo sala de aula foi desenvolvido de uma srie de apresentaes por Wayne Winston, um estatstico e professor de negcios bem conhecido que se especializou em aplicaes prticas e criativas do Excel. Para ficar preparado voc deve precisar colocar a sua imaginao a funcionar.

Neste Artigo
Quem usa a simulao de Monte Carlo?

O que acontece quando Eu entro com =ALEATRIO() numa clula?

Como posso simular valores de uma varivel aleatria discreta?

Como posso simular valores de uma varivel aleatria normal ?

Como deveria uma empresa de cartes comemorativos determinar quantos cartes produzir?

O impacto do risco nas nossas decises

Intervalo de confiana para o lucro mdio

Problemas

Sample files: Voc pode download os samples files que esto relacionados aos fragmentos do Microsoft Excel Data Analysis and Business Modeling no Microsoft Office Online: http://www.microsoft.com/downloads/details.aspx?FamilyId=B01F647E-2DF5414C-8513-F3AD06B63ACB&displaylang=en Este artigo usa os arquivos RandDemo.xls, Discretesim.xls, NormalSim.xls, e

Este artigo encontra-se no site da Microsoft: http://office.microsoft.com/en-us/excel/HA011118931033.aspx O que fizemos foi traduzi-lo para que nossos alunos que ainda no conseguem ler em ingls possam desfrutar dos ensinamentos brilhantes que aqui se encontram quanto a Simulao de Monte Carlo no Excel.
1

Valentine.xls.

Gostaramos de ser capaz de acuradamente estimar as probabilidades dos eventos incertos. Por exemplo, qual a probabilidade que os fluxos de caixa de um novo produto fluxos de caixa tero um valor presente lquido (VPL) positivo? Qual o risco do nosso portflio de investimentos? Simulao de Monte Carlo habilita-nos a modelar situaes com incerteza presente e rod-las milhares de vezes num computador.

NOTA

O nome simulao de Monte Carlo vem do fato que durante os anos 1930s e 1940s, muitas simulaes em

computadores eram realizadas para estimar a probabilidade de que uma reao em cadeia necessria para uma bomba atmica funcionasse com sucesso. Os fsicos envolvidos neste trabalho eram grandes apreciadores de jogos de azar, ento eles deram s simulaes o nome cdigo de Monte Carlo.

Quem usa a simulao de Monte Carlo?


Muitas companhias usam simulao de Monte Carlo como uma importante ferramenta para tomada de deciso. Aqui esto alguns exemplos.

General Motors, Procter and Gamble, e Eli Lilly usam simulao para estimar ambos os retornos mdios e o risco de novos produtos. Na GM, esta informao usada pelo CEO Rick Waggoner para determinar os produtos que viro a mercado. GM usa simulao para atividades tais como projees de lucro lquido para a corporao, previso de custos estruturais e custos de compra, determinando sua susceptibilidade a diferentes espcies de risco (tais como taxas de juros e mudanas e flutuaes nas taxas de cmbio). Lilly usa simulao para determinar a capacidade tima da planta que dever ser construda para cada droga. As empresas de Wall Street usam simulao para precificar derivativos financeiros complexos e determinar o Value at RISK (VAR) dos seus portflios de investimentos. Procter and Gamble usa simulao para modelar e otimizar a proteo ao risco do cmbio estrangeiro. Sears uses simulao para determinar quantas unidades de cada linha de produto devero ser pedidas aos fornecedores por exemplo, quantos pares de Dockers devero ser pedidos este ano. Simulao pode ser usada para avaliar "real options," tal como o valor de uma opo expandir, contrair, ou adiar um projeto. Planejadores financeiros usam simulao de Monte Carlo para determinar estratgias de investimentos timas para seus clientes.

O que acontece quando Eu entro com =ALEATRIO() numa clula?


Quando voc entrar com a frmula =ALEATRIO() numa clula, voc obtm um nmero que igualmente provvel assumir qualquer valor entre 0 e 1. Assim, cerca de 25 % do tempo, voc dever obter um nmero menor que ou igual a .25; cerca de 10 % do tempo voc obter um nmero que no mnimo .90, e, assim por diante. Para ver como a funo ALEATRIO funciona, d uma olhada no arquivo RandDemo.xls, mostrado na figura seguinte.

NOTA

Quando voc abrir o arquivo RandDemo.xls, voc no ver os mesmos nmeros aleatrios mostrados na figura anterior.

A funo ALEATRIO sempre recalcula os nmeros que ela gera quando uma planilha aberta ou nova informao entrada na planilha.

Eu copiei a frmula =ALEATRIO() da clula C3 para C4:C402. Eu nomeei o intervalo C3:C402 como dados. Da ento, na coluna F, Eu rastreei a mdia dos 400 nmeros aleatrios (clula F2) e usei a funo CONT.SE para determinar as fraes que esto entre 0 e ,25, ,25 e ,50, ,50 e ,75 e ,75 e 1. Quando voc pressionar a tecla F9, os nmeros aleatrios so recalculados. Note que a mdia dos 400 nmeros est sempre prxima de 0,5 e que cerca de 25 % dos resultados esto em cada intervalo de 0,25. Estes resultados so consistentes com a definio de um nmero aleatrio. Note tambm que os valores gerados pela ALEATRIO em diferentes clulas so independentes. Por exemplo, se o nmero aleatrio gerado na clula C3 um nmero grande (digamos, 0,99), isto nos diz nada sobre os valores dos outros nmeros aleatrios gerados.

Como posso simular valores de uma varivel aleatria discreta?


Suponha que a demanda por um calendrio seja governada pela seguinte varivel aleatria discreta.

Demanda 10.000 2.000 40.000 60.000

Probabilidade .10 .35 .3 .25

Como podemos ter o Excel jogando, ou simulando, esta demanda por calendrios muitas vezes? O truque associar cada valor possvel da funo ALEATRIO com uma demanda possvel por calendrios. A tarefa seguinte assegura que uma demanda de 10.000 ocorrer 10 % das vezes, e, assim por diante.

Demanda 10.000 20.000 40.000 60.000

Nmeros Aleatrios Atribudos Menor que ,10 Maior que ou igual a ,10, e menor que ,45 Maior que ou igual a ,45, e menor que ,75. Maior que ou igual a ,75.

Para ver uma simulao da demanda, observe o arquivo Discretesim.xls, mostrado na seguinte figura.

A chave da nossa simulao usar um nmero aleatrio para ajustar uma procura no intervalo tabela F2:G5 (chamado de procura). Nmeros aleatrios maiores que ou iguais a 0 e menores que ,10 conduziro a uma demanda de 10.000; nmeros aleatrios maiores que ou iguais a ,10 e menores que ,45 conduziro a uma demanda de 20.000; nmeros aleatrios maiores que ou iguais a ,45 e menores que ,75 conduziro a uma demanda de 40.000; e nmeros aleatrios maior que ou igual a ,75 conduziro a uma demanda de 60.000. Eu gerei 400 nmeros aleatrios copiando de C3 para C4:C402 a frmula ALEATRIO(). Da ento eu gerei 400 tentativas ou iteraes de demandas de calendrios copiando a frmula PROCV(C3,procura,2) de B3 para B4:B402. Esta frmula assegura que qualquer nmero aleatrio menor que ,10 gera uma demanda de 10.000; qualquer nmero aleatrio entre ,10 e ,45 gera uma demanda de 20.000, e, assim por diante. No intervalo de clulas F8:F11, usei a funo CONT.SE para determinar a frao das nossas 400 iteraes conduzindo cada demanda. Note que sempre que voc pressionar F9 para recalcular os nmeros aleatrios, as probabilidades simuladas ficam prximas s nossas probabilidades de demanda assumidas.

Como posso simular valores de uma varivel aleatria normal?


Se voc entrar em qualquer clula com a frmula INV.NORM(aleatrio(), mu , sigma), voc gerar um valor simulado de uma varivel aleatria normal tendo uma mdia mu e um desvio padro sigma. Eu ilustrei este procedimento no arquivo NormalSim.xls, mostrado na figura seguinte.

Vamos supor que queiramos simular 400 tentativas ou iteraes para uma varivel aleatria normal com uma mdia de 40.000 e um desvio padro de 10.000. (Entrei com estes valores nas clulas E1 e E2 e chamei estas clulas de media e sigma, respectivamente). Copiando a frmula =ALEATRIO() de C4 para C5:C403 gera 400 nmeros aleatrios diferentes. Copiando de B4 para B5:B403 a frmula INV.NORM(C4,media,sigma) gera 400 valores tentativas (trial) diferentes de uma varivel aleatria normal com uma media de 40.000 e um desvio padro de 10.000. Quando pressionamos a tecla F9 para recalcular os nmeros aleatrios, a mdia permanece perto de 40.000 e o desvio padro perto de 10.000.

Essencialmente, para um nmero aleatrio x, a frmula INV.NORM(p, mu , sigma) gera o psimo percentil de uma varivel aleatria normal com uma mdia mu e um desvio padro sigma. Por exemplo, o nmero aleatrio ,8466 na clula C13 gera na clula B13 aproximadamente o 85-simo percentil de uma varivel aleatria normal com uma mdia de 40.000 e um desvio padro de 10.000.

Como deveria uma companhia de comemorativos determinar quantos produzir?

cartes cartes

Nesta seo, Eu mostrarei como a simulao de Monte Carlo pode ser usada como uma ferramenta para ajudar os homens de negcios a tomarem melhores decises. Suponha que a demanda por um carto Valentines Day seja governado pela seguinte varivel aleatria discreta:

Demanda 10.000 20.000 40.000 60.000

Probabilidade .10 .35 .3 .25

O carto de comemorao vendido por $4,00, e o custo varivel para produzir cada carto $1,50. As sobras de cartes devem ser desfeitas a um custo de $0,20 por carto. Quantos cartes devero ser impressos?

Basicamente, simulamos cada possvel quantidade de produo (10.000, 20.000, 40.000 ou 60.000) muitas vezes (digamos, 1.000 iteraes). Da ento determinamos que quantidade pedida conduz ao mximo lucro mdio durante as 1.000 iteraes. Voc pode encontrar o trabalho para esta seo no arquivo Valentine.xls, mostrado na figura seguinte. Eu atribui o nome de intervalo para as clulas B1:B11 at clulas C1:C11. Eu atribui para o intervalo de clulas G3:H6 o nome procura. Nossos parmetro preo de vendas e custo so entrados nas clulas C4:C6.

Da ento eu entrei com a quantidade de produo trial (40.000 neste exemplo) na clula C1. A seguir Eu criei um nmero aleatrio na clula C2 com a frmula =ALEATRIO(). Como descrito anteriormente, Eu simulei a demanda por carto na clula C3 com a frmula PROCV(aleatrio,procura,2). (Na frmula PROCV, aleatrio o nome de clula atribudo clula C3, no a funo ALEATRIO).

O nmero de unidades vendidas o menor entre a nossa quantidade de produo e a demanda. Na clula C8, Eu calculei nossa receita com a frmula MIN(demanda produzida)*preo_unitrio. Na clula C9, Eu calculei o custo total de produo com a frmula produzido*custo_de_producao_unitario.

Se produzirmos mais que o demandado, o nmero de unidades de sobras igual produo menos demanda; caso contrrio nenhuma unidade est sobrando. Calculamos nosso custo de disposio na clula C10 com a frmula custo_unitario_do_pedido*SE(produzido>demanda produzida-demanda,0). Finalmente, na clula C11, calculamos nosso lucro como receita-custo_variavel_total custo_total_do_pedido.

Gostaramos de uma maneira eficiente de pressionar F9 muito (digamos 1.000 vezes) para cada quantidade de produo e calcularmos nosso lucro esperado para cada quantidade de produo. Esta situao uma em que uma tabela de dados bidimensional atinge o nosso objetivo. A tabela de dados que usei neste exemplo est mostrada na figura seguinte.

No intervalo de clulas A16:A1015, Eu entrei com os nmeros 1-1000 (correspondendo as nossas 1.000 tentativas). Um modo fcil de criar estes valores entrar com 1 na clula A16, selecionar a clula, e da ento, na guia Incio, no grupo de ferramentas Edio, clicar Preencher e no menu suspenso selecionar Srie...

Na caixa de dilogo Srie, mostrada na figura seguinte, entre com um Incremento de valor 1 e Limite 1000. Sob Srie em, clique Colunas, e depois ento clique OK. Os nmeros de 1 at 1000 sero entrados automaticamente na coluna A, comeando na clula A16.

A seguir entremos com nossas possveis quantidades de produo (10.000, 20.000, 40.000, 60.000) nas clulas B15:E15. Ns queremos calcular o lucro para cada nmero tentativa (1 at 1.000) e cada quantidade de produo. Ns referimos a formula para lucro (calculado na clula C11) na clula superior esquerda da nossa tabela de dados (A15) entrando com =C11.

Agora estamos prontos para forjar no Excel uma simulao de 1.000 iteraes de demanda para cada quantidade de produo. Selecione o intervalo tabela (A15:E1014), e depois ento na guia Dados, no grupo Ferramentas de Dados, clique em Testes de Hipteses e no menu suspenso selecione Tabela de Dados....

Para montar uma tabela de dados bidimensional, selecionamos qualquer clula vazia (escolhemos a clula I14) como nossa Clula de entrada de coluna e escolhemos nossa quantidade de produo (clula C1) como a clula de entrada de linha. Quando voc clicar OK, Excel simula 1.000 valores de demanda para cada quantidade pedida.

Para ilustrar como isto funciona, consideremos os valores colocados na tabela de dados no intervalo de clulas C16:C1015. Para cada uma destas clulas, Excel usar um valor de 20.000 na clula C1. Na C16, a coluna de clulas de entrada de valor 1 colocada numa clula vazia e o nmero aleatrio na clula C2 recalculado. O lucro correspondente ento gravado na clula C16. Da ento o valor da coluna de clulas de entrada 2 colocado numa clula vazia, e o nmero aleatrio em C2 novamente recalcula. O lucro correspondente entrado na clula C17.

Copiando da clula B13 at C13:E13 a frmula MDIA(B16:B1015), calculamos o lucro simulado mdio para cada quantidade de produo. Copiando a frmula DESVPAD (B16:B1015) da clula B14 at C14:E14, calculamos o desvio padro dos nossos lucros simulados para cada quantidade pedida. Cada vez que pressionarmos F9, 1.000 iteraes de demanda so simuladas para cada quantidade pedida. Produzir 40.000 cartes sempre conduz ao maior lucro esperado. Portanto, ele parece como se produzir 40.000 cartes a deciso apropriada.

O impacto do risco na nossa deciso


Se produzirmos 20.000 cartes em vez de 40.000 cartes, nosso lucro esperado cai aproximadamente 22 %, mas nosso risco (quando medido pelo desvio padro do lucro) cai quase 73 %. Portanto, se formos extremamente avessos ao risco, produzir 20.000 cartes poder ser a deciso correta. A propsito, produzir 10.000 cartes sempre tem um desvio padro zero porque se produzirmos 10.000 cartes, venderemos sempre todos eles e no teremos sobras.

NOTA

Clicar no boto do Office e aparecer a janela

No final da janela selecionar Opes do Excel e aparecer esta outra janela:

NO menu esquerda selecione Frmulas

Nesta planilha, Eu configurei a opo Clculo para Automtico, exceto para tabela de dados. Esta configurao assegura que nossa tabela de dados no recalcular a menos que pressionemos F9, isto uma boa idia porque uma grande tabela de dados desacelerar seu trabalho se ela recalcular cada vez que voc digitar alguma coisa na sua planilha. Note que neste exemplo, sempre que voc pressionar F9, o lucro mdio mudar. Isto acontece porque cada vez que voc pressionar F9 uma sequncia diferente de 1.000 nmeros aleatrios usada para gerar demandas para cada quantidade pedida.

Intervalo de Confiana para o lucro mdio


Uma questo natural a ser perguntada nesta situao "Dentro de qual intervalo 95 % dos nossos dados para o lucro mdio cairo?" Este intervalo chamado de intervalo de confiana 95 % para o lucro mdio. Um intervalo de confiana de 95 % para a mdia de qualquer simulao calculado pela seguinte frmula.

1,96

Na clula J11, Eu calculei o limite inferior para o intervalo de confiana de 95 % sobre o lucro mdio quando 40.000 calendrios forem produzidos com a frmula D13-1.96*D14/RAIZ(1000). Na clula J12, Eu calculei o limite superior para o nosso intervalo de confiana de 95% com a frmula D13+1.96*D14/RAIZ(1000). Estes clculos so mostrados na seguinte figura:

Estamos 95 % certos de que nosso lucro mdio quando 40.000 calendrios forem pedidos est entre $53.860 e $59.934.

Problemas
1. Uma distribuidora da GMC acredita que a demanda por Envoys 2005 ser normalmente distribuda com uma mdia de 200 e um desvio padro de 30. Seu custo em receber um Envoy $25.000, e ele vende um Envoy por $40.000. Metade de todos os Envoys que sobram podem ser vendidos por $30.000. Ele est considerando pedir 200, 220, 240, 260, 280, ou 300 Envoys. Quantos ele dever pedir? 2. Um pequeno supermercado est tentando determinar quantos exemplares do magazine People eles devero pedir por semana. Eles acreditam que sua demanda pela People governada pela seguinte varivel aleatria discreta.
Demanda 15 20 25 30 35 Probabilidade .10 .20 .30 .25 .15

3.

O supermercado paga $1,00 por cada exemplar da People e vende cada exemplar por $1,95. Eles podem devolver cada exemplar no vendida da People por $0,50. Quantos exemplares da People devero ser pedidos pela loja?