Skip to main content

Desenvolvimento do Modelo de Risco Atuarial individual e coletivo.

Project description

Modelo de Risco Atuarial

Modelo de Risco Individual.

Install

pip install modelo_risco

Testando a classe ModeloRiscoInd

Importando o modelo de Risco Individual

from modelo_risco.modelo_risco_individual import *

Apenas 1 risco

Vamos inicializar um objeto com apenas um risco.

informações:

  • n = 100
  • q_i = 0.1
  • Distribuição B
P(Bi= B) Bi
0.4 122
0.35 452
0.2 210
0.05 1000
# criando os dados para qtd_riscos = 1
n = 100
qi = 0.1

B = {
    'PBi': [0.4, 0.35, 0.2, 0.05],
    'Bi': [122, 452, 210, 1000],
}

Criando o objeto ModeloRiscoInd com os parâemtros gerados:

# criando o modelo
mod = ModeloRiscoInd(n, qi, B)

# mostrando o modelo
print(mod)
Modelo de Risco Individual:
n = 100
E[I] = 0.1
V[I] = 0.09000000000000001
E[B] = 299.0
V[B] = 46879.0

Esperança do Sinistro

# calculando esperança do modelo
print(mod.esperanca())
2990.0

Variância do Sinistro

# calculando variancia do modelo
print(mod.variancia())
1273399.0

Desvio padrão do Sinistro

# calculando desvio pad
print(mod.desv_pad())
1128.4498216580123

Coeficiente de variação

coeficiente de variacao

print(mod.coef_var())

Prêmio puro pelo princípio do valor esperado com carregamento de segurança

# premio puro
print(mod.premio_puro(0.1))
3289.0

Prêmio comercial com carregamento de segurança e comercial

# premio comercial
print(mod.premio_comercial(0.1, 0.3))
4698.57

Prêmio pela aproximação normal com probabilidade alfa de o Sinistro superar o Prêmio total

# premio aprox_normal
alfa = 0.05
print(mod.premio_aprox_normal(alfa))
4846.134781986923

Carregamento de segurança com probabilidade alfa de o Sinistro superar o prêmio total

# carreg seg aprox normal
alfa = 0.025
print(mod.carreg_seg(alfa))
0.7397060230134953

Mais de um risco

Necessário utilizar NumPy arrays.

  • n = [200, 150, 50]
  • q_i = [0.12, 0.1, 0.05]
  • Distribuição B

Risco n. 1

Bi P(Bi = B)
100 0.6
340 0.3
390 0.1

Risco n. 2

B_i P(B_i = B)
500 0.8
800 0.15
950 0.05

Risco n. 3

B_i P(B_i = B)
1000 0.8
1500 0.1
2500 0.1
import numpy as np

### Qtd_riscos = 2
n = np.array([200, 150, 50])

qi = np.array([0.12, 0.1, 0.05])

PBi = np.array([[0.6, 0.3, 0.1], [0.8, 0.15, 0.05], [0.8, 0.1, 0.1]])
Bi = np.array([[100, 340, 390], [500, 800, 950], [1000, 1500, 2500]])

B = {
    'PBi': PBi,
    'Bi': Bi
}

mod = ModeloRiscoInd(n, qi, B, qtd_riscos = 3)

print(mod)
Modelo de Risco Individual:
n = [200 150  50]
E[I] = [0.12 0.1  0.05]
V[I] = [0.1056 0.09   0.0475]
E[B] = [ 201.   567.5 1200. ]
V[B] = [ 15489.    19068.75 210000.  ]
## checando
es = (200 * 0.12 * 201) + (150 * 0.1 * 567.5) + (50 * 0.05 * 1200)
print(es)
eb1 = np.dot([0.6, 0.3, 0.1], [100, 340, 390])
print(eb1)
vb1 = np.dot(np.array([0.6, 0.3, 0.1]),np.array([100, 340, 390])**2) - eb1**2
print(vb1)
16336.5
201.0
15489.0
# esperança
print(mod.esperanca())
16336.5
# variancia
print(mod.variancia())
9803795.745000001
# desvio padrão
print(mod.desv_pad())
3131.1013629392455
# coef variacao
print(mod.coef_var())
0.1916629243068739
# premio puro
print(mod.premio_puro(0.1))
17970.15
# premio comercial
print(mod.premio_comercial(0.1, 0.3))
25671.64
# premio aprox normal
print(mod.premio_aprox_normal(0.025))
22473.3459033052
# carreg seg
print(mod.carreg_seg(0.025))
0.37565242881309935

Modelo de Risco Coletivo

Testando a classe ModeloRiscoCol

Importando o modelo de Risco Coletivo

from modelo_risco.modelo_risco_coletivo import *

Necessário importar NumPy

informações:

  • Distribuição N
P(N = n) N
0.4 0
0.35 1
0.2 2
0.05 3
  • Distribuição X
P(X = x) X
0.3 1
0.5 2
0.15 3
0.05 4
import numpy as np

N = [0,1,2,3]
PN = [0.4, 0.35, 0.2, 0.05]

X = [1, 2, 3, 4]
PX = [0.3, 0.5, 0.15, 0.05]

modelo = ModeloRiscoCol(N, PN, X, PX)

Inicialização do modelo

print(modelo)
Modelo de Risco Coletivo:
E[N] = 0.9
V[N] = 0.79
E[X] = 1.95
V[X] = 0.6474999999999995

Esperança do Sinistro

# esperança
modelo.esperanca()
1.755

Variância do Sinistro

# variancia
modelo.variancia()
3.5867249999999995

Desvio padrão do Sinistro

# desvio padrao
modelo.desv_pad()
1.8938650955123493

Coeficiente de variação do Sinistro

# coeficiente de variação
modelo.coef_var()
1.0791254105483472

Prêmio Puro pelo princípio do valor esperado com carregamento de segurança

# premio puro
carreg_seg = 0.1
modelo.premio_puro(carreg_seg)
1.93

Prêmio Comercial com carregamento de segurança e carregamento comercial

# premio comercial
carreg_comercial = 0.3
modelo.premio_comercial(carreg_seg, carreg_comercial)
2.76

Prêmio pela aproximação normal com probabilidade alfa de o Sinistro coletivo superar o Prêmio total

# premio aprox normal
alfa = 0.025
modelo.premio_aprox_normal(alfa)
5.466907378781714

Carregamento de segurança pela aproximação normal com probabilidade alfa de o Sinistro coletivo superar o Prêmio total

# carreg seg a partir da aprox normal
modelo.carreg_seg(alfa)
2.1150469394767604

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

modelo_risco-0.0.4.tar.gz (11.6 kB view hashes)

Uploaded Source

Built Distribution

modelo_risco-0.0.4-py3-none-any.whl (10.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page