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
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
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.1.tar.gz
(12.3 kB
view hashes)
Built Distribution
Close
Hashes for modelo_risco-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d926eb268374f52ef2084fc6075d4fd73508e443b27e2711af6f8b5edcf9a80d |
|
MD5 | 6c003a6206d295ee359d7d7b4f928fed |
|
BLAKE2b-256 | 6046c1264af482075f079b6647e5b2f133a329c02434f7f96b905d25c7e931df |