Distribuição normal no Excel: NORM.INV, média e desvio padrão
Resumindo: a curva em sino. A maioria dos resultados fica perto da média e, quanto mais longe dela, mais raro o valor, igualmente para os dois lados.
A distribuição normal descreve uma grandeza que varia de forma simétrica em torno da média, com a dispersão dada pelo desvio padrão. No Excel, =NORM.INV(RAND(), mean, sd) sorteia um valor dela. Para uma demanda com média de 1.000 unidades e desvio padrão de 200, o P10 é 744 e o P90, 1.256, e cerca de 95% dos resultados ficam a até dois desvios padrão da média: de 600 a 1.400.
O que é a distribuição normal
A distribuição normal é a curva em sino: a maioria dos resultados fica perto da média, quanto mais longe dela menos resultados há, e os dois lados são espelhados. Dois números a definem por completo. A média fixa o centro, que é também a mediana e o valor mais provável. O desvio padrão fixa a largura: cerca de dois terços dos resultados ficam a até um desvio padrão da média.
Como ler o gráfico: cada barra conta quantos dos 10.000 valores simulados caíram naquele trecho, e a linha é a curva teórica. Quanto mais alta a barra, mais vezes os valores caem ali. As linhas pontilhadas marcam o P10 e o P90: oito resultados em cada dez ficam entre elas.
| Faixa | Demanda | Proporção dos resultados |
|---|---|---|
| Média ± 1 desvio padrão | 800 – 1.200 | 68,3% |
| Média ± 2 desvios padrão | 600 – 1.400 | 95,4% |
| Média ± 3 desvios padrão | 400 – 1.600 | 99,7% |
Os percentis saem dos mesmos dois números: o P90 fica 1,2816 desvios padrão acima da média e o P10 à mesma distância abaixo dela, então 80% dos resultados caem entre 744 e 1.256.
A distribuição normal no Excel
NORM.INV(probability, mean, standard_deviation) (INV.NORM.N no Excel em português) devolve o valor abaixo do qual cai a proporção indicada dos resultados. Com uma probabilidade fixa, dá um percentil; com RAND() (ALEATÓRIO) como probabilidade, dá um sorteio aleatório, novo a cada recálculo da planilha. A planilha desta página guarda o número aleatório em uma célula própria, para você ver qual sorteio veio de qual número; em uma célula só, o sorteio é =NORM.INV(RAND(),D5,F5).
| Célula | Fórmula | Valor |
|---|---|---|
| Número aleatório u (I5) | =RAND() | |
| Sorteio (J5) | =NORM.INV(I5, | |
| Sorteio em uma célula | =NORM.INV(RAND(), | |
| Média (K5) | =D5 | 1.000 |
| P10 (L5) | =NORM.INV(0.1, | 744 |
| P90 (M5) | =NORM.INV(0.9, | 1.256 |
Conferir os números: valores exatos contra 10.000 sorteios do Excel e do xellstorm
| Exato | Excel, RAND() | xellstorm | |
|---|---|---|---|
| Média | 1.000 | 998 | 1.000 |
| Desvio padrão | 200 | 199 | 200 |
| P10 | 744 | 743 | 744 |
| P50 (mediana) | 1.000 | 996 | 1.000 |
| P90 | 1.256 | 1.251 | 1.256 |
O Excel sorteia com RAND(), totalmente ao acaso; o xellstorm distribui os sorteios de modo uniforme pela faixa (amostragem por Hipercubo Latino), por isso as estatísticas dele ficam mais perto dos valores exatos.
A pergunta inversa, qual a chance de a demanda ficar abaixo de um nível, se responde com NORM.DIST(x, mean, standard_deviation, TRUE) (DIST.NORM.N no Excel em português): =NORM.DIST(700, 1000, 200, TRUE) dá 6,7%, a chance de uma temporada abaixo de 700 unidades. Os nomes antigos NORMINV e NORMDIST ainda funcionam. Um sorteio é só uma temporada possível; para ver o que a incerteza faz com um lucro ou um nível de estoque, o modelo precisa de milhares deles, e é isso que uma simulação de Monte Carlo faz (veja simulação de Monte Carlo no Excel).
Quando a distribuição normal serve
- Medidas em torno de um alvo. Dimensões usinadas, pesos de enchimento e erros de medição variam de forma simétrica em torno de um valor nominal, como no exemplo de empilhamento de tolerâncias.
- Totais de muitas partes independentes. Some muitas incertezas pequenas que não dependem umas das outras e o total terá forma de sino, qualquer que seja a forma de cada parte. Os estatísticos chamam isso de teorema central do limite.
- Demanda de um produto consolidado, cujo desvio padrão é pequeno em relação à média, como a demanda do exemplo de quantidade de pedido.
Quando não serve
A distribuição normal não tem limite inferior: dá valores negativos com alguma probabilidade. Para a demanda desta página essa chance é desprezível, mas com um desvio padrão de 500, metade da média, 2,3% dos sorteios seriam uma demanda negativa. Para grandezas que não podem ser negativas e têm grande dispersão, use uma distribuição lognormal ou gama, ou trunque a normal em zero.
Ela também é simétrica. Custos e durações costumam estourar mais do que ficar abaixo do previsto; uma distribuição PERT, triangular ou lognormal reproduz essa assimetria. E ela torna os extremos muito raros: valores a mais de três desvios padrão da média quase nunca ocorrem, o que subestima os grandes movimentos de preços e retornos. A t de Student dá valores extremos com mais frequência.
Como usar a distribuição normal no xellstorm
- Abra a planilha, clique na célula incerta e escolha Tornar entrada.
- Na etapa Distribuições, escolha Normal e informe média e dp (o desvio padrão). As colunas Média e P10 – P90 mostram o que os dois números dão antes de você rodar.
- Se você pensa em um valor baixo, um típico e um alto, e não em um desvio padrão, selecione a entrada e use “A partir de estimativas” no painel lateral: informe o P10, o P50 e o P90 e escolha Normal. Com valores passados, “A partir de dados” ajusta uma normal e outras formas a eles e ordena os ajustes.
- Para manter os sorteios acima de zero, abra “Truncar / deslocar / escalar” abaixo dos parâmetros e informe 0 em truncar mín.
Uma planilha que já sorteia com =NORM.INV(RAND(), mean, sd) não precisa ser reescrita: “Importar da planilha” transforma essa célula em uma entrada normal, com a média e o desvio padrão ainda vinculados às células deles. Modelos feitos para suplementos são convertidos do mesmo modo a partir de RiskNormal, VoseNormal e PsiNormal.
Perguntas
Como gerar números aleatórios com distribuição normal no Excel?
Use =NORM.INV(RAND(), mean, sd), por exemplo =NORM.INV(RAND(), 1000, 200) para média 1.000 e desvio padrão 200. Cada recálculo (F9) sorteia um valor novo. Copie a fórmula para baixo em uma coluna para ter muitos sorteios; a média deles se aproxima da média e o desvio padrão se aproxima do que você informou.
Qual é a diferença entre NORM.INV e NORM.DIST?
Elas respondem a perguntas opostas. NORM.DIST(x, mean, sd, TRUE) recebe um valor e devolve a probabilidade de um resultado abaixo dele; NORM.INV(p, mean, sd) recebe uma probabilidade e devolve o valor que tem essa proporção de resultados abaixo. Para uma demanda com média 1.000 e desvio padrão 200, NORM.INV(0.9, 1000, 200) dá 1.256, e NORM.DIST desse valor devolve 0,9.
Como encontrar o P90 de uma distribuição normal?
O P90 é a média mais 1,2816 desvios padrão, ou, no Excel, =NORM.INV(0.9, mean, sd): 1.256 para média 1.000 e desvio padrão 200. O P10 fica à mesma distância abaixo da média, 744, e o P95 é 1.329. São percentis de uma única entrada; o P90 do total de várias entradas exige uma simulação, porque percentis não se somam (veja P50, P80 e P90).
Uma distribuição normal pode dar valores negativos?
Pode. A distribuição normal se estende sem limite nos dois sentidos, então sempre dá valores negativos com alguma probabilidade. Quando a média está a mais de uns quatro desvios padrão acima de zero, essa probabilidade é minúscula; quando o desvio padrão é metade da média, ela é 2,3%. Para valores que não podem ser negativos, trunque a distribuição em zero ou use uma lognormal ou uma gama.
Veja também
- Guia
Qual distribuição de probabilidade usar? Guia para modelos de Monte Carlo
Encontre a distribuição de probabilidade certa em duas perguntas: PERT, triangular, normal, lognormal, Weibull, Poisson, binomial, beta e outras, com a finalidade de cada uma e a fórmula dela no Excel. - 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. - Empilhamento de tolerâncias
Análise de empilhamento de tolerâncias: pior caso, RSS ou Monte Carlo?
Uma carcaça e cinco peças: no pior caso, a folga pode encolher até 0,120 mm; o RSS prevê 3,29% de folgas abaixo de 0,4 mm e 20.000 iterações de Monte Carlo encontram 3,21%.
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.