1 Introdução ao R Markdown para Profissionais de Contabilidade e Atuária

1.1 O que é R Markdown?

R Markdown é uma ferramenta poderosa que combina texto formatado com código R executável. Para profissionais de contabilidade e atuária, isso significa:

  • Criar relatórios financeiros reproduzíveis
  • Automatizar análises contábeis e atuariais
  • Documentar cálculos complexos de forma transparente
  • Gerar demonstrações financeiras com dados atualizados
  • Produzir análises de risco com visualizações profissionais

1.2 Por que usar R Markdown na área financeira?

  • Auditabilidade: Todos os cálculos são documentados e rastreáveis
  • Reprodutibilidade: Relatórios podem ser atualizados facilmente com novos dados
  • Consistência: Padronização de relatórios financeiros e atuariais
  • Eficiência: Automatização de tarefas repetitivas
  • Comunicação: Apresentação clara de análises complexas para stakeholders

2 Sintaxe Básica do Markdown

2.1 Formatação de Texto

2.1.1 Texto em negrito, itálico e tachado

  • Ativo Circulante: Use **Ativo Circulante**
  • Passivo Não Circulante: Use *Passivo Não Circulante*
  • Valor Depreciado: Use ~~Valor Depreciado~~

2.1.2 Títulos e Subtítulos

Os títulos são criados usando # no início da linha:

# Demonstração de Resultado do Exercício
## Receitas Operacionais
### Custos Diretos

2.2 Listas

2.2.1 Lista não ordenada

  • Ativos
    • Circulante
    • Não Circulante
  • Passivos
    • Circulante
    • Não Circulante
  • Patrimônio Líquido
- Ativos
  - Circulante
  - Não Circulante
- Passivos
  - Circulante
  - Não Circulante
- Patrimônio Líquido

2.2.2 Lista ordenada

  1. Análise de Demonstrações Financeiras
  2. Cálculo de Indicadores
    1. Liquidez
    2. Endividamento
    3. Rentabilidade
  3. Interpretação dos Resultados
1. Análise de Demonstrações Financeiras
2. Cálculo de Indicadores
   1. Liquidez
   2. Endividamento
   3. Rentabilidade
3. Interpretação dos Resultados

2.3 Inserir um sumário

Você pode adicionar um índice analítico toc. 1. toc_depth: O sumário aparece logo após o cabeçalho. 2. toc_float: para o sumário aparecer no canto superior esquerdo. Você pode especificar uma lista de opções para o toc_float parâmetro que controla seu comportamento. Essas opções incluem:

collapsed (o padrão é TRUE) controla se o sumário, aparece apenas com os cabeçalhos de nível superior. O sumário é expandido automaticamente em linha quando necessário.

smooth_scroll (o padrão é TRUE) controla se as rolagens da página são animadas quando os itens de sumário são navegados por meio de cliques do mouse.

Obs: Respeite os espaços a esquerda dos comandos. Isso é muito importante para que o R Markdown rode perfeitamente.

2.4 Aparência e Estilo

Existem várias opções que controlam a aparência dos documentos HTML:

theme>: especifica o tema Bootstrap a ser usado para a página (os temas são retirados da biblioteca de temas Bootswatch). Os temas válidos são: defaul, bootstrap, cerulean, cosmo, darkly, flatly, journal, lumen, paper, readable, sandstone, simplex, spacelab, united, yeti. Coloque null quando não quiser nenhum tema (neste caso, você pode usar o css parâmetro para adicionar seus próprios estilos).

highlight: especifica o estilo de realce da sintaxe. Os estilos válidos são: default, tango, pygments, kate, monochrome, espresso, zenburn, haddock, breezedark, e textmate. Coloque null para evitar o realce da sintaxe

2.6 Notas de Rodapé

As provisões técnicas devem ser calculadas conforme a Circular SUSEP nº 628/20211.

As provisões técnicas devem ser calculadas conforme a Circular SUSEP nº 648/2021[^1].

[^1]: CIRCULAR SUSEP N° 648, DE 12 DE NOVEMBRO DE 2021, que dispõe sobre provisões técnicas.

3 Chunks de Código R para Análises Contábeis e Atuariais

3.1 Estrutura Básica

Os chunks de código R são delimitados por três crases seguidas de {r} e fechados com três crases:

# Criando um dataframe com dados contábeis básicos
balanco <- data.frame(
  Conta = c("Caixa", "Contas a Receber", "Estoques", "Imobilizado", "Fornecedores", "Empréstimos", "Capital Social"),
  Valor = c(120000, 85000, 65000, 230000, 45000, 180000, 275000),
  Tipo = c("Ativo", "Ativo", "Ativo", "Ativo", "Passivo", "Passivo", "PL")
)

# Exibindo o balanço
balanco
##              Conta  Valor    Tipo
## 1            Caixa 120000   Ativo
## 2 Contas a Receber  85000   Ativo
## 3         Estoques  65000   Ativo
## 4      Imobilizado 230000   Ativo
## 5     Fornecedores  45000 Passivo
## 6      Empréstimos 180000 Passivo
## 7   Capital Social 275000      PL

3.2 Opções de Chunk

As opções de chunk controlam como o código é executado e exibido:

# echo=TRUE: mostra o código
# eval=TRUE: executa o código

# Calculando o total de ativos e passivos
balanco %>%
  group_by(Tipo) %>%
  summarise(Total = sum(Valor)) %>%
  arrange(desc(Total))
## # A tibble: 3 × 2
##   Tipo     Total
##   <chr>    <dbl>
## 1 Ativo   500000
## 2 PL      275000
## 3 Passivo 225000

3.2.1 Principais Opções

  • echo: mostrar o código (TRUE/FALSE)
  • eval: executar o código (TRUE/FALSE)
  • include: incluir o código e resultados no documento (TRUE/FALSE)
  • warning, message: mostrar avisos e mensagens (TRUE/FALSE)
  • fig.width, fig.height: dimensões das figuras
  • fig.cap: legenda da figura
  • cache: armazenar resultados em cache (TRUE/FALSE)

4 Análise de Dados Contábeis e Atuariais

4.1 Criando e Explorando Dados Financeiros

# Criando um dataset de demonstrações financeiras trimestrais
demonstracoes <- data.frame(
  Trimestre = c("2023-Q1", "2023-Q2", "2023-Q3", "2023-Q4", 
                "2024-Q1", "2024-Q2"),
  Receita = c(1250000, 1320000, 1450000, 1680000, 1420000, 1560000),
  CPV = c(750000, 792000, 870000, 1008000, 852000, 936000),
  Despesas_Operacionais = c(300000, 310000, 325000, 340000, 320000, 335000),
  Despesas_Financeiras = c(50000, 48000, 52000, 55000, 48000, 50000)
)

# Calculando o lucro líquido
demonstracoes <- demonstracoes %>%
  mutate(
    Lucro_Bruto = Receita - CPV,
    Lucro_Operacional = Lucro_Bruto - Despesas_Operacionais,
    Lucro_Liquido = Lucro_Operacional - Despesas_Financeiras
  )

# Exibindo as demonstrações
head(demonstracoes)
##   Trimestre Receita     CPV Despesas_Operacionais Despesas_Financeiras
## 1   2023-Q1 1250000  750000                300000                50000
## 2   2023-Q2 1320000  792000                310000                48000
## 3   2023-Q3 1450000  870000                325000                52000
## 4   2023-Q4 1680000 1008000                340000                55000
## 5   2024-Q1 1420000  852000                320000                48000
## 6   2024-Q2 1560000  936000                335000                50000
##   Lucro_Bruto Lucro_Operacional Lucro_Liquido
## 1      500000            200000        150000
## 2      528000            218000        170000
## 3      580000            255000        203000
## 4      672000            332000        277000
## 5      568000            248000        200000
## 6      624000            289000        239000

4.2 Análise de Indicadores Financeiros

# Calculando indicadores financeiros
demonstracoes <- demonstracoes %>%
  mutate(
    Margem_Bruta = Lucro_Bruto / Receita,
    Margem_Operacional = Lucro_Operacional / Receita,
    Margem_Liquida = Lucro_Liquido / Receita
  )

# Resumo dos indicadores
demonstracoes %>%
  select(Trimestre, Margem_Bruta, Margem_Operacional, Margem_Liquida) %>%
  kable(digits = 4, caption = "Indicadores de Rentabilidade") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE) %>%
  column_spec(1, bold = TRUE)
Indicadores de Rentabilidade
Trimestre Margem_Bruta Margem_Operacional Margem_Liquida
2023-Q1 0.4 0.1600 0.1200
2023-Q2 0.4 0.1652 0.1288
2023-Q3 0.4 0.1759 0.1400
2023-Q4 0.4 0.1976 0.1649
2024-Q1 0.4 0.1746 0.1408
2024-Q2 0.4 0.1853 0.1532

5 Visualização de Dados Financeiros

5.1 Gráficos de Tendência

# Preparando dados para visualização
dados_longos <- demonstracoes %>%
  select(Trimestre, Receita, Lucro_Bruto, Lucro_Liquido) %>%
  pivot_longer(cols = c(Receita, Lucro_Bruto, Lucro_Liquido),
               names_to = "Indicador", 
               values_to = "Valor")

# Gráfico de tendência
ggplot(dados_longos, aes(x = Trimestre, y = Valor, group = Indicador, color = Indicador)) +
  geom_line(size = 1.2) +
  geom_point(size = 3) +
  scale_y_continuous(labels = scales::dollar_format(prefix = "R$ ", big.mark = ".")) +
  labs(title = "Evolução de Indicadores Financeiros",
       subtitle = "Receita, Lucro Bruto e Lucro Líquido",
       x = "Trimestre",
       y = "Valor (R$)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
## 'big.mark' e 'decimal.mark' são ambos '.', o que pode ser confuso

5.2 Análise de Margens

# Preparando dados de margens
margens_longas <- demonstracoes %>%
  select(Trimestre, Margem_Bruta, Margem_Operacional, Margem_Liquida) %>%
  pivot_longer(cols = c(Margem_Bruta, Margem_Operacional, Margem_Liquida),
               names_to = "Tipo_Margem", 
               values_to = "Percentual")

# Gráfico de barras para margens
ggplot(margens_longas, aes(x = Trimestre, y = Percentual, fill = Tipo_Margem)) +
  geom_bar(stat = "identity", position = "dodge") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 0.1)) +
  scale_fill_brewer(palette = "Blues", direction = -1) +
  labs(title = "Análise de Margens",
       subtitle = "Comparação Trimestral",
       x = "Trimestre",
       y = "Percentual",
       fill = "Tipo de Margem") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

6 Análise Atuarial

6.1 Obtendo Dados de Tábua de Mortalidade

Considerando a tábua BR-EMS 2021mt-v.2021 feminina e masculina e i = 5,5% a.a, calcule:

tabuas <- read_excel("C:/Users/cleod/OneDrive/Documentos/Documentos/Estudos/Ciências Atuariais/Matemática Atuarial II/Tábuas.xlsx")

tabua_mas <- tabuas[, c("Idade", "BR-EMSmt-v.2021-m")]
names(tabua_mas) <- c("x", "qx")
tabua_fem <- tabuas[, c("Idade", "BR-EMSmt-v.2021-f")]
names(tabua_fem) <- c("y", "qy")
tabua_mas <- probs2lifetable(probs = tabua_mas$qx, type = 'qx', radix = 100000, name = 'BR-EMSmt-v.2021-m')
tabua_mas <- new('actuarialtable', x = tabua_mas@x, lx = tabua_mas@lx, interest = 0.055, name = 'BR-EMSmt-v.2021-m')

tabua_fem <- probs2lifetable(probs = tabua_fem$qy, type = 'qx', radix = 100000, name = 'BR-EMSmt-v.2021-f')
tabua_fem <- new('actuarialtable', x = tabua_fem@x, lx = tabua_fem@lx, interest = 0.055, name = 'BR-EMSmt-v.2021-f')

6.2 Cálculo de Reserva Matemática

Um homem de 45 anos de idade contrata uma renda anual de R$ 5.000,00 de forma postecipada, diferida e temporária pelo período de 5 anos, o prazo de diferimento é de 6 anos, considere ainda que os prêmios são pagos de forma anual durante o diferimento. Calcule a reserva matemática no 3º ano de vigência do contrato.

premio1 <- 5000 * (axn(tabua_mas, x = 45, n = 5, m = 6, payment = 'arrears')) / axn(tabua_mas, x = 45, n = 6, payment = 'advance')

reserva1 <- 5000 * (axn(tabua_mas, x = 48, n = 5, m = 3, payment =  'arrears')) - premio1 * (axn(tabua_mas, x = 48, n = 3, payment =  'advance'))

reserva1 <- format(reserva1, decimal.mark = ",", big.mark = ".", nsmall = 2, digits = 4)

Resposta:

Considerando o cálculo do valor do prêmio como:

\[ P_{45} = 5000 \cdot \frac{{}_{6|}a_{45:\overline{5|}}}{ä_{45:\overline{6|}}} \]

E o cálculo da reserva matemática ao 3º ano de vigência como:

\[ {}_{3}V_{45} = 5000 \cdot {}_{3}a_{48:\overline{5|}} - P_{45} \cdot ä_{48:\overline{3|}} \]

O valor da Reserva Matemática no 3º ano de vigência de contrato deverá ser de R$ 9.637,45.

**Resposta:**

Considerando o cálculo do valor do prêmio como:

$$ P_{45} = 5000 \cdot \frac{{}_{6|}a_{45:\overline{5|}}}{ä_{45:\overline{6|}}} $$

E o cálculo da reserva matemática ao 3º ano de vigência como:

$$ {}_{3}V_{45} = 5000 \cdot {}_{3}a_{48:\overline{5|}} - P_{45} \cdot ä_{48:\overline{3|}} $$

O valor da Reserva Matemática no 3º ano de vigência de contrato deverá ser de R$ **r reserva1**.

7 Tabelas e Gráficos

7.1 Dados Demográficos de João Pessoa e Recife

Vamos carregar diretamente do SIDRA os dados populacionais do Censo de 2022 de João Pessoa e Recife para análise:

# Dados do Censo de 2022
pop_data <- list(
  pop_jpa = get_sidra(x = 9514, geo = 'City', geo.filter = '2507507'),
  pop_rec = get_sidra(x = 9514, geo = 'City', geo.filter = '2611606')
)
## Considering all categories once 'classific' was set to 'all' (default)
## Considering all categories once 'classific' was set to 'all' (default)
# Renomear colunas
pop_data <- lapply(pop_data, function(data) {
  data %>%
    clean_names()  # Remove caracteres problemáticos
})

process_population_data <- function(data) {
  data %>%
    filter(forma_de_declaracao_da_idade == "Total") %>%
    select(municipio, ano, sexo, idade, valor) %>%
    rename(grupo_de_idade = idade) %>%
    pivot_wider(
      names_from = sexo,
      values_from = valor
    ) %>%
    mutate(grupo_de_idade = factor(grupo_de_idade, levels = c(
      "0 a 4 anos", "1 a 4 anos", "5 a 9 anos", "10 a 14 anos", 
      "15 a 19 anos", "20 a 24 anos", "25 a 29 anos", "30 a 34 anos", "35 a 39 anos",
      "40 a 44 anos", "45 a 49 anos", "50 a 54 anos", "55 a 59 anos", "60 a 64 anos", 
      "65 a 69 anos", "70 a 74 anos", "75 a 79 anos", "80 a 84 anos", "85 a 89 anos", 
      "90 a 94 anos", "95 a 99 anos", "100 anos ou mais"))) %>%
    arrange(grupo_de_idade) %>%
    drop_na(grupo_de_idade)
}

# Aplicar a função a todos os conjuntos de dados
pop_data <- lapply(pop_data, process_population_data)

# Tabela de População de João Pessoa
datatable(pop_data$pop_jpa)

Outra forma de visualização de tabelas extensas, utilizando barra de rolagem:

# Tabela de População de Recife
datatable(pop_data$pop_rec, options = list(pageLength = 21, style = "bootstrap4"
                                             , scrollY = "300px"))

Agora vamos plotar um gráfico de pirâmide etária para as duas cidades:

# Função para preparar os dados normalizados
preparar_piramide <- function(data, cidade) {
  total_pop <- sum(data$Homens + data$Mulheres, na.rm = TRUE)
  data <- data %>%
    select(grupo_de_idade, Homens, Mulheres) %>%
    mutate(
      Homens = -(Homens / total_pop) * 100,  # Tornar valores masculinos negativos e normalizar
      Mulheres = (Mulheres / total_pop) * 100,  # Normalizar
      Cidade = cidade
    )
  return(data)
}

# Preparar os dados para cada cidade
piramide_dados <- bind_rows(
  preparar_piramide(pop_data$pop_jpa, "João Pessoa"),
  preparar_piramide(pop_data$pop_rec, "Recife")
)

# Criar pirâmides etárias com mesma escala
ggplot(piramide_dados, aes(x = grupo_de_idade)) +
  geom_bar(aes(y = Homens, fill = "Homens"), stat = "identity") +
  geom_bar(aes(y = Mulheres, fill = "Mulheres"), stat = "identity") +
  scale_y_continuous(labels = abs, limits = c(-5, 5)) +  # Define os limites do eixo y
  coord_flip() +
  labs(
    title = "Pirâmide Etária (% da População)",
    x = "Faixa Etária",
    y = "Percentual da População",
    fill = "Sexo"
  ) +
  facet_wrap(~Cidade, ncol = 4) +  # Configura para uma coluna (vertical)
  theme_minimal(base_size = 10) +  # Aumenta o tamanho da fonte
  scale_fill_manual(values = c("Homens" = "blue", "Mulheres" = "pink")) +
  theme(
    legend.position = "bottom",  # Move a legenda para baixo
    legend.title = element_text(size = 12),  # Ajusta o tamanho do título da legenda
    legend.text = element_text(size = 10)    # Ajusta o tamanho do texto da legenda
  )

7.2 Análise do comportamento da inflação em relação à sua meta

Coletar dados de inflação e visualizar o IPCA acumulado em 12 meses em relação à meta. Os dados são obtidos diretamente do Sistema de Gerador de Séries Temporais do Banco Central do Brasil (Bacen SGS):

# Meta de Inflação
meta <- get_series(13521,start_date = '2003-01-01')
meta <- ts(meta$'13521', start = c(2003), frequency = 1)
meta <- rep(meta, each = 12)
meta <- ts(meta, start = c(2003,01), end = c(2024,12), frequency = 12)

# Baixar IPCA Acum. 12 meses
ipca_ac12 <- get_series(13522, start_date = '2003-01-01')
ipca12 <- ts(ipca_ac12$'13522', start = c(2003,01), end = c(2024,12), frequency = 12)
# Exebir Série Temporal do IPCA Acumulado em 12 meses
ipca12
##        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
## 2003 14.47 15.85 16.57 16.77 17.24 16.57 15.43 15.07 15.14 13.98 11.02  9.30
## 2004  7.71  6.69  5.89  5.26  5.15  6.06  6.81  7.18  6.70  6.86  7.24  7.60
## 2005  7.41  7.39  7.54  8.07  8.05  7.27  6.57  6.02  6.04  6.36  6.22  5.69
## 2006  5.70  5.51  5.32  4.63  4.23  4.03  3.97  3.84  3.70  3.26  3.02  3.14
## 2007  2.99  3.02  2.96  3.00  3.18  3.69  3.74  4.18  4.15  4.12  4.19  4.46
## 2008  4.56  4.61  4.73  5.04  5.58  6.06  6.37  6.17  6.25  6.41  6.39  5.90
## 2009  5.84  5.90  5.61  5.53  5.20  4.80  4.50  4.36  4.34  4.17  4.22  4.31
## 2010  4.59  4.83  5.17  5.26  5.22  4.84  4.60  4.49  4.70  5.20  5.63  5.91
## 2011  5.99  6.01  6.30  6.51  6.55  6.71  6.87  7.23  7.31  6.97  6.64  6.50
## 2012  6.22  5.85  5.24  5.10  4.99  4.92  5.20  5.24  5.28  5.45  5.53  5.84
## 2013  6.15  6.31  6.59  6.49  6.50  6.70  6.27  6.09  5.86  5.84  5.77  5.91
## 2014  5.59  5.68  6.15  6.28  6.37  6.52  6.50  6.51  6.75  6.59  6.56  6.41
## 2015  7.14  7.70  8.13  8.17  8.47  8.89  9.56  9.53  9.49  9.93 10.48 10.67
## 2016 10.71 10.36  9.39  9.28  9.32  8.84  8.74  8.97  8.48  7.87  6.99  6.29
## 2017  5.35  4.76  4.57  4.08  3.60  3.00  2.71  2.46  2.54  2.70  2.80  2.95
## 2018  2.86  2.84  2.68  2.76  2.86  4.39  4.48  4.19  4.53  4.56  4.05  3.75
## 2019  3.78  3.89  4.58  4.94  4.66  3.37  3.22  3.43  2.89  2.54  3.27  4.31
## 2020  4.19  4.01  3.30  2.40  1.88  2.13  2.31  2.44  3.14  3.92  4.31  4.52
## 2021  4.56  5.20  6.10  6.76  8.06  8.35  8.99  9.68 10.25 10.67 10.74 10.06
## 2022 10.38 10.54 11.30 12.13 11.73 11.89 10.07  8.73  7.17  6.47  5.90  5.79
## 2023  5.77  5.60  4.65  4.18  3.94  3.16  3.99  4.61  5.19  4.82  4.68  4.62
## 2024  4.51  4.50  3.93  3.69  3.93  4.23  4.50  4.24  4.42  4.76  4.87  4.83
# Exibir Série Temporal da Meta de Inflação
meta
##       Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
## 2003 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00
## 2004 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50
## 2005 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2006 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2007 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2008 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2009 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2010 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2011 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2012 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2013 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2014 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2015 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2016 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2017 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2018 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50 4.50
## 2019 4.25 4.25 4.25 4.25 4.25 4.25 4.25 4.25 4.25 4.25 4.25 4.25
## 2020 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00
## 2021 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75
## 2022 3.50 3.50 3.50 3.50 3.50 3.50 3.50 3.50 3.50 3.50 3.50 3.50
## 2023 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25
## 2024 3.00 3.00 3.00 3.00 3.00 3.00 3.00 3.00 3.00 3.00 3.00 3.00
# Gráfico IPCA Acum. 12 meses em relação à meta
ggplot() +
  geom_line(aes(x = time(ipca12), y = ipca12, color = "IPCA Acum. 12 meses"), size = 1.2) +
  geom_line(aes(x = time(meta), y = meta, color = "Meta de Inflação"), size = 1.2, linetype = "dashed") +
  labs(title = "IPCA Acumulado em 12 Meses vs. Meta de Inflação",
       subtitle = "2003-2024",
       x = "Ano",
       y = "Percentual",
       color = "Indicador") +
  theme_minimal() +
  theme(legend.position = "bottom")

8 Equações Matemáticas com LaTeX

8.1 Equações Financeiras em Linha

A fórmula para o valor presente de uma anuidade é \(PV = PMT \times \frac{1 - (1 + r)^{-n}}{r}\), onde \(PMT\) é o pagamento periódico, \(r\) é a taxa de juros e \(n\) é o número de períodos.

$PV = PMT \times \frac{1 - (1 + r)^{-n}}{r}$

8.2 Equações em Destaque

A integral de uma função \(f(x)\) no intervalo \([a, b]\) é dada por:

\[\int_{a}^{b} f(x) \, dx\]

$$\int_{a}^{b} f(x) \, dx$$

Resolução de série de Fourier:

\[f(x) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left( a_n \cos \left( \frac{2\pi n x}{T} \right) + b_n \sin \left( \frac{2\pi n x}{T} \right) \right)\]

$$f(x) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left( a_n \cos \left( \frac{2\pi n x}{T} \right) + b_n \sin \left( \frac{2\pi n x}{T} \right) \right)$$

9 Publicando no RPubs

9.1 O que é RPubs?

RPubs é uma plataforma gratuita para publicação de documentos R Markdown na web. É uma maneira simples de compartilhar análises, relatórios e visualizações com colegas, clientes ou com a comunidade.

9.2 Como Publicar no RPubs

9.2.1 Passo 1: Criar o Documento R Markdown

Primeiro, crie e finalize seu documento R Markdown no RStudio.

9.2.2 Passo 2: Renderizar o Documento

Clique no botão “Knit” no RStudio para renderizar o documento para HTML.

9.2.3 Passo 3: Publicar no RPubs

Após renderizar, você verá um botão “Publish” no visualizador de HTML do RStudio:

  1. Clique em “Publish”
  2. Selecione “RPubs”
  3. Faça login ou crie uma conta RPubs se necessário
  4. Dê um título e descrição ao seu documento
  5. Clique em “Publish”

9.2.5 Passo 5: Atualizar o Documento (se necessário)

Para atualizar um documento já publicado:

  1. Faça as alterações no arquivo R Markdown
  2. Renderize novamente
  3. Clique em “Republish”
  4. Selecione “Atualizar documento existente”

9.3 Código para Publicação Programática

Você também pode publicar programaticamente usando o pacote rsconnect:

# Instalar o pacote se necessário
# install.packages("rsconnect")

# Carregar o pacote
library(rsconnect)

# Configurar a conta (apenas na primeira vez)
# rsconnect::setAccountInfo(name="seu_nome_usuario", 
#                          token="seu_token", 
#                          secret="seu_segredo")

# Publicar o documento
rsconnect::deployDoc("seu_documento.Rmd", 
                    server = "rpubs.com",
                    title = "Relatório Financeiro Trimestral")

10 Exercícios Práticos

  1. Crie um documento R Markdown
  2. Adicione um chunk que obtenha dados de uma planilha Excel
  3. Apresente esta tabela em um formato interativo
  4. Adicione um gráfico
  5. Adicione uma equação de cálculo usando LaTeX
  6. Publique seu documento no RPubs e compartilhe o link

12 Conclusão

Neste minicurso, exploramos como o R Markdown pode ser uma ferramenta poderosa para profissionais de contabilidade e atuária:

  • Criação de relatórios financeiros dinâmicos e reproduzíveis
  • Análise e visualização de dados
  • Cálculos com documentação transparente
  • Formatação profissional de tabelas financeiras
  • Inclusão de equações matemáticas complexas
  • Publicação e compartilhamento de análises via RPubs

O R Markdown permite que profissionais comuniquem suas análises de forma clara, precisa e profissional, aumentando a eficiência e a transparência dos processos contábeis e atuariais.


  1. CIRCULAR SUSEP N° 648, DE 12 DE NOVEMBRO DE 2021, que dispõe sobre provisões técnicas.↩︎