Você está na página 1de 92

RCC4703

Análise de Regressão
Prof. Dr. Marcelo Botelho da Costa Moraes
mbotelho@usp.br

Turma: 3º Trimestre / 2020

1
Agenda – Aula 2/8
• Análise Discriminante;
• Regressão Logística.

2
Análise Discriminante

3
Análise Discriminante
• Técnica multivariada
• Variável dependente categórica (qualitativa) e
variáveis independentes quantitativas (métricas)
• Utilização para previsão e classificação
• Gera funções discriminantes
• Combinações lineares das variáveis

4
Análise Discriminante

5
Análise Discriminante
• Questões a serem respondidas
• Quais variáveis independentes que melhor discriminam
os grupos?
• As médias de cada variável independente em cada
grupo são estatisticamente diferentes.
• O perfil de cada grupo.
• O grau de eficiência do modelo de classificação.

6
Análise Discriminante
• A formulação apresenta
• Zn = a + W1X 1 + W2X 2 + ... + WnX n
Variável 1

Coeficiente da Variável 1

Intercepto

Variável Dependente

7
Etapas da Análise Discriminante
• Seleção das variáveis dependente e independentes
• Verificação das premissas da técnica
• Obtenção das funções discriminantes
• Análise das estatísticas
• Identificação das variáveis independentes com maior
poder discriminatório
• Análise da matriz de classificação
• Validação dos resultados
*necessidade de número de variáveis independentes maior
ou igual ao número de categorias
** mínimo de 20 observações em cada categoria

8
Pressupostos da Análise
Discriminante
• Normalidade multivariada
• Linearidade
• Ausência de Outliers
• Ausência de multicolinearidade
• Homogeneidade das matrizes de variância e
covariância

9
Aplicação da Análise
Discriminante
• Altman (dois modelos)
• Empresas norte-americanas
Z1 = -1,44 + 4,03X2 + 2,25X3 + 0,14X4 + 0,42X5
Z2 = -1,84 + 0,51X1 + 6,32X3 + 0,71X4 + 0,53X5
• X1 = Ativo Circulante – Passivo Circulante / Ativo Total
• X2 = Reservas e Lucros Suspensos / Ativo Total
• X3 = Ativo Total
• X4 = Patrimônio Líquido / Exigível Total
• X5 = Vendas / Ativo Total

10
Aplicação da Análise
Discriminante
• Altman (dois modelos)
Z1 = -1,44 + 4,03X2 + 2,25X3 + 0,14X4 + 0,42X5
Z2 = -1,84 + 0,51X1 + 6,32X3 + 0,71X4 + 0,53X5

O Ponto Crítico é ZERO


Acima de zero a empresa é solvente
Abaixo de zero é insolvente

11
Aplicação da Análise
Discriminante
• Kanitz
• Amostra das 500 maiores e melhores (Revista Exame)
em 1972
F.Insolvência = 0,05X1 + 1,65X2 + 3,55X3 −1,06X4 − 0,33X5
• X1 = Lucro Líquido / Patrimônio Líquido
• X2 = Ativo Circulante + Realizável a LP / Exigível Total
• X3 = Ativo Circulante – Estoques / Passivo Circulante
• X4 = Ativo Circulante / Passivo Circulante
• X5 = Exigível Total / Patrimônio Líquido

12
Aplicação da Análise
Discriminante
• Kanitz
F.Insolvência = 0,05X1 + 1,65X2 + 3,55X3 −1,06X4 − 0,33X5
7
6
Acima de 0 está na faixa de Solvência 5
4
Entre -3 e 0 está indefinida 3
Solvente

Abaixo de -3 a empresa é Insolvente 2

Termômetro
1
0
-1
-2 Penumbra
-3
-4
-5
Insolvente
-6
-7

13
Análise Discriminante Múltipla
Medida da Distância de Mahalanobis

ഥ)𝟐
(𝒙 − 𝒙
𝑫= ෍
𝒔𝟐

• D = distância da observação ao centróide


• x = valor assumido pela variável independente
• s2 = variância da variável independente dentro do
grupo
14
Regressão Logística

15
Regressão Logística
• Desenvolvida na década de 1960
• Realizar ou explicar a ocorrência de determinados
fenômenos quando a variável dependente fosse de
natureza binária
• Variáveis independentes métricas ou não métricas
• Verifica a probabilidade de ocorrência do evento de
interesse
• Maior flexibilidade dos pressupostos em relação a
outras técnicas (como análise discriminante)

16
Regressão Logística
1
• Função Logística, 𝑓 𝑍 = ,assume valores
1+𝑒 −(𝑍)
entre 0 e 1, para qualquer Z entre -∞ e +∞

-∞ +∞

17
Regressão Logística
• Não pressupõe a existência de homogeneidade de
variância e normalidade dos resíduos
1
𝑓 𝑍 =
1 + 𝑒 −(𝑍)
• Sendo Z
𝑝
𝑍 = 𝑙𝑛 = 𝛼 + 𝛽1 𝑋1 + 𝛽2 𝑋2 + ⋯ + 𝛽𝑘 𝑋𝑘
1−𝑝
• Em que p indica a probabilidade de ocorrência de
determinado evento de interesse, X representa o
vetor de variáveis explicativas (ou independentes) e
α e β os parâmetros do modelo
18
Regressão Logística
• O termo ln(p/1 - p) é chamado de logit e o termo
(p/1 - p) representa a chance (odds) de ocorrência
do evento de interesse
• Exemplo:
• Se p = 0,50, a chance de ocorrência do evento será de 1
(1 para 1)
• Se p = 0,75, a chance de ocorrência do evento será de 3
(3 para 1)

19
Regressão Logística
• O evento de interesse é p = (odds/1 + odds)
1
𝑓 𝑍 =
1 + 𝑒 −(𝛼+σ 𝛽𝑖 𝑋𝑖 )
• A função f(Z) pode ser entendida como a
probabilidade de a variável dependente ser igual a
1, dado o comportamento das variáveis explicativas
X1, X2, ... Xk
1
𝑃 1 = 𝑓 𝑌 = 1ห𝑋1 , 𝑋2 , … , 𝑋𝑘 =
1 + 𝑒 −(𝛼+σ 𝛽𝑖 𝑋𝑖 )
• Utilizamos a máxima verossimilhança para estimar
𝛼ො e 𝛽መ
20
Regressão Logística – Exemplo
• Probabilidade de um cliente comprar uma
assinatura de revista por mala direta
𝑝𝑟𝑜𝑏 𝑒𝑣𝑒𝑛𝑡
1
=
1 + 𝑒 −(1,143+0,452𝑋1+0,029𝑋2 −0,242𝑋3)
• Sendo
• X1 = sexo (1 para feminino e 0 para masculino);
• X2 = idade;
• X3 = estado civil (1 para solteiro e 0 para casado).

21
Regressão Logística – Exemplo
• Suponha uma pessoa do sexo feminino, com 40
anos de idade e casada, a probabilidade é
𝑝𝑟𝑜𝑏 𝑒𝑣𝑒𝑛𝑡
1
= −(1,143+0,452∙1+0,029∙40−0,242∙0)
= 0,47
1+𝑒
• Se fosse do sexo masculino, a probabilidade seria
𝑝𝑟𝑜𝑏 𝑒𝑣𝑒𝑛𝑡
1
= −(1,143+0,452∙0+0,029∙40−0,242∙0)
= 0,02
1+𝑒

22
Regressão Logística – Exemplo
• A razão do risco (risk ratio), em função do sexo, é
dada por
0,47
෢ =
𝑅𝑅 = 27,59
0,02
• Significa que a mulher teria uma probabilidade
quase 28 vezes maior de adquirir a assinatura da
revista do que o homem
• Só aplicável quando é possível especificar todas as
variáveis independentes e quando a análise se
concentrar em cada observação

23
Regressão Logística
• Risk Odds Ratio (ROR), calculada pela razão de odds
(chance) entre dois grupos (R0 e R1)
𝑜𝑑𝑑𝑠 𝑅1
𝑅𝑂𝑅𝑅1,𝑅0 =
𝑜𝑑𝑑𝑠 𝑅0
• Temos
1
𝑃(𝑅1 ) 1 + 𝑒 −(𝛼+σ 𝛽𝑖 𝑋𝑖 )
𝑜𝑑𝑑𝑠 𝑅1 = =
1 − 𝑃(𝑅1 ) 𝑒 −(𝛼+σ 𝛽𝑖 𝑋𝑖 )
1 + 𝑒 −(𝛼+σ 𝛽𝑖 𝑋𝑖 )
= 𝑒 (𝛼+σ 𝛽𝑖 𝑋𝑖 )

24
Regressão Logística – Exemplo
• Continuando
1
𝑃(𝑅0 ) 1 + 𝑒 −(𝛼+σ 𝛽𝑖 𝑋𝑖 )
𝑜𝑑𝑑𝑠 𝑅0 = =
1 − 𝑃(𝑅0 ) 𝑒 −(𝛼+σ 𝛽𝑖 𝑋𝑖 )
1 + 𝑒 −(𝛼+σ 𝛽𝑖 𝑋𝑖 )
= 𝑒 (𝛼+σ 𝛽𝑖 𝑋𝑖 )
• Assim, ROR será calculado
𝑃(𝑅1 )
1 − 𝑃(𝑅1 )
𝑅𝑂𝑅𝑅1,𝑅0 =
𝑃(𝑅0 )
1 − 𝑃(𝑅0 )
25
Regressão Logística
• Continuando
𝑜𝑑𝑑𝑠 𝑅1 𝑒 (𝛼+σ 𝛽𝑖 𝑋1𝑖 )
𝑅𝑂𝑅𝑅1,𝑅0 = = (𝛼+σ 𝛽 𝑋 )
𝑜𝑑𝑑𝑠 𝑅0 𝑒 𝑖 0𝑖

• Para
𝑎 = 𝑒 (𝛼+σ 𝛽𝑖 𝑋1𝑖 ) e 𝑏 = 𝑒 (𝛼+σ 𝛽𝑖 𝑋0𝑖 )
𝑜𝑑𝑑𝑠 𝑅1 𝑒 (𝛼+σ 𝛽𝑖 𝑋1𝑖 )
𝑅𝑂𝑅𝑅1,𝑅0 = = (𝛼+σ 𝛽 𝑋 ) = 𝑒 𝑎−𝑏
𝑜𝑑𝑑𝑠 𝑅0 𝑒 𝑖 0𝑖
σ𝑘
= 𝑒 𝑖=1 𝛽(𝑋1𝑖 −𝑋0𝑖 )

26
Regressão Logística
• Modelo logit
𝑃(𝑅1 ) 𝑃(𝑅1 )
𝑍 = 𝑙𝑜𝑔𝑖𝑡 = 𝑙𝑛 = 𝑙𝑛
1 − 𝑃(𝑅1 ) 𝑃(𝑅0 )
= ln 𝑒 𝛼+σ 𝛽𝑖 𝑋𝑖 = 𝛼 + ෍ 𝛽𝑖 𝑋𝑖

• Sendo P(R1) a probabilidade de ocorrência do


evento de interesse, podemos calcular a
probabilidade de classificar o indivíduo no grupo R1
1
𝑃 𝑅1 =
1 + 𝑒 −(𝛼+σ 𝛽𝑖 𝑋𝑖 )
27
Premissas
• Relação linear entre o vetor das variáveis
explicativas X e a variável dependente Y
• Valor esperado dos resíduos é igual a zero
• Ausência de autocorrelação
• Ausência de correlação entre os resíduos e as
variáveis explicativas
• Ausência de multicolinearidade

28
Medidas de Ajuste
• A medida geral do ajuste do modelo é dada pelo
valor de verossimilhança, ou seja, -2 vezes o
logaritmo do valor da verossimilhança, -2LL

• Assim, quando a verossimilhança for 1 (ajuste


perfeito), o valor de -2LL é zero

29
Medidas de Ajuste
Outras medidas de ajuste
• Pseudo R2 (R2 logit)
2
−2𝐿𝐿0 − (−2𝐿𝐿𝛽 )
𝑅𝑙𝑜𝑔𝑖𝑡 =
−2𝐿𝐿0
• Cox & Snell R2 (semelhante a regressão múltipla)
2
𝐿0 𝑁
𝑅2 𝐶𝑆 =1−
𝐿𝛽
2
𝑅2 𝐶𝑆 𝑀𝑎𝑥 = 1 − (𝐿0 )𝑛

30
Medidas de Ajuste
Outras medidas de ajuste
• Nagelkerke R2
𝑅 2 𝐶𝑆
𝑅෨𝑁
2
=
𝑅 2 𝐶𝑆 𝑀𝑎𝑥
• Teste Qui-quadrado: avalia se existe diferenças
significativas entre o esperado e o observado
• Hosmer-Lemeshow Goodness-of-fit Test: testa se as
classificações previstas para cada grupo são iguais às
observadas, por meio da estratificação das observações
em faixas (decis) e da aplicação de um teste Qui-
quadrado (X2)

31
Medidas de Ajuste
• Para analisar o poder preditivo do modelo, é usual
a utilização de uma tabela de classificação

• Necessário um ponto de corte c (classification


cutoff), valor acima indicam a presença do evento
de interesse e abaixo sua ausência

32
Medidas de Ajuste
Probabilidade
Estimada

Maior que c Menor que c

Presença do evento de Ausência do evento de


interesse interesse

33
Medidas de Ajuste
Exemplo seguradora (ocorrência de sinistro)

Observado Predito
Ocorrência de Sinistro Não-ocorrência de sinistro Total
Ocorrência de Sinistro 25 7 32
Não-ocorrência de 5 163 168
sinistro
Total 30 170 200

34
Medidas de Ajuste
Exemplo seguradora (ocorrência de sinistro)
• Cálculo da sensitividade
• Sensitividade = 25/32 = 78% (acertos no evento de
interesse)
• Especificidade = 163/168 = 97% (acerto nos eventos de
não sinistro)
• Percentual de Acerto do Modelo = (25 + 163)/200 = 94%

35
Medidas de Ajuste
• Se, para cada ponto de corte (c), fosse calculada a
sensitividade e especificidade, seria possível construir um
gráfico de Curva ROC (Receiver Operating Characteristic)

36
Medidas de Ajuste
• Quanto maior a área abaixo da Curva ROC, maior é
a capacidade do modelo em discriminar os grupos
de evento de interesse e não interesse
• Referência

Área abaixo da curva ROC Interpretação


Menor ou igual a 0,5 Não há discriminação
Entre 0,7 e 0,8 Discriminação aceitável
Maior que 0,8 Discriminação excelente

37
Medidas de Ajuste
• Outra medida de qualidade de ajuste é o uso do
modelo K-S (Kolmogorov-Smirnov), que mede o
grau de segregação dos dois grupos
• Referência

K-S Interpretação
Menor que 30 Baixa discriminação
De 30 a 50 Boa discriminação
Maior que 50 Ótima discriminação

38
Regressão Logística Multinomial
• Variável dependente categórica com mais de duas
categorias (nominal)
• Existe a regressão logística ordinal para as variáveis
ordinais
• Deve-se escolher uma categoria da variável
dependente para ser utilizada como referência
(pode ou não ser uma escolha arbitrária)

39
Regressão Logística Multinomial
• Considerando uma regressão logística multinomial com
três categorias (0, 1 e 2), sendo a categoria de
referência zero
𝑃(𝑅𝑒𝑠𝑢𝑙𝑡𝑎𝑑𝑜 = 1ȁ𝑋)
𝑍 = 𝑙𝑜𝑔𝑖𝑡 = 𝑙𝑛
𝑃(𝑅𝑒𝑠𝑢𝑙𝑡𝑎𝑑𝑜 = 0ȁ𝑋)
= 𝛼 + ෍ 𝛽1𝑖 𝑋1𝑖
𝑃(𝑅𝑒𝑠𝑢𝑙𝑡𝑎𝑑𝑜 = 2ȁ𝑋)
𝑍 = 𝑙𝑜𝑔𝑖𝑡 = 𝑙𝑛
𝑃(𝑅𝑒𝑠𝑢𝑙𝑡𝑎𝑑𝑜 = 0ȁ𝑋)
= 𝛼 + ෍ 𝛽2𝑖 𝑋2𝑖

40
Aplicação em Softwares

41
Stata – Base de dados veículos
sysuse auto set dp comma
** carrega base de dados ** colocar no padrão
sobre veículos decimal BR
describe
** mostra as set more off
informações dos dados ** retirar o botão more
browse
** visualizar os dados clear
** limpa toda a memória

42
• Estatística Descritiva
summarize
** estatísticas descritivas básicas
summarize, detail
** estatísticas descritivas detalhadas
tabstat price mpg rep78 headroom trunk foreign, stats (mean
sd skewness kurtosis n min max)
** formato tabela
tabulate rep78
tab rep78, sort missing
tab rep78, summarize(price)
** separação dos dados por tipo
tab rep78 foreign
** semelhante ao anterior
tab2 rep78 headroom foreign
** tabula os dados combinando as variáveis

43
• Linearidade na relação
twoway scatter trunk weight
** gráfico de dispersão
twoway scatter trunk weight if foreign==0
** apenas com foreing = 0 (nacionais/domestic)
twoway scatter trunk weight, by(foreign)
** gráfico por tipo (foreign)
twoway line trunk weight, by(foreign)
** gráfico de linhas
twoway line trunk weight, by(foreign) sort
** gráfico de linhas ordenado
graph bar weight price, over(foreign)
** gráfico de preço e peso, segregando em importados e nacionais
correlate price rep78 trunk weight
** correlação linear
pwcorr price rep78 trunk weight, sig
** correlação linear com significância estatística

44
• Normalidade das variáveis
graph box price, over(foreign)
** box plot
histogram price
** histograma
sktest price mpg rep78
** Skewness/Kurtosis test
swilk price mpg rep78
** Shapiro-Wilk test

45
• winsorização
winsor2 price, replace cuts (1 99)
** instalar pacote
** winsoriza a variável (verificar cuts)

46
Estatística Descritiva
• Saldo de Caixa: 7 anos

• Stata: Statistics > Summaries... > Summary statistics

47
Estatística Descritiva
• Saldo de Caixa: 7 anos

• Stata: Statistics > Summaries... > Correlations and


covariances

48
O que é o R
• O R é uma linguagem de programação voltada para a
resolução de problemas estatísticos e para a
visualização gráfica de dados. O código base do R foi
inicialmente criado no laboratório
da Bell/AT&T por John Chambers e seus colegas, com
base na linguagem S. Esse código foi reaproveitado por
dois acadêmicos, Ross Ihaka e Robert Gentleman,
resultando na plataforma de programação que temos
hoje. Para os curiosos, o nome R foi escolhido devido
ao compartilhamento da primeira letra do nome de
seus criadores.

49
O que é o R
• Hoje, R é sinônimo de programação voltada à análise de
dados, com uma larga base de usuários e funções bem
estabelecidas. É muito provável que pesquisadores de áreas
diversas, desde Economia até Biologia, ou mesmo Música,
encontrem no R uma quantidade significativa de códigos
que facilitem suas análises. No campo empresarial, grandes
empresas como Google e Microsoft já o adotaram como a
linguagem interna para a análise de dados. O R é
atualmente mantido pelo R Foundation e o R Consortium,
um esforço coletivo para financiar projetos de extensão da
linguagem.

50
O que é o R
• E o mais importante: o R é totalmente livre e
disponível em vários sistemas operacionais. Seja
você um usuário do Windows, do Linux/UNIX ou do
Mac-OS, existe uma instalação do R para a sua
plataforma, e os seus códigos devem rodar entre
uma e outra com mínimas alterações.

51
Uso do R
Linguagem de programação
• Importação, exportação, tratamento e armazenamento de dados
financeiros e econômicos com base em arquivos locais ou da internet;
• Criação de rotinas para o cálculo e a administração do risco de uma
carteira de investimento;
• Desenvolvimento de rotinas para a administração e execução de ordens
financeiras no mercado de capitais;
• Criação de ferramentas para controle, avaliação e divulgação de índices
econômicos sobre um país ou região;
• Execução de diversas possibilidades de pesquisa empírica através da
estimação de modelos econométricos e testes de hipóteses;
• Criação de websites dinâmicos com o pacote Shiny, possibilitando que
qualquer pessoa no mundo utilize uma ferramenta criada por você;
• Organização de um processo automatizado de criação e divulgação de
relatórios técnicos com o pacote knitr e a tecnologia RMarkdown.

52
Instalação do R
• https://www.r-project.org/

53
Instalação do R

54
Instalação do R

55
Instalação do R

56
Instalação do R

57
Instalando o RStudio
• A instalação do R inclui a sua própria interface gráfica, um programa que
facilita a edição e execução de nossos scripts. Essa, porém, possui várias
limitações. O RStudio é um software que torna o uso e o visual do R
muito mais prático e eficiente. Uma forma de entender essa relação é
com uma analogia com carros. Enquanto o R é o motor da linguagem de
programação, o RStudio é a carroceria e o painel de instrumentos, os
quais melhoram significativamente a experiência de uso. Além de
apresentar um visual mais atrativo, o RStudio também é acrescido de
várias funcionalidades que facilitam a vida do usuário, possibilitando a
construção de projetos e pacotes do próprio R, a criação de documentos
dinâmicos (Sweave/knitr) e a interface com edição de textos em LaTeX,
entre várias outras. Assim como o R, o RStudio também é gratuito e
pode ser utilizado no ambiente empresarial.

58
Instalando o RStudio
• A instalação do RStudio é mais simples do que a do R. Os arquivos estão
disponíveis no endereço disponibilizado no site do livro. Após acessar a
página, clique em Download RStudio e depois em Download Rstudio
Desktop. Logo após, basta selecionar o arquivo relativo ao sistema
operacional em que você irá trabalhar. Provavelmente, essa opção
será Windows Vista/7/8/10. Note que, assim como o R, o RStudio
também está disponível para diferentes plataformas.
• Destaco que o uso do RStudio não é essencial para desenvolver
programas no R. Outros softwares de interface estão disponíveis e
podem ser utilizados. Porém, dada minha experiência atual, o RStudio é
o programa de interface que oferece a maior variedade de
funcionalidades para essa linguagem, além de ser amplamente
utilizado, o que justifica a sua escolha.

59
Comunidade R na internet
• https://www.r-bloggers.com/
• https://brbloggers.com.br/
• https://marcosvital.github.io/blogs-de-R-no-Brasil/
• https://www.facebook.com/groups/141002352593
9155/

60
Operações Básicas no R
Uso de scripts

61
Objetos e Funções
• Tudo é um objeto, e cada tipo de objeto tem suas
propriedades
• Os comandos básicos do R, não incluindo demais
pacotes, somam um total de 1221 funções
• Cada função tem um nome
• Ex.: mean = média
• mean(1:5, na.rm = TRUE)
• MinhaFct(input1, input2, input3, ...)
• na.rm = TRUE, significa ignorar elementos do tipo
NA (not available), caso eles existam

62
O Formato Brasileiro
• Decimal: utilize a vírgula para separar funções. O
separador decimal é o ponto, exemplo 2.5
• Caracteres Latinos: não use cedilha e acentos.
Recomendado desenvolver o código em inglês
• Formato de datas: padrão YYYY-MM-DD, onde YYYY é o
ano em quatro números, MM é o mês e DD é o dia.
• Para saber qual o formato que o R está configurado,
digite o seguinte comando: Sys.localeconv()
• Para alterar temporariamente seu formato local para a
notação internacional: Sys.setlocale("LC_ALL",
"English")

63
Tipos de Arquivos
• Arquivos com extensão .R: Representam arquivos do tipo texto contendo
diversas instruções para o R. Esses são os arquivos que conterão o código da
pesquisa. Também pode ser chamado de um script ou rotina de pesquisa.
Exemplos: Minha_pesquisa.R, Minhas_Funções.R.
• Arquivos com extensão .RData e .rds: armazenam dados nativos do R. Esses
arquivos servem para salvar objetos criados em diferentes sessões. Por exemplo,
podes guardar o resultado de uma pesquisa em uma tabela, a qual é salva em
um arquivo com extensão .RData ou .rds. A diferença entre os dois formatos
anteriores é que o RData possibilita armazenar mais de um objeto do R,
enquanto o .rds armazena apenas um. Os arquivos salvos nesse formato podem
ser futuramente carregados em outra sessão do R. Exemplos:
Meus_dados.RData, Resultados_Pesquisa.rds.

64
Tipos de Arquivos
• Arquivos com extensão .Rmd, .md e .Rnw: representam arquivos para a
edição de documentos dinâmicos relacionados a
linguagem Rmarkdown e markdown. O uso desses arquivos permite a
criação de documentos onde texto e código são integrados.
• Arquivos com extensão .Rproj: contém informações para a edição de
projetos no RStudio. O uso desse tipo de arquivo facilita a criação de
projetos no R, tal com um novo pacote ou um script de pesquisa. O uso
desse arquivo possibilita configurar um projeto qualquer e também
facilita a utilização de ferramentas de controle de código, tal como
controle de versões. O seu uso, porém, não é essencial. Para aqueles
com interesse em conhecer esta funcionalidade, sugiro a leitura
do manual do RStudio. Exemplo: Meu_Projeto.Rproj.

65
Dados
Fonte: B3 (Brasil Bolsa Balcão) e CVM (Comissão de
Valores Mobiliários)

• ITR: informações trimestrais (quarterly)


• DFP: demonstrações financeiras padronizadas
• FRE: formulários de referência (eventos
corporativos)
• FCA: formulários cadastrais (informações de
registro)

66
Pesquisas com fontes de dados

Perlin et. Al (2019)


67
Pesquisas com fontes de dados

Perlin et. Al (2019)


68
Pesquisas com fontes de dados

Perlin et. Al (2019)


69
Pesquisas com fontes de dados

Perlin et. Al (2019)


70
GetDFPData no R
• Instalação
# Release version in CRAN
install.packages('GetDFPData')

71
GetDFPData no R
• Carregando
library(GetDFPData)
library(tibble)
df.info <- gdfpd.get.info.companies(type.data =
'companies')
## Found cache file. Loading data..
glimpse(df.info)
## Observations: 525
## Variables: 16
## $ name.company <chr> "521 PARTICIPAÇOES S.A. - ...

72
GetDFPData no R
• Setores B3
t.sector <- table(df.info$main.sector)
print(as.data.frame(sort(t.sector, decreasing =
TRUE)))

73
GetDFPData no R
• Setores B3
Var1 Freq
1 Consumo Cíclico 81
2 Financeiro 79
3 Bens Industriais 76
4 Utilidade Pública 67
5 Materiais Básicos 32
6 Consumo não Cíclico 26
7 Outros 24
8 Saúde 19
9 Petróleo. Gás e Biocombustíveis 10
10 Financeiro e Outros 8
11 Não Classificados 8
12 Tecnologia da Informação 7
13 Comunicações 6

74
GetDFPData no R
• Listagem Governança
t.listings <- table(df.info$listing.segment)
print(as.data.frame(sort(t.listings, decreasing =
TRUE)))

75
GetDFPData no R
• Listagem Governança
Var1 Freq
1 Tradicional 235
2 Novo Mercado 144
3 Corporate Governance - Level 1 26
4 Corporate Governance - Level 2 21
5 Bovespa Mais 15
6 Bovespa Mais - Level 2 2

76
GetDFPData no R
• Recuperando Tickers
idx <- which(df.info$name.company == 'GERDAU
S.A.')
tickers.Gerdau <- df.info$tickers[idx]
print(tickers.Gerdau)
## [1] "GGBR3;GGBR4"

77
GetDFPData no R
• Encontrando empresa pelo nome
library(GetDFPData)
my.names <- gdfpd.search.company('ambev')
## Found cache file. Loading data..
##
## Found 1 companies:
## AMBEV S.A. | situation = ATIVO | first date =
2012-12-31 | last date - 2019-12-31

78
GetDFPData no R
• Download da informação financeira
name.companies <- 'AMBEV S.A.'
first.date <- ‘2016-12-31'
last.date <- '2019-12-31'
df.reports <- gdfpd.GetDFPData(name.companies =
name.companies,
first.date = first.date,
last.date = last.date)

79
GetDFPData no R
• Carregando a DRE (cada ano em nova linha)
df.income.long <- df.reports$fr.income[[1]]
glimpse(df.income.long)

80
GetDFPData no R
• Carregando a DRE (transformação para cada ano
em nova coluna)
df.income.wide <-
gdfpd.convert.to.wide(df.income.long)
glimpse(df.income.wide)

81
GetDFPData no R
• Download de várias empresas simultaneamente
set.seed(1)
active.companies <- df.info$name.company[df.info$situation ==
'ATIVO']
my.companies <- sample(active.companies, 3)
first.date <- '2016-01-31'
last.date <- '2020-01-01'
df.reports <- gdfpd.GetDFPData(name.companies = my.companies,
first.date = first.date,
last.date = last.date)
• Verificando o resultado
glimpse(df.reports)

82
Exemplo com Ativo Total
library(dplyr)
# bind rows of assets for different companies
df.assets <- bind_rows(df.reports$fr.assets)
# check result
glimpse(df.assets)

83
Exemplo com Ativo Total
• Construindo uma tabela com Ativo Total
library(dplyr)
my.tab <- df.assets %>%
filter(acc.desc == 'Ativo Total') %>%
group_by(name.company, ref.date) %>%
summarise(Total.Assets = acc.value)
print(my.tab)

84
Exemplo com Ativo Total
• Analisando em uma figura
library(ggplot2)
p <- ggplot(my.tab, aes(x = ref.date, y=Total.Assets)) +
geom_col() + facet_wrap(~name.company, nrow = 3,
scales = 'free') +
labs(y = 'Total Assets', x = 'Year')
print(p)

85
Exemplo com Ativo Total

Perlin et. Al (2019)


86
GetDFPData no R
• Exportando dados para o Excel
my.basename <- 'MyExcelData'
my.type.export <- 'xlsx'
gdfpd.export.DFP.data(df.reports,
base.file.name = my.basename,
type.export = my.type.export)

87
Estatística Descritiva no R
função(dados$coluna, digits = 1, na.rm = TRUE)

Descrição Inglês Função no R


Média Mean mean()
Desvio padrão Standard deviation sd()
Variância Variance var()
Mínimo Minimum min()
Máximo Maximum max()
Mediana Median median()
Amplitude Range of values range()
(minimum and maximum)
Quartis Sample quantiles quantile()
Estatística descritiva Summary summary()
Amplitude Interquartil Interquartile range IQR()

88
Importando Dados no R
• install.packages('xlsx')
• library(xlsx)
• Caixa <-
read.xlsx("C:/Users/mbote/Documents/Aula3-
SaldoCaixa.xlsx", 1) # importar a primeira planilha

• Estat_Descritiva <- summary(Caixa)

89
Exportando Dados no R
• install.packages('xlsx')
• library(xlsx)

• write.xlsx(Estat_Descritiva, file =
“Caixa_Descritiva.xlsx", sheetName = "Dados",
append = FALSE)

90
Para a Próxima Aula
• Artigo 1: Financial Distress Prediction in an
International Context: A Review and Empirical
Analysis of Altman’s Z-Score Model. Altman,
Iwanicz-Drozdowska, Laitinen & Suvas. JIFMA 2017.

• Artigo 2: Binary response and logistic regression in


recent accounting research publications: a
methodological note. Ge &Whitmore. RQFA 2010.

91
Obrigado pela
Atenção!!!
Até a próxima aula

/mbotelhocm

/mbotelhocm

/in/mbotelhocm

92

Você também pode gostar