Simulação de Monte Carlo – uma viagem ao fantástico mundo dos números aleatórios

Por Nazareno Júnior (profissional convidado) *

Simulação de Monte Carlo – uma viagem ao fantástico mundo dos números aleatórios que todo atuário e estatístico da área da saúde suplementar deveria conhecer.

Iniciarei mais este artigo tão logo justificando seu título, ele é mais uma provocação. É claro que existem vários atuários que trabalham na área da saúde suplementar que utilizam ou pelo menos tem uma boa noção de simulação. Porém, o fato é que estamos (me incluo) muito presos ainda aos modelos determinísticos e como forma de aprimorar cada vez mais as análises é que venho escrever sobre esta temática.

Recentemente, li um comentário em algum dos meus artigos que nós atuários somos os “poetas da incerteza”. Confesso que foi a primeira vez que li ou ouvi isso e, como um apaixonado pela ciência atuarial, gostei muito desta denominação e arrisco dizer, dentre outros resultados, que o espaço amostral convergente, fruto de “n” rodadas de simulação, para mim, é o mesmo que uma poesia ilustrada em gráficos e números.

O que parecia ser humanamente impossível, já não é mais faz tempo. As rotinas computacionais estão cada vez mais aprimoradas e robustas, as ferramentas hoje existentes no mercado são inúmeras, então realmente é impressionante e parece até magia! Senão vejamos.

Um simples exemplo que dá para se fazer na mão se quiser!

Considere as duas distribuições abaixo:

Distribuições de probabilidade

O espaço amostral das despesas agregadas resultante da interação entre as duas distribuições acima é:

O espaço acima foi calculado através da árvore de combinações abaixo:

Até aqui tranquilo não? Mas e se ao invés de ser dois registros de frequência fossem 10? Ai a árvore aumentaria exponencialmente e só com rotinas computacionais para nos ajudar a calcular seu espaço amostral final.

Diante da contextualização acima é que costumo dizer que um dos maiores baratos da vida é poder aprender sempre. Os gênios que já passaram na Terra deixaram muito material de mão beijada para nós. Está tudo aí, a quantidade de recursos intelectuais disponível na internet é imensa. Basta querer e apertar o botão play da curiosidade, não é mesmo J. Von Neuman? Muito obrigado!

Neste sentido, apesar de já existir muito material na internet disponível, abordarei neste artigo algo mais voltado para a realidade atuarial na saúde suplementar com o uso do Visual Basic for Applications (VBA), destacando que, o que quero mostrar aqui é mais a essência por trás da técnica. Então vamos lá.

Primeiro de tudo vamos destacar, a título de lembrança, as distribuições discretas e contínuas e na sequência descrever a lógica básica da Simulação de Monte Carlo, incluindo um exemplo de aplicação na área de seguros de automóveis e por fim uma contextualização e exemplos sugestivos para a área de saúde suplementar.

Informo ainda que muito do material aqui exposto foi extraído das apresentações acadêmicas da época da faculdade elaboradas pelo nosso grande mestre .

Distribuições Discretas

  • Bernoulli
  • Binomial
  • Binomial Negativa
  • Geométrica 1
  • Geométrica 2
  • Hipergeométrica
  • Multinomial
  • Pascal 1
  • Pascal 2
  • Poisson

Distribuições Contínuas

  • Beta
  • Cauchy
  • Chi-Quadrado
  • Erlang
  • Exponencial
  • Função do Erro
  • Gamma
  • Inversa de Gauss
  • Aplace
  • Logística
  • LogLogística
  • Log-Normal
  • Pareto
  • Pearson
  • Maxwell
  • Normal
  • Normal NP
  • Rayleigh
  • T – Student
  • Triangular
  • Uniforme
  • Valor Extremo
  • Weibull

A lógica básica do processo de Simulação de Monte Carlo

Geração de números aleatórios (variates)

Tudo parte de um randômico (RND) uniformemente distribuído entre 0 e 1 (no Excel é o “= ALEATORIO()”) a partir de F(X). Abaixo para o caso discreto e contínuo:

Destacam-se abaixo alguns exemplos de rotinas de geração de variates conforme a distribuição de interesse.

Distribuição de Poisson – POI (L)

X = 0

       TR = RND()

       B = EXP(- L)

       DO WHILE TR >= B

            TR =TR * RND()

           X = X + 1

       LOOP

Distribuição Binomial – BIN (N, P)

X = 0

      FOR I = 1 TO N

          R = RND()

          IF (R – P) = 0 THEN

            X = X +1

          END IF

       NEXT I

Distribuição Normal – N (EX, STDX)

(Versão Teorema do Limite Central)

   SUM = 0

        FOR I = 1 TO 12

            SUM = SUM + RND()

       NEXT I

       X = STDX * (SUM – 6) + EX   

Obs: dependendo da análise, se faz necessário truncar em zero, devido o (SUM – 6).

A Distribuição Normal, por sua vez, além da versão TLC, apresenta ainda as versões Polar e a Schmeiser. Faça o download de uma que compara as quatro versões (TLC, Polar Seno, Polar Cosseno e Schmeiser) pela convergência dos parâmetros e o teste de qui-quadrado.

Distribuição Normal – N (EX, STDX)

(Versão Polar)

        R1 = RND

        R2 = RND

        Z1 = ((-2 * LOG(R1))^(1/2)) * COS (2 * pi * R2)

        Z2 = ((-2 * LOG(R1))^(1/2)) * SEN (2 * pi * R2)

        X1 = STDX*Z1 + EX

        X2 = STDX*Z2 + EX

Onde pi = 3,14159265358979

Distribuição Normal – N (EX, STDX)

(Versão de Schmeiser)

       R = RND

        Z = ((R^0,135) – ((1 – R)^(0,135))) / 0,1975

        X = STDX * Z + EX

As rotinas das demais distribuições podem ser encontradas .

Um exemplo de Simulação de Monte Carlo em Atuária

Na sequência, mais alguns pontos/questionamentos devem ser analisados, dependendo do caso a ser estudado, quais sejam:

  • A convergência da simulação deve ser verificada para enxergar se a geração dos números aleatórios foi de fato em conformidade às informações determinísticas (uma sugestão é pelo menos fazer um comparativo entre a média simulada e a média determinística, quanto mais próximas melhor).
  • Considerar os outliers da distribuição de entrada?
  • A semente aleatória da simulação deve ser randomizada ou podemos entender, não utilizar semente aleatória para que possamos aumentar a amplitude de geração.
  • Importância da Lei dos Grandes Números: o número de rodadas deve ser suficientemente grande:

Simulação de Monte Carlo para a Saúde Suplementar

Nobres leitores, o custo assistencial per capita é a principal variável aleatória deste mercado. Existem outras, inclusive ligadas à receita, mas vamos ficar apenas com ele mesmo, pois já é assunto por demais a ser tratado.

Este custo assistencial per capita é estocástico pois advém das utilizações dos beneficiários em consultas, exames, internações etc. Existe uma incerteza dessas utilizações ao longo do tempo e como não existe nenhum limite financeiro a atenção deve ser redobrada! Concordam?

Vou exemplificar: se uma pessoa contrair um problema de saúde e ficar internada na UTI durante dias ou até meses, poderá somente ela gerar custos elevadíssimos. Só para vocês terem uma ideia, eu já vi casos de que apenas uma única pessoa gerou um custo em torno de R$ 1 milhão de reais para a operadora, que por sua vez (exceto as seguradoras especializadas em saúde), não pode contratar diretamente uma resseguradora.

Então qual o motivo de permanecer utilizando apenas estatísticas descritivas (mais voltadas para a soma e média, esquecendo muitas vezes do desvio padrão) e não conhecer com maior nível de detalhamento a possível amplitude destes custos que podem ser gerados e organizados no espaço amostral fruto de uma simulação?

Desta forma vou fornecer algumas sugestões de geração de custo assistencial. No caso, por uma questão de simplificação, não iremos considerar a faixa etária.

1) Distribuições Conhecidas por Item de Custos Assistencial (frequência – Poisson e severidade – normal)

Com os inputs acima, para cada item de custo assistencial gera números aleatórios da Poisson e Normal truncada em zero e no final encontra-se a distribuição de probabilidade dos custos agregados fruto da interação de tudo isso.

2) Distribuições Histogramáticas por Item de Custos Assistencial (frequência e severidade)

Com os inputs acima, para cada item de custo assistencial gera números aleatórios de cada distribuição histogramática correspondente e no final encontra-se a a distribuição de probabilidade dos custos agregados fruto da interação de tudo isso.

3) Distribuições Histogramáticas por Beneficiário (reamostragem)

Com os inputs acima, para cada rodada de simulação escolhe-se, através de um número aleatório entre 0 e 1, o valor de custo per capita correspondente no intervalo das probabilidades e no final encontra-se a distribuição dos custos agregados fruto da interação de tudo isso. Também conhecida como Bootstraptalvez esta seja a sugestão a ser mais utilizada, pois é uma técnica que não depende da distribuição original da estatística do parâmetro estudado, por vezes dificultoso, apesar de aplicativos que calculem isso.

Duas observações importantes:

a) Como obter o número de classes ou blocos do histograma? (n) ^(1/2) OU 1 + 3,3 x Log(n)? Depende da análise!; e

b) Qual o valor a ser utilizado do limite de intervalo de cada classe ou bloco do histograma? Limite superior, ponto médio ou baricentro? Depende da análise!

Para um melhor entendimento dos três exemplos acima, disponibilizo o de uma planilha onde contém os códigos abertos do VBA para trocarmos umas ideias, que tal?

Lembro que estes exemplos são apenas para gerar o custo assistencial agregado e que essa informação sozinha não tem tanta utilidade. É necessário então modelar. Já forneci alguns exemplos de modelagens aplicadas em alguns artigos passados e aqui sugiro a leitura de mais esse AQUI. Os autores comparam o custo gerado por simulação (reamostragem) com os preços calculados, bem interessante!

Para finalizar, talvez esta técnica ainda seja pouco utilizada na saúde suplementar, devido ao tempo computacional e à granulação de dados necessários junto da dificuldade em saber quais distribuições mais se aproximam à realidade de cada operadora, além do fato do dia a dia nas operadoras de planos de saúde requerer um dinamismo elevado para a tomada de decisão.

Contudo, isso não justifica! Por se tratar de um mercado altamente volátil e repleto de outliers, a semente plantada aqui para o uso seja fundamental para o amadurecimento das ideias, principalmente quando estivermos inseridos, no futuro, nos modelos internos de solvência, pensemos nisso já!

Muito obrigado pela leitura, e vamos em frente!

Nota explicativa: a Simulação de Monte Carlo é um método estatístico baseado em amostragens aleatórias para obter resultados numéricos, considerando um número elevado de sucessivas simulações, com o intuito de calcular as probabilidades dos eventos acontecerem, como se fossem reais. O tema é abordado em cursos de graduação em Estatística, e é muito importante conhecermos como profissionais de outras áreas fazem uso desse método.  

P.S: Se você quiser saber mais sobre o autor desse texto, e ter mais conhecimento de qualidade, clique .

* José Nazareno Maciel Júnior:

Atuário, membro do Instituto Brasileiro de Atuária (IBA), com MIBA nº 1.286. Mestre em Economia, possui pós-graduação em Administração Financeira e MBA em Finanças e Controle. Atua no segmento de Saúde Suplementar há 12 anos. Passando por consultoria e atualmente como atuário sênior e coordenador de informações estratégicas e atuariais da Unimed Fortaleza. É membro do Comitê Nacional dos Atuários do Sistema Unimed e membro da Comissão Permanente de Solvência da ANS pelo IBA – Operadoras Grande Porte. É também perito atuarial e palestrante.

Para conhecer mais do seu trabalho, entre em contato: , ou

Observação: Este texto é de autoria de Nazareno Júnior, e sua publicação no Blog “O Estatístico” foi autorizada pelo autor.


Material usado

Todas as imagens são de propriedade do autor do texto.

Siga-nos nas redes sociais

Facebook: https://www.facebook.com/oestatistico

Twitter: 

Instagram: 

Pinterest: