Método de Monte Carlo e os perigos de ignorar o desvio padrão

Método de Monte Carlo

Este pequeno experimento visa demonstrar o efeito e perigos de fazer dimensionamento a partir da média, desconsiderando o desvio padrão. Utilizaremos o método de Monte Carlo, em Excel, para isto. Download do arquivo.

Suponha a seguinte situação. Uma fábrica produz 10 mil itens por dia, envia para um centro consumidor, e neste, 10 mil itens são consumidos por dia. Pergunta: qual o estoque necessário para suportar a demanda?

Monte01.jpg

Montando num excel, é só considerar uma coluna para produção (10 mil), outra para demanda (10 mil).
Só tem uma fórmula: estoque de hoje = estoque dia anterior + produção – consumo.

Monte02.png

Resposta: É necessário estoque zero. Nada.
Se o mundo fosse determinístico, perfeito, não seria necessário ter item algum em estoque. Produção é igual à demanda, e fim de papo.


 

Mundo não-determinístico

O único problema é que o mundo não é determinístico. É o livre-arbítrio de cada um de nós que decide o que queremos fazer, o que queremos consumir. A soma de todas essas decisões individuais é o mercado. Não controlamos o mercado. É o mercado que dita as regras, e tais regras podem ter um comportamento estatístico modelável (ou não). Para descrever este comportamento estatístico, podemos lançar mão de ferramentas como o Método de Monte Carlo.

Basicamente, o método de Monte Carlo simula o comportamento da fábrica e o do consumidor, segundo alguma distribuição estatística.

Uma normal (ou gaussiana) é completamente definida por uma média e um desvio padrão. Quanto maior o desvio padrão, maior a chance do valor observado estar mais distante da média.

Monte03.png

No mesmo caso descrito, digamos que tanto a produção quanto o consumo sejam modelados por uma normal de média 10 mil e desvio padrão de 3 mil.

Monte04.jpg

O Monte Carlo vai sortear um valor para a produção, que vai ser próximo de 10 mil, talvez um pouco para cima ou um pouco para baixo. 65% dos valores estarão entre 7 mil e 13 mil (mais ou menos um desvio padrão), 95% dos valores estarão entre 4 mil e 16 mil (dois desvios padrões). Portanto, pode haver um dia com consumo muito acima da média, mas tais ocorrências serão raras. Por haver sorteios, este método lembra um cassino, por isso o nome “Monte Carlo”, em referência ao cassino.

Em termos de modelo Excel, usamos a função genNormal(média, desvio) para simular um sorteio de uma variável aleatória normal. Esta função é do pacote Yasai, cujas fórmulas estão contidas na planilha anexa. O Yasai é um pacote open source para simulação em planilha. Alguns pacotes mais famosos são o Cristal Ball e AtRisk.

Para um trial, ou seja, uma rodada aleatória, a produção gira em torno de 10 mil, a demanda também em torno de 10 mil. Estoque inicial igual a zero. Mas o estoque varia ao longo dos dias.

Monte05.png

No gráfico, nota-se que o estoque ficou negativo a maior parte do tempo.

Monte06.png

Para um outro trial:
(para simular outro trial no excel, apertar F9).

Monte07.png

Deve-se simular o modelo diversas vezes e guardar os resultados, para ter massa de dados para compensar o efeito da aleatoriedade de um trial.

Rodando uns 1000 trials neste caso, vai dar que 50% das vezes haverá problemas de desabastecimento e 50% sem problemas.

Na média, o consumo é igual à produção, mas o problema é o desvio padrão. Para suportar tais flutuações, são necessários os estoques.

 

Digamos, um estoque de 7 mil peças dá um aumento da garantia de abastecimento. O estoque tem que ser suficiente para cobrir o efeito somado dos desvios padrões (consumo e produção).

Monte08.jpg

Deve-se variar o estoque inicial, rodar outros tantos 1000 trials, e verificar a probabilidade de desabastecimento.

A pergunta final a responder é: qual o risco que quero correr? Qual o estoque mínimo que compense o custo do desabastecimento?

  • Se o produto não for importante, pode faltar à vontade, e é necessário pouco ou nenhum estoque.
  • Se o produto for crucial, é bom que o estoque seja bem calculado.
  • Quanto maior o custo do desabastecimento, maior o estoque de segurança necessário.

 

O método de Monte Carlo pode ser utilizado para modelar situações complexas da vida real, e fornecer uma estimativa dos riscos associados. O modelo apresentado é muito simples, mas este pode ser tão complicado quanto se queira, com outras distribuições estatísticas, etc.

Ponderar Riscos x Seguros é exatamente a mesma conta de fazer o seguro do carro. Pagar o seguro é salgado, digamos 2 mil reais, mas ter o azar de ter o carro roubado é muito pior, digamos 50 mil reais.

Um seguro, um estoque, custa caro, mas vale a pena se este for dimensionado para evitar um prejuízo ordens de grandeza maior.

 

 

 

Análise de Monte Carlo e Simulação

O método de Monte Carlo é um método simples de resolver problemas probabilísticos difíceis. Este tutorial é uma introdução bastante simples, didática, deste assunto, uma mistura de história, matemática e mitologia.
A origem do método foi na Segunda Guerra Mundial, proposta pelo matemático americano-polonês Stanislaw Ulam e o matemático americano-húngaro John Von Neumann.

Ulam.JPG
Não é uma coincidência que estes cientistas eram europeus que foram para os Estados Unidos. Vários cientistas de nível mundial fizeram o mesmo, fugindo da dominação europeia dos nazistas.

VonNeumann.JPG
Estes e outros cientistas brilhantes estiveram envolvidos no projeto secreto da Bomba Atômica. Este projeto secreto foi o Projeto Manhattan.


O que a bomba atômica tem haver com simulação?

Esta é uma introdução bem fácil, simplificada, para dar uma ideia do método de Monte Carlo no Projeto Manhattan.

Imagine um átomo de Plutônio.

Um “Átomo” é uma palavra grega para “indivisível”. “A” = não, “tomo” = tomos, divisões. Cientistas acreditavam que estes elementos únicos da natureza eram os blocos de construção de tudo no universo, uma espécie de lego.

Os cientistas da época estavam estudando a recém descoberta fissão nuclear, em que um átomo é quebrado, dividido. O átomo é quebrado em outros elementos e libera uma quantidade espantosa de energia.

Fission1.JPG

O Plutônio enriquecido era um átomo excelente para isto, porque era altamente instável. E o Urânio também, mas fixaremos no Plutônio aqui.

Imagine uma bola no alto de uma montanha. Qualquer empurrãozinho moverá a bola e liberará a energia potencial em energia cinética. Com o Plutônio enriquecido, é o mesmo. Então, o Plutônio era um bom átomo para criar a bomba.

Mas havia uma série de problemas. Processar o mineral natural e enriquecer o Plutônio era um processo bastante doloroso. É como derrubar uma montanha inteira de material, gastando uma quantidade enorme de energia, apenas para obter um miligrama de Plutônio enriquecido. Quanto Plutônio é suficiente? Como poderiam usar isto?


Efeito Dominó

É inofensivo liberar o poder de apenas um átomo. Para criar a bomba, há a necessidade de criar uma reação em cadeia: um átomo libera a energia, e quebra mais um átomo, e mais um: um efeito dominó.

fission2.JPG
A reação subcrítica é quando a bomba não explode: a reação em cadeia não acontece. É como uma cadeia de dominós que é interrompida no caminho.

A reação supercrítica é quando a bomba explode: há uma quantidade exponencial de energia sendo liberada.

Fission3.JPG
A missão dos cientistas era a de encontrar as condições para a reação crítica, que é a divisão entre a bomba explodir ou não.


Não exploda em minhas mãos

O conhecimento da condição crítica tinha dois objetivos principais: eles tinham que assegurar que a bomba explodiria, mas também precisavam ter certeza que isto não explodiria nas mãos deles.

Eles tinham que dividir a quantidade de Plutônio em pequenos pedaços, pequenos o suficiente para não explodir quando eles não quisessem, mesmo se um acidente ocorresse.
E eles tinham que juntar os pedacinhos em uma única peça grande, com material suficiente para causar uma reação em cadeia quando eles quisessem que isto ocorresse (no momento da explosão).

 


Como calcular?

Como calcular se a bomba explodiria ou não?

De forma simplificada, há um modelo para calcular o comportamento de um único átomo: probabilidade de explosão, quantidade de energia liberada para cada átomo fissionado, etc.

Se há um modelo para um único átomo, eles precisavam calcular o comportamento de um grupo de átomos, dado que eles estão a uma certa distância e numa certa densidade. Se há a primeira fissão, o segundo átomo fará o mesmo? E o terceiro?

Em outras palavras, cada átomo é uma variável aleatória. O efeito composto em dois átomos é a soma das duas variáveis aleatórias.

RandomVariables2.JPG
Somar variáveis aleatórias não é uma tarefa fácil. Isto significa resolver uma equação integral (não é fácil nem para gênios como Von Neumann).

Ulam e Von Neumann propuseram duas soluções:

O método de Monte Carlo, com calculadoras humanas. Imagine um modo de dividir os cenários em vários casos pequenos, determinísticos. Cada caso é calculado por uma mulher (homens não são bom na tarefa, porque cometem um monte de erros), usando lápis e papel (consegue imaginar isto?)… e então um matemático agrupava os vários resultados. Isto foi batizado “Monte Carlo” após o nome de um cassino, porque lembra o lançar de dados. Havia uma sala, cheia de mulheres fazendo cálculos. Elas nem sabiam o que estavam calculando, uma vez que o projeto era secreto.

humancomputers.jpg
A segunda solução era usar computadores eletrônicos. O único problema: computadores eletrônicos não existiam. A solução de Von Neumann foi inventar o computador eletrônico! Von Neumann criou a arquitetura conceitual do computador eletrônico (CPU, memória, entradas, saídas, etc), e o computador que usamos hoje ainda usa a arquitetura de Von Neumann.

VonNeumannComputer.jpg

O único problema: não foi completado antes do final da guerra. Portanto, a bomba atômica deveu-se inteiramente aos esforços das calculadoras humanas.

Num mundo probabilístico, usamos variáveis para representar fenômenos estocásticos. Nós escolhemos a variável aleatória certa para representar o que queremos. Se é um evento como a altura de um grupo de pessoas, usamos uma variável aleatória normal. Se é a taxa de chegada de clientes numa fila, normalmente modelamos como uma variável exponencial. Se não temos ideia, mas de alguma forma sabemos o mínimo e o máximo, a distribuição uniforme é uma boa escolha.

RandomVariables.JPG

Um erro muito comum é usar uma função complicada desnecessariamente. Digamos, o analista tem um ano de medições, e ele aprendeu na faculdade que existe uma variável chamada weibull, que fita bem os dados. É uma boa escolha? Não, não é, a menos que ele saiba exatamente o que está fazendo. Isto porque não queremos modelar o passado. Queremos modelar o futuro. E o futuro não necessariamente vai seguir uma weibull complicada. Eu prefiro ser humilde, dizer “Eu não sei exatamente”. O modo que dizemos “Eu não sei”, é usar uma variável aleatória simples, como uma normal, uma uniforme.

Uma vez que sabemos a variável aleatória, podemos usar o método de Monte Carlo. Consiste em jogar um dado. Dependendo do valor que obtemos do dado, obtemos o valor da variável aleatória.

 

Cdfs.JPG

No primeiro exemplo, obtemos 4 do primeiro lançamento, e 0,2do segundo lançamento, resultando em 4,2.

No segundo exemplo, obtemos 6,1 do primeiro lançamento, e 0,7 do segundo lançamento, resultando em 6,7.

Se fizermos isto um milhão de vezes, podemos estimar a distribuição de probabilidades da variável aleatória final. Cada passo é muito muito fácil, determinístico, fácil o suficiente para ser feito por uma calculadora humana, ou um computador eletrônico. Deste modo, podemos modelar um modelo muito complicado de uma forma simples.

RandomVariables4.JPG

Hoje, num simples laptop, temos poder de processamento equivalente a milhões de humanos calculando no braço. E, numa simples planilha do Excel, podemos usar modelos muito, muito complicados, com a ajuda de alguns pacotes computacionais.

Em algum post futuro, mostrarei alguns exemplos.

 



Epílogo.

Plutônio e Urânio

Os cientistas do Projeto Manhattam estavam pesquisando dois átomos: Urânio e Plutônio. No final, eles fizeram duas bombas.

A de Hiroshima era o “Little boy”, “garotinho”, uma bomba de urânio.

A de Nagasaki era o “Fat Man”, “homem gordo”, uma bomba de plutônio.

Urano é o deus do céu, na mitologia grega. Plutão é o deus do inferno. Duas bombas. Céu e Inferno.