Qual distribuição de probabilidade usar? Guia para modelos de Monte Carlo
Escolha a distribuição pelo que você sabe sobre o número incerto, não pelo nome. Uma estimativa de especialista, com valor mínimo, mais provável e máximo, pede uma PERT ou uma triangular; um valor positivo com cauda superior longa, como um custo ou uma duração, pede uma lognormal; uma medida simétrica, uma normal; um tempo até a falha, uma Weibull; uma contagem de eventos, uma Poisson; um evento que ocorre ou não, uma Bernoulli; uma proporção entre 0 e 1, uma beta, e várias partes que precisam somar o todo, uma Dirichlet; o maior valor de um período, uma Gumbel ou uma GEV; um total de perdas, quantas e de que tamanho, uma distribuição composta; e dados históricos, uma distribuição ajustada. O seletor abaixo faz uma ou duas perguntas e indica a distribuição; o xellstorm oferece 52 distribuições no total, incluindo tabelas próprias.
Encontre a sua distribuição
Escolha o que descreve o seu número incerto. Quando uma resposta não basta, uma segunda pergunta se abre logo abaixo.
As distribuições em resumo
Os parâmetros aparecem com o nome que têm no menu de distribuições do xellstorm. Toda distribuição aceita ainda um truncamento (manter só os valores entre dois limites) e um deslocamento.
| Distribuição | Descreve | Parâmetros | Sorteio no Excel |
|---|---|---|---|
| PERT | Estimativas de especialistas com limites, confiando no valor mais provável | mín., mais provável, máx. | BETA.INV(RAND(), α, β, min, max) |
| Triangular | Estimativas de especialistas com limites, com valores próximos a eles possíveis | mín., mais provável, máx. | Um IF com SQRT, veja o guia |
| Uniforme | Uma faixa sem valor favorito | mín., máx. | min+(max-min)*RAND() |
| Normal | Variação simétrica: medidas, erros, totais de muitas partes | média, dp | NORM.INV(RAND(), mean, sd) |
| Lognormal | Valores positivos com cauda superior longa: custos, perdas, durações | s, scale, loc | LOGNORM.INV(RAND(), LN(median), s) |
| Gama | Positiva e assimétrica à direita; o total de várias esperas | a, scale, loc | GAMMA.INV(RAND(), shape, scale) |
| Beta | Proporções e taxas entre 0 e 1 | a, b, loc, scale | BETA.INV(RAND(), α, β) |
| Weibull | Tempo até a falha, desgaste ou falhas precoces | forma, scale, loc | scale*(-LN(1-RAND()))^(1/shape) |
| Exponencial | Tempo entre eventos aleatórios a uma taxa constante | scale, loc | -mean*LN(1-RAND()) |
| Poisson | Eventos em um período a uma taxa média | média | Uma tabela com POISSON.DIST e COUNTIF, veja o guia |
| Binomial negativa | Contagens mais irregulares que uma Poisson: demanda, defeitos agrupados | n, p | Uma tabela com NEGBINOM.DIST e COUNTIF |
| Bernoulli | Se um evento acontece (1) ou não (0) | p | IF(RAND()<p, 1, 0) |
| Binomial | Quantos “sim” em n tentativas | n, p | BINOM.INV(n, p, RAND()) |
| Uniforme inteira | Números inteiros em uma faixa, todos igualmente prováveis | mínimo, máximo | RANDBETWEEN(low, high) |
| Tabela discreta | Poucos valores possíveis, com suas probabilidades | uma tabela de valores e probabilidades | Uma consulta às probabilidades acumuladas |
| Triangular a partir de percentis | Uma triangular definida por um percentil baixo e um alto, não por limites | inferior, mais provável, superior, inferior %, superior % | – |
| t de Student | Simétrica, com caudas pesadas: retornos, erros com valores atípicos | df, loc, scale | loc+scale*T.INV(RAND(), df) |
| Gumbel | O maior de muitos valores: cargas de pico anuais, enchentes | loc, scale | loc-scale*LN(-LN(RAND())) |
| GEV (valor extremo generalizado) | O maior de muitos valores, com cauda mais pesada ou limite superior | forma (c), loc, scale | loc+scale*(1-(-LN(RAND()))^c)/c |
| Metalog | Uma forma flexível que passa por vários percentis | uma tabela de valores e probabilidades | – |
| Composta | O total de um número aleatório de eventos, cada um com seu tamanho: sinistros, perdas | frequência, severidade, franquia, limite | – |
| Emenda (corpo + cauda) | Uma distribuição abaixo de um ponto e outra acima dele: um corpo e uma cauda pesada | abaixo do ponto, acima do ponto, ponto de emenda, proporção abaixo | – |
| Dirichlet (partes de um total) | Partes que somam um total em toda iteração: participações de mercado, a divisão de um orçamento | alpha por célula, total | GAMMA.INV(RAND(), alpha, 1) em cada célula, dividido pela soma |
O xellstorm oferece 52 distribuições. O menu do app lista 29 delas, e mais 23 em “Mais famílias”, a maioria vinda de modelos feitos para suplementos do Excel, que o xellstorm converte na importação (veja como migrar um modelo de um suplemento).
A planilha: cada distribuição como fórmula do Excel
A planilha desta página tem uma linha por distribuição: os parâmetros, um número aleatório de RAND(), um sorteio e a média, o P10 e o P90 por fórmula. Pressione F9 e todos os sorteios mudam. As últimas colunas trazem as mesmas distribuições como entradas do xellstorm, então uma execução mostra lado a lado os sorteios do Excel e os do xellstorm. Cada guia deste site confere as fórmulas da planilha com 10.000 sorteios como esses.
| Distribuição | Exemplo e parâmetros | Média | P10 | P90 |
|---|---|---|---|---|
| Normal | Demanda na próxima temporada (unidades) Média 1.000, Desvio padrão 200 | 1.000 | 744 | 1.256 |
| Lognormal | Custo de reparo de um sinistro (US$) Mediana 2.000, Dispersão do ln 0,8 | 2.754 | 717 | 5.576 |
| Triangular | Custo de um item (milhares de US$) Mín. 80, Mais provável 100, Máx. 140 | 106,7 | 91,0 | 124,5 |
| PERT | Custo de um item (milhares de US$) Mín. 80, Mais provável 100, Máx. 140 | 103,3 | 89,2 | 118,7 |
| Uniforme | Preço unitário (US$) Mín. 40, Máx. 60 | 50 | 42 | 58 |
| Weibull | Vida útil de uma bomba (horas) Forma 1,5, Escala 20.000 | 18.055 | 4.462 | 34.874 |
| Exponencial | Tempo entre quebras (horas) Média 500 | 500 | 53 | 1.151 |
| Poisson | Reclamações em uma semana Média 4 | 4 | 2 | 7 |
| Binomial negativa | Pedidos em uma semana, com mais variação Sucessos 4, Probabilidade 0,5 | 4 | 1 | 8 |
| Bernoulli | Um risco ocorre (1) ou não (0) Probabilidade 0,3 | 0,3 | 0 | 1 |
| Binomial | Unidades defeituosas em um lote de 50 Tentativas 50, Probabilidade 0,04 | 2 | 0 | 4 |
| Beta | Proporção de clientes que renovam Alfa 8, Beta 2 | 80,0% | 63,2% | 93,9% |
| Gama | Dias para concluir três reparos em sequência Forma 3, Escala 2 | 6,0 | 2,2 | 10,6 |
Erros comuns
- Uma distribuição normal para um custo ou uma duração. Ela é simétrica e pode ficar negativa; custos e durações estouram mais do que ficam abaixo do esperado.
- Um P10 e um P90 usados como mínimo e máximo. Eles cortam um quinto dos resultados. Ajuste a distribuição aos percentis.
- Parâmetros errados em
LOGNORM.INV. A função pede a média e o desvio padrão do logaritmo, não dos valores. - Probabilidade × impacto como número fixo. Um risco custa zero ou o impacto inteiro; uma Bernoulli vezes o impacto preserva isso, um valor esperado não.
- Entradas que se movem juntas sorteadas como se fossem independentes. Preços e volumes, ou os custos de serviços que dividem a mesma equipe, costumam subir juntos; correlacione-os, ou a dispersão do total sai estreita demais.
- Percentis somados. A soma dos P90 de vários itens não dá o P90 do total; simule o total (veja P50, P80 e P90).
Guias de cada distribuição
- Guia
Distribuição PERT no Excel: fórmula, média e quando usar
Uma PERT é uma distribuição beta do mínimo ao máximo, com média (mín. + 4 × mais provável + máx.)/6. A fórmula BETA.INV do Excel e PERT x triangular. - Guia
Distribuição triangular no Excel: fórmula, média e comparação com a PERT
A distribuição triangular transforma mínimo, mais provável e máximo em chances que variam em linha reta. A fórmula do Excel para sorteios e percentis, a média e a triangular x PERT. - Guia
Distribuição uniforme no Excel: números aleatórios entre dois valores
A distribuição uniforme torna todos os valores entre um mínimo e um máximo igualmente prováveis. A fórmula do Excel, RANDBETWEEN (ALEATÓRIOENTRE) para números inteiros, a média e quando só uma faixa basta. - Guia
Distribuição normal no Excel: NORM.INV, média e desvio padrão
Sorteie valores de uma distribuição normal no Excel com NORM.INV(RAND(), mean, sd), leia o P10 e o P90 e veja quando a curva em sino serve e quando não serve. - Guia
Distribuição lognormal no Excel: LOGNORM.INV, parâmetros e quando usar
A distribuição lognormal é positiva e tem cauda longa à direita. Como funcionam os parâmetros do LOGNORM.INV, como obtê-los a partir de uma média e um desvio padrão e quando usar. - Guia
Distribuição gama no Excel: tempos de espera, totais e GAMMA.INV
A distribuição gama descreve grandezas positivas e assimétricas à direita, como o tempo total de várias etapas. Forma e escala, GAMMA.INV e GAMMA.DIST no Excel, e gama x lognormal. - Guia
Distribuição beta no Excel: proporções, taxas e percentuais incertos
A distribuição beta descreve uma proporção ou taxa incerta entre 0 e 1. O que significam alfa e beta, como defini-los a partir de uma média e um desvio padrão e o BETA.INV no Excel. - Guia
Distribuição de Weibull no Excel: forma, escala e tempo até a falha
A distribuição de Weibull modela o tempo até a falha: forma abaixo de 1 para falhas precoces, 1 para falhas aleatórias (exponencial) e acima de 1 para desgaste. Fórmulas do Excel, vida B10 e o caso exponencial. - Guia
Distribuição de Poisson no Excel: contagem de eventos e quando usar a binomial negativa
A distribuição de Poisson conta eventos em um período a uma taxa média conhecida. POISSON.DIST, contagens aleatórias de Poisson no Excel sem função inversa e a binomial negativa para contagens que variam mais. - Guia
Distribuições binomial e de Bernoulli no Excel: eventos de sim ou não e contagens em n tentativas
Uma distribuição de Bernoulli é um evento de sim ou não, como um risco que ocorre ou não; a binomial conta os “sim” em n tentativas. Fórmulas do Excel, BINOM.DIST e BINOM.INV, e registros de riscos.
Perguntas
Qual distribuição usar quando não tenho dados?
Peça a quem conhece a grandeza um valor mínimo, um mais provável e um máximo, e use uma PERT ou uma triangular. Se o mínimo e o máximo forem casos de “um em dez”, e não limites, ajuste uma distribuição a esses percentis. Depois confira o que os números implicam (média, P10 e P90) com as pessoas que os deram.
Qual é a melhor distribuição para estimativas de custo?
Para cada item de custo, uma PERT ou triangular a partir de uma estimativa de três pontos, ou uma lognormal quando não há máximo firme. Para riscos que podem ou não ocorrer, uma Bernoulli vezes o impacto. O total, então, é simulado, não estimado: veja o exemplo de contingência de custos de um projeto.
Qual distribuição usar para a duração de tarefas?
Uma PERT ou triangular a partir da estimativa de três pontos de cada tarefa, ou uma lognormal ajustada a durações passadas. As duas admitem uma cauda superior longa. Para o cronograma, simule a rede de tarefas: veja a análise de risco de cronograma.
Qual distribuição usar para sinistros de seguro ou perdas operacionais?
Modele separadamente quantas perdas um período traz e o tamanho de cada uma, e deixe uma distribuição composta somá-las: uma Poisson ou uma binomial negativa para a contagem; uma lognormal, uma gama ou uma Pareto para o tamanho. Quando as perdas grandes seguem uma cauda mais pesada que a das comuns, emende uma Pareto generalizada acima de um limiar ao corpo abaixo dele. Com as duas partes modeladas à parte, cada uma pode ser conferida com os próprios dados, e uma franquia ou um limite se aplica a cada perda.
Como simular percentuais que somem 100%?
Sorteie todos juntos com uma distribuição de Dirichlet, não com uma distribuição separada em cada célula: percentuais independentes raramente somam 100%. No Excel, sorteie GAMMA.INV(RAND(), alpha, 1) (INV.GAMA e ALEATÓRIO no Excel em português) em cada célula e divida cada sorteio pela soma de todos; no xellstorm, escolha Dirichlet (partes de um total) para o intervalo de células.
Como saber se uma distribuição se ajusta aos meus dados?
Ajuste várias e compare. A aba “A partir de dados” do xellstorm ordena os ajustes pelo AIC, que premia o bom ajuste e penaliza parâmetros extras, e mostra os testes de aderência de cada um. Olhe também o histograma contra a curva, sobretudo na cauda que importa para a sua decisão, e cuidado com amostras pequenas.
A escolha da distribuição muda muito os resultados?
Muda mais as caudas do que o centro. Duas formas com os mesmos três números ou a mesma média costumam dar médias parecidas, mas P90 diferentes e chances diferentes de estourar um orçamento. Quando isso importa, rode as duas como cenários, com os mesmos sorteios aleatórios, e compare.
Veja também
- Guia
Simulação de Monte Carlo no Excel, com ou sem suplemento
Três formas de rodar uma simulação de Monte Carlo em um modelo do Excel: RAND() e uma tabela de dados, um suplemento ou uma ferramenta no navegador, sem suplemento. Fórmula PERT incluída. - Guia
P50, P80 e P90: o que significam e em qual nível orçar
P80 é o custo que 80% dos resultados simulados não ultrapassam. Seis itens de custo de uma obra têm P80 que, somados, dão 2.843, mas o P80 da soma deles é 2.756 (milhares de US$). - Guia
Como migrar um modelo do @RISK, ModelRisk ou Analytic Solver
O xellstorm lê 164 funções de distribuição do @RISK, do ModelRisk e do Analytic Solver e lista o que converteu e por que alguma fórmula ficou de fora.
O xellstorm é uma ferramenta de simulação de Monte Carlo para modelos do Excel, que roda no navegador: sem suplemento, e o arquivo nunca sai do seu computador.