-
Notifications
You must be signed in to change notification settings - Fork 1
/
conhecendo_atuaria.py
182 lines (155 loc) · 7.66 KB
/
conhecendo_atuaria.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
import numpy as np
import pandas as pd
import streamlit as st
import matplotlib.pyplot as plt
import seaborn as sns
def oq_atuariais():
st.title("O que é Ciências Atuariais?")
col1, col2 = st.columns([1, 5])
with col1:
st.image("pictures/hourglass.png", width=100)
with col2:
st.markdown(
"Ciências Atuariais é um campo que aplica métodos matemáticos, estatísticos e financeiros para avaliar e gerenciar **riscos**, especialmente em setores como seguros, previdência, saúde e finanças. Atuários, os profissionais dessa área, desempenham um papel essencial na estimativa e controle de incertezas financeiras, garantindo a viabilidade de planos e estratégias de longo prazo."
)
st.subheader("Matérias Estudadas:")
st.markdown(
"1. **Matemática Financeira**: Conceitos de valor presente, taxas de juros, amortização, entre outros.\n"
"2. **Economia**: Fundamentos de macro e microeconomia, além de teorias econômicas básicas.\n"
"3. **Probabilidade e Estatística**: Modelagem de eventos aleatórios, distribuições de probabilidades, e inferência estatística.\n"
"4. **Teoria do Risco**: Análise de eventos incertos, modelagem de perdas e avaliação de riscos.\n"
"5. **Matemática Atuarial**: Cálculo de prêmios, reservas técnicas, e avaliação de seguros de vida e não-vida.\n"
"6. **Modelos de Sobrevivência**: Estudo de tempos de vida, tabelas de mortalidade, e cálculos atuariais para pensões e seguros de vida.\n"
"7. **Gestão de Investimentos**: Avaliação de portfólios, aplicação da teoria moderna de finanças.\n"
"8. **Contabilidade e Finanças**: Análise financeira e contabilidade aplicadas ao setor de seguros.\n"
"9. **Legislação e Regulação**: Leis e normas que regem as atividades seguradoras e previdenciárias.\n"
"10. **Programação**: Desenvolvimento de algoritmos para análise de dados e modelos atuariais."
)
st.subheader("Áreas de Atuação:")
st.markdown(
"1. **Seguros**: Desenvolvimento e precificação de produtos como seguros de vida, saúde, automóvel, entre outros.\n"
"2. **Previdência**: Cálculo de contribuições e benefícios para planos de aposentadoria e pensões.\n"
"3. **Consultoria Atuarial**: Assessoria a empresas na gestão de riscos, planejamento previdenciário e auditoria atuarial.\n"
"4. **Gestão de Riscos**: Identificação, avaliação e mitigação de riscos financeiros em empresas e instituições financeiras.\n"
"5. **Recursos Humanos**: Desenvolvimento de benefícios corporativos, incluindo planos de pensão e seguros de saúde.\n"
"6. **Mercado Financeiro**: Análise de produtos financeiros, derivativos, avaliação de risco de crédito e criação de modelos quantitativos.\n"
"7. **Saúde**: Planejamento de seguros de saúde, análise de custos e riscos relacionados à área da saúde.\n"
"8. **Governança Corporativa**: Análise e gestão de riscos corporativos, além de garantir conformidade regulatória."
)
st.title("Para saber mais:")
st.markdown(
"Acesse o plano de ensino de Ciências Atuariais da UFPE para obter informações detalhadas sobre o curso."
)
st.link_button(
"Plano Pedagógico",
"https://www.ufpe.br/documents/39362/0/PPC+Ci%C3%AAncias+Atuariais+2019.pdf/76e18139-00af-438b-8eb4-b571220384d7",
)
def roll_dice():
st.title("Simulador de Lançamentos de Dados")
col1, col2 = st.columns([1, 5])
with col1:
st.image("pictures/dice.png", width=100)
with col2:
st.markdown(
"A simulação é uma ferramenta essencial na Ciência Atuarial, permitindo a análise de diversos cenários que podem ocorrer em um contexto específico. "
"Esta página oferece uma maneira simples de simular múltiplos lançamentos de dados justos de **6** lados, possibilitando a observação de padrões estatísticos. "
"Você pode escolher simular um ou dois dados e observar as métricas com base nas somas."
)
st.markdown(
"### CÓDIGO UTILIZADO:\n"
"```python\n"
"import numpy as np\n"
"import pandas as pd\n"
"\n"
"num_rolls = st.number_input('Quantos lançamentos deseja simular?', 1, 100000)\n"
"roll = np.random.randint(1, 7, size=int(num_rolls))\n"
"mean = np.mean(roll)\n"
"var = np.var(roll)\n"
"dp = np.std(roll)\n"
"\n"
"df_metrics = pd.DataFrame(\n"
" {\n"
" 'Valor': [mean, var, dp]\n"
" },\n"
" index=['Média', 'Variância', 'Desvio Padrão']\n"
")\n"
"\n"
"st.subheader(f'Resultados da Simulação com {num_rolls} Lançamentos:')\n"
"st.dataframe(df_metrics)\n"
"```\n"
)
num_dices = st.selectbox("Quantos dados deseja simular?", [1, 2])
num_rolls = st.number_input("Quantos lançamentos deseja simular?", 1, 100000)
if st.button("Lançar"):
# Simulação de lançamentos
roll1 = np.random.randint(1, 7, size=int(num_rolls))
if num_dices == 2:
roll2 = np.random.randint(1, 7, size=int(num_rolls))
roll_sum = roll1 + roll2
else:
roll_sum = roll1
# Cálculo das métricas
mean = np.mean(roll_sum)
var = np.var(roll_sum)
dp = np.std(roll_sum)
# Criando um DataFrame com as métricas como índice
df_metrics = pd.DataFrame(
{"Valor": [mean, var, dp]}, index=["Média", "Variância", "Desvio Padrão"]
)
st.subheader(f"Resultados da Simulação com {num_rolls} Lançamentos:")
st.dataframe(df_metrics)
# Contando a frequência das somas dos valores
value_counts = pd.Series(roll_sum).value_counts().sort_index()
# Criando um DataFrame com a soma dos dados como índice
df_counts = pd.DataFrame(
{"Frequência": value_counts.values}, index=value_counts.index
)
df_counts.index.name = "Soma dos Dados"
st.subheader("Frequência das Somas dos Dados:")
st.dataframe(df_counts)
# Criando o gráfico dos lançamentos
st.subheader("Gráfico das Somas dos Lançamentos:")
fig, ax = plt.subplots()
sns.barplot(
x=df_counts.index,
y="Frequência",
data=df_counts.reset_index(),
color="blue",
ax=ax,
)
ax.set_xlabel("Soma dos Dados")
ax.set_ylabel("Frequência")
ax.set_title("Distribuição das Somas dos Lançamentos")
st.pyplot(fig)
def social_links():
st.sidebar.title("Redes sociais")
col1, col2 = st.sidebar.columns(2)
with col1:
st.sidebar.link_button(
"UFPE", "https://www.ufpe.br/ciencias-atuariais-bacharelado-ccsa"
)
with col2:
st.sidebar.link_button(
"Instagram - Cordenação", "https://www.instagram.com/atuariaisufpe/"
)
st.sidebar.link_button(
"Instagram - Diretorio Acadêmico", "https://www.instagram.com/dacat.ufpe/"
)
def main():
# st.sidebar.image("pictures/", width=200)
opcoes = st.sidebar.radio(
"Selecione uma página",
("O que é Ciências Atuarias?", "Simulador de Dado"),
format_func=lambda x: (
"O que é Ciências Atuarias?"
if x == "O que é Ciências Atuarias?"
else "Simulador de Dado"
),
)
if opcoes == "Simulador de Dado":
roll_dice()
elif opcoes == "O que é Ciências Atuarias?":
oq_atuariais()
social_links()
if __name__ == "__main__":
main()