Amostra de 91 empresas:
49 classificadas como Insolventes
Concordatárias – CLASS_Y = 1
42 classificadas como Solventes –
CLASS_Y = 0
LS – Liquidez Seca = (AC-Est)/PC
GA – Giro do
Ativo = Receita/AT
Rep_EST – Representatividade do Estoque = EST/AT
Rep_PC – Representatividade do Passivo Circulante = PC/PT
EST_CUSTO – Estoque a preço de custo = estoque/custo
FORN_VEN –
Relação fornecedores x Receita de Vendas = Fornec/Receita
Pede-se:
a)
Elabora uma Análise Discriminante considerando a CLASS_Y como variável
dependente.
b) Analise o modelo de Análise
Discriminante.
c) Elabora uma Regressão
Logística considerando a CLASS_Y como variável dependente.
d) Analise o modelo de Regressão
Logística.
e) Compare os dois modelos e dê
sua recomendação
#0 é Solvente
#1 é insolvente
#criando modelo de analise discriminante
modelo.lda <- lda(CLASS_Y~., data = df)
modelo.lda #modelo
## Call:
## lda(CLASS_Y ~ ., data = df)
##
## Prior probabilities of groups:
## 0 1
## 0.4615385 0.5384615
##
## Group means:
## LS GA Rep_EST Rep_PC EST_CUST FORN_VEN
## 0 2.6739757 0.8372029 0.1049829 0.4035126 255247.9 0.05648663
## 1 0.2914637 1.6697893 0.4945348 0.7319800 14061586.6 16387187.26970718
##
## Coefficients of linear discriminants:
## LD1
## LS -0.0314261832553
## GA 0.3165673329255
## Rep_EST 3.3854959161930
## Rep_PC 0.6519586854497
## EST_CUST -0.0000001952112
## FORN_VEN 0.0000001699373
Probabilidades a priori dos grupos:
Grupo 0 (Solvente): A priori, 46,15% das
empresas são solventes.
Grupo 1
(Insolvente): A priori, 53,85% das empresas são
insolventes.
Essas probabilidades refletem a distribuição de classes
no conjunto de dados. Como há mais empresas classificadas como
Insolventes (classe 1) no conjunto de dados, a probabilidade a priori de
uma empresa ser classificada como insolvente é maior.
Médias dos grupos para cada variável
preditora:
As colunas mostram as médias de cada
variável (LS, GA, Rep_EST, etc.) para os grupos Solvente (0) e
Insolvente (1).
Grupo 0 (Solvente):
As
empresas solventes têm uma média de Liquidez Seca (LS) mais alta (2.67)
e um Giro do Ativo (GA) menor (0.837) em comparação com as empresas
insolventes.
As variáveis Rep_EST (representatividade do estoque),
Rep_PC (passivo circulante), e EST_CUST (estoque a preço de custo)
também têm valores mais baixos.
Grupo 1
(Insolvente):
Empresas insolventes têm um Giro do
Ativo (GA) mais alto (1.67), o que pode indicar uma maior rotatividade
dos ativos, mas apresentam valores muito altos de EST_CUST (estoque a
preço de custo) e FORN_VEN (relação fornecedores x receita de vendas), o
que pode refletir problemas de gestão financeira.
Essas médias
ajudam a entender as características que diferenciam as empresas
solventes das insolventes.
Coeficientes da função discriminante linear
(LD1):
Esses coeficientes indicam o peso de cada
variável na função discriminante que separa os grupos (Solventes
vs. Insolventes).
Os coeficientes maiores (positivos ou negativos)
indicam que a variável tem maior importância para distinguir os
grupos.
Resumo dos Coeficientes:
As variáveis
Rep_EST (representatividade do estoque), GA (giro do ativo) e Rep_PC
(representatividade do passivo circulante) parecem ser as mais
influentes na discriminação entre empresas solventes e insolventes.
Empresas com altos estoques em relação aos ativos, alto giro de ativos e
maior passivo circulante têm maior probabilidade de serem classificadas
como Insolventes.
plot(modelo.lda) #gráfico grupos
O Grupo 0 (Solvente) tende a estar concentrado em escores mais
negativos, enquanto o Grupo 1 (Insolvente) apresenta uma maior dispersão
em torno de escores próximos a 0 e positivos.
Esse tipo de gráfico
ajuda a entender a separação entre os dois grupos na análise
discriminante. Uma boa separação indicaria que os dois grupos apresentam
distribuições claramente distintas ao longo do eixo, o que parece ser
parcialmente o caso aqui, embora haja uma sobreposição nas regiões
próximas a 0.
predictions <- modelo.lda %>% predict(df)
lda.pred <- ifelse(predictions$class=="1", "Insolvente", "Solvente")
Classificacao <- ifelse(df$CLASS_Y > 0.5, "Insolvente", "Solvente")
CM.lda <- table(lda.pred, Classificacao)
# Matriz de Confusão
confusionMatrix(CM.lda)
## Confusion Matrix and Statistics
##
## Classificacao
## lda.pred Insolvente Solvente
## Insolvente 38 4
## Solvente 11 38
##
## Accuracy : 0.8352
## 95% CI : (0.7427, 0.9047)
## No Information Rate : 0.5385
## P-Value [Acc > NIR] : 0.000000002394
##
## Kappa : 0.6723
##
## Mcnemar's Test P-Value : 0.1213
##
## Sensitivity : 0.7755
## Specificity : 0.9048
## Pos Pred Value : 0.9048
## Neg Pred Value : 0.7755
## Prevalence : 0.5385
## Detection Rate : 0.4176
## Detection Prevalence : 0.4615
## Balanced Accuracy : 0.8401
##
## 'Positive' Class : Insolvente
##
A partir dessa Matriz de Confusão e das Estatísticas fornecidas,
podemos interpretar várias métricas importantes relacionadas ao
desempenho do modelo de Análise Discriminante Linear (LDA)
Accuracy (Acurácia):
Valor: 0.8352 (ou
83,52%)
Intervalo de Confiança (95% CI): (0.7427, 0.9047)
Interpretação: O modelo classifica corretamente 83,52% das empresas. Ou
seja, ele acerta a classificação como “Insolvente” ou “Solvente” em
83,52% dos casos. O intervalo de confiança sugere que, com 95% de
certeza, a verdadeira acurácia do modelo está entre 74,27% e
90,47%.
No Information Rate (NIR):
Valor: 0.5385 (ou 53,85%)
Interpretação: Essa métrica representa
a taxa de acerto se o modelo sempre previsse a classe mais frequente
(neste caso, a classe Insolvente, que representa 53,85% das empresas). A
acurácia do modelo (83,52%) é significativamente melhor do que o NIR,
como mostrado pelo P-Value (2.394e-09), que indica que a acurácia do
modelo é significativamente maior do que prever sempre a classe
majoritária.
Sensitivity (Sensibilidade):
Valor: 0.7755 (ou 77,55%)
Interpretação: A sensibilidade mede a
capacidade do modelo de identificar corretamente as empresas Insolventes
(classe positiva). O modelo está corretamente identificando 77,55% das
empresas que são, de fato, Insolventes.
Specificity (Especificidade):
Valor: 0.9048 (ou 90,48%)
Interpretação: A especificidade mede a
capacidade do modelo de identificar corretamente as empresas Solventes
(classe negativa). O modelo está corretamente identificando 90,48% das
empresas que são Solventes.
Positive Predictive Value (PPV ou
Precision):
Valor: 0.9048 (ou 90,48%)
Interpretação: De todas as empresas que
o modelo classificou como Insolventes, 90,48% realmente eram
Insolventes.
Negative Predictive Value (NPV):
Valor: 0.7755 (ou 77,55%)
Interpretação: De todas as empresas que
o modelo classificou como Solventes, 77,55% realmente eram
Solventes.
Balanced Accuracy (Acurácia
Balanceada):
Valor: 0.8401 (ou 84,01%)
Interpretação: A acurácia balanceada é a média entre a sensibilidade
(capacidade de detectar Insolventes) e a especificidade (capacidade de
detectar Solventes). Como os dados estão razoavelmente equilibrados
entre as classes, essa métrica é muito próxima da acurácia global
(83,52%).
# Curva ROC
roc <- roc(predictions$class, df$CLASS_Y)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
plot.roc(roc)
A curva ROC mede a relação entre a
sensibilidade e a especificidade do modelo para diferentes limiares de
classificação.
A linha cinza diagonal representa um modelo de classificação
aleatória ou um modelo sem capacidade discriminatória. Se o seu modelo
seguisse essa linha, isso significaria que ele está simplesmente fazendo
previsões aleatórias.
A curva indica que o modelo tem um bom desempenho ao classificar
empresas como Solventes ou Insolventes, com uma alta taxa de acerto para
ambos os casos.
# Curva ROC
modelo.log <- glm(CLASS_Y~., data = df, family = binomial)
# Modelo
summary(modelo.log)
##
## Call:
## glm(formula = CLASS_Y ~ ., family = binomial, data = df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.031708857 0.882006665 -3.437 0.000588 ***
## LS -0.227565911 0.277598007 -0.820 0.412348
## GA 0.937947501 0.357388665 2.624 0.008679 **
## Rep_EST 6.601818668 1.949505027 3.386 0.000708 ***
## Rep_PC 1.096808746 0.632419541 1.734 0.082864 .
## EST_CUST -0.000002450 0.000246470 -0.010 0.992068
## FORN_VEN 0.000002145 0.000213949 0.010 0.992001
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 125.614 on 90 degrees of freedom
## Residual deviance: 62.368 on 84 degrees of freedom
## AIC: 76.368
##
## Number of Fisher Scoring iterations: 16
o modelo foi ajustado com a variável resposta CLASS_Y (se a empresa é
solvente ou insolvente) e todas as outras variáveis no conjunto de dados
(LS, GA, Rep_EST, Rep_PC, EST_CUST, FORN_VEN) como preditoras.
Interpretação dos Coeficientes:
Os
coeficientes (Estimate) representam o impacto de cada variável preditora
na probabilidade de uma empresa ser insolvente (classe 1). Os sinais
(+/-) dos coeficientes indicam a direção da relação.
Intercept: -3.03
Este é o intercepto do modelo. Ele não tem uma interpretação direta
na análise, mas é usado para calcular a probabilidade base quando todas
as variáveis preditoras são iguais a zero.
LS
(Liquidez Seca): -0.227
Coeficiente negativo, o que sugere que aumentos na liquidez seca
estão associados a uma menor probabilidade de insolvência. No entanto, o
p-valor é 0.412, o que indica que este coeficiente não é
estatisticamente significativo.
GA (Giro do
Ativo): 0.938
Coeficiente positivo, o que indica que um aumento no giro do ativo
está associado a uma maior probabilidade de insolvência. O p-valor de
0.0087 sugere que esta variável é estatisticamente significativa (p <
0.05).
Rep_EST (Representatividade do
Estoque): 6.602
Este é o maior coeficiente do modelo, indicando que um aumento na
representatividade do estoque está fortemente associado a uma maior
probabilidade de insolvência. O p-valor de 0.0007 indica que esta
variável é altamente significativa.
Rep_PC
(Representatividade do Passivo Circulante): 1.097
Coeficiente positivo, sugerindo que um aumento na representatividade
do passivo circulante está associado a uma maior probabilidade de
insolvência. O p-valor de 0.0829 está próximo do nível de significância
de 0.05, o que indica que a variável pode ser considerada marginalmente
significativa.
EST_CUST (Estoque a preço de
custo): -0.000002450
Este coeficiente é muito próximo de zero e tem um p-valor de 0.9921,
indicando que esta variável não tem efeito estatisticamente
significativo sobre a probabilidade de insolvência.
FORN_VEN (Relação Fornecedores x Receita de
Vendas): 0.000002145
Semelhante a EST_CUST, este coeficiente é muito pequeno e com p-valor
de 0.9920, também indicando que não é estatisticamente
significativo.
Significância dos Coeficientes:
A
coluna Pr(>|z|) mostra os p-valores para cada coeficiente. Esses
valores indicam a significância estatística das variáveis:
Rep_EST e
GA são as variáveis mais significativas (p < 0.01).
Rep_PC é
marginalmente significativa (p < 0.1).
LS, EST_CUST e FORN_VEN
não são estatisticamente significativas (p > 0.1).
Interpretação Geral:
O modelo de
regressão logística ajustado sugere que as variáveis GA (Giro do Ativo),
Rep_EST (Representatividade do Estoque) e Rep_PC (Passivo Circulante)
têm impacto significativo na probabilidade de uma empresa ser
classificada como insolvente.
Rep_EST tem o maior impacto, sugerindo
que empresas com maior representatividade de estoque estão muito mais
propensas a serem insolventes.
Variáveis como EST_CUST (Estoque a
preço de custo) e FORN_VEN (Relação Fornecedores x Receita de Vendas)
não têm impacto significativo no modelo.
# Obter o R2
PseudoR2(modelo.log)
## McFadden
## 0.5034963
O McFadden’s R² é uma versão do coeficiente de determinação R²,
adaptado para a regressão logística. Ele mede o quanto o modelo ajustado
melhora a explicação dos dados em comparação com um modelo “nulo” (que
só tem o intercepto, sem variáveis preditoras).
O McFadden’s R² de 0.5035 indica que o modelo de regressão logística
está ajustando bem os dados, explicando mais da metade da variabilidade
entre empresas solventes e insolventes. Isso sugere que o modelo tem um
bom poder preditivo.
# Previsão das classes
glm.probs <- predict(modelo.log, type = "response")
# Classificação com nomes
glm.pred <- ifelse(glm.probs > 0.5, "Insolvente", "Solvente")
# Matriz de Confusão
Classificacao_log <- ifelse(df$CLASS_Y > 0.5, "Insolvente", "Solvente")
CM.log <- table(glm.pred, Classificacao_log)
confusionMatrix(CM.log)
## Confusion Matrix and Statistics
##
## Classificacao_log
## glm.pred Insolvente Solvente
## Insolvente 41 6
## Solvente 8 36
##
## Accuracy : 0.8462
## 95% CI : (0.7554, 0.9133)
## No Information Rate : 0.5385
## P-Value [Acc > NIR] : 0.0000000005323
##
## Kappa : 0.6915
##
## Mcnemar's Test P-Value : 0.7893
##
## Sensitivity : 0.8367
## Specificity : 0.8571
## Pos Pred Value : 0.8723
## Neg Pred Value : 0.8182
## Prevalence : 0.5385
## Detection Rate : 0.4505
## Detection Prevalence : 0.5165
## Balanced Accuracy : 0.8469
##
## 'Positive' Class : Insolvente
##
Matriz de Confusão:
Acurácia:
Valor: 0.8462 (ou 84,62%)
Interpretação: O modelo acertou em 84,62% dos casos ao classificar as
empresas como Solventes ou Insolventes. O intervalo de confiança (95%
CI) de (0.7554, 0.9133) sugere que, com 95% de certeza, a acurácia real
do modelo está entre 75,54% e 91,33%.
No Information
Rate (NIR):
Valor: 0.5385
Interpretação: Este
valor representa a taxa de acerto que o modelo teria se ele previsse
sempre a classe mais frequente (Insolvente). O p-valor associado ao
teste da acurácia mostra que o modelo é significativamente melhor do que
apenas prever a classe mais comum (p < 0.0000000005323).
Sensitivity (Sensibilidade):
Valor: 0.8367
(ou 83,67%)
Interpretação: A sensibilidade mede a capacidade do
modelo de identificar corretamente as empresas Insolventes (verdadeiros
positivos). O modelo está corretamente identificando 83,67% das empresas
que são, de fato, Insolventes.
Specificity
(Especificidade):
Valor: 0.8571 (ou 85,71%)
Interpretação: A especificidade mede a capacidade do modelo de
identificar corretamente as empresas Solventes (verdadeiros negativos).
O modelo está corretamente identificando 85,71% das empresas que são
Solventes.
Positive Predictive Value (PPV ou
Precisão):
Valor: 0.8723 (ou 87,23%)
Interpretação: De todas as empresas que o modelo classificou como
Insolventes, 87,23% realmente eram Insolventes.
Negative Predictive Value (NPV):
Valor:
0.8182 (ou 81,82%)
Interpretação: De todas as empresas que o modelo
classificou como Solventes, 81,82% realmente eram Solventes.
Balanced Accuracy (Acurácia Balanceada):
Valor: 0.8469 (ou 84,69%)
Interpretação: A acurácia balanceada é a
média entre a sensibilidade e a especificidade. Isso indica que o modelo
tem um desempenho equilibrado ao classificar tanto as empresas
Insolventes quanto as Solventes.
# Curva ROC
roc <- roc(df$CLASS_Y, glm.probs)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
plot.roc(roc)
A curva ROC mede a relação entre a
sensibilidade e a especificidade do modelo para diferentes limiares de
classificação.
A linha cinza diagonal representa um modelo de classificação
aleatória ou um modelo sem capacidade discriminatória. Se o seu modelo
seguisse essa linha, isso significaria que ele está simplesmente fazendo
previsões aleatórias.
A curva indica que o modelo tem um bom desempenho ao classificar
empresas como Solventes ou Insolventes, com uma alta taxa de acerto para
ambos os casos.
Acurácia:
LDA: 83,52%
Regressão
Logística: 84,62%
A Regressão Logística teve um desempenho
ligeiramente melhor, com uma acurácia superior em 1%. A diferença é
pequena, mas sugere que a Regressão Logística é ligeiramente mais eficaz
na classificação geral.
Sensibilidade (Recall para
Insolventes):
LDA: 77,55%
Regressão Logística:
83,67%
A Regressão Logística tem uma sensibilidade
significativamente melhor do que a LDA. Isso significa que a Regressão
Logística é mais eficaz em identificar corretamente as empresas
Insolventes. Se o objetivo principal é minimizar os falsos negativos
(classificar uma empresa insolvente como solvente), a Regressão
Logística é o melhor modelo.
Especificidade (Recall para Solventes):
LDA: 90,48%
Regressão Logística: 85,71%
A LDA tem uma
especificidade melhor, o que significa que ela é mais eficaz em
identificar corretamente as empresas Solventes. Se o foco for minimizar
os falsos positivos (classificar uma empresa solvente como insolvente),
a LDA pode ser uma escolha mais conservadora.
Positive Predictive Value (PPV):
LDA: 90,48%
Regressão Logística: 87,23%
Ambos os modelos
têm um desempenho bom, mas a LDA tem uma ligeira vantagem, o que
significa que, quando o modelo classifica uma empresa como Insolvente, a
LDA tem uma taxa ligeiramente maior de acertos.
Negative Predictive Value (NPV):
LDA: 77,55%
Regressão Logística: 81,82%
Aqui, a Regressão
Logística tem um desempenho melhor, indicando que ela é mais eficaz em
garantir que as empresas classificadas como Solventes realmente sejam
Solventes.
Balanced Accuracy:
LDA: 84,01%
Regressão Logística: 84,69%
Ambos os modelos têm uma
acurácia balanceada muito semelhante, mas a Regressão Logística tem uma
pequena vantagem. Isso sugere que o desempenho geral dos dois modelos é
equilibrado, mas a Regressão Logística ainda tem um ligeiro desempenho
superior.
Recomendação:
Após a análise
comparativa entre os modelos de Análise Discriminante Linear (LDA) e
Regressão Logística, recomenda-se a Regressão Logística como o modelo
mais adequado para este cenário.
A principal razão para essa
recomendação é que a Regressão Logística apresenta um desempenho mais
equilibrado entre a identificação de empresas Solventes e Insolventes,
com uma acurácia balanceada de 84,69%, ligeiramente superior à Análise
Discriminante. Além disso, a Regressão Logística se destaca por sua
maior sensibilidade (83,67%), o que significa que ela é mais eficaz na
identificação de empresas Insolventes.
Prever corretamente as
Insolvências é crucial, pois são essas empresas que representam um risco
potencial de prejuízo financeiro. O modelo de regressão logística, por
conseguir prever os Insolventes com maior precisão, minimiza o risco de
deixar de identificar empresas que podem gerar perdas. Essa vantagem é
essencial para proteger a empresa de impactos financeiros negativos, uma
vez que as Insolvências não detectadas podem levar a decisões comerciais
erradas e ao acúmulo de dívidas incobráveis.
Portanto, a Regressão
Logística é recomendada por ser um modelo mais equilibrado e mais eficaz
na identificação de empresas insolventes, garantindo uma maior segurança
nas decisões financeiras e ajudando a empresa a evitar potenciais
prejuízos.