Detalhes do que será apresentado:

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

Análise Discriminante

#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.

Regressão Logistica:

# 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.

COMPARATIVO DOS MODELOS:

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.