Regressão logística, é regressão?

Gabriel Pires
7 min readJul 13, 2022

--

Na última série de posts(1, 2, 3), vimos que é possível prever um valor futuro baseado em uma variável independente. Agora, já imaginou prever se determinada transação é fraude? Ou se determinada pessoa vai comprar um produto? Ou se um funcionário irá deixar sua empresa?

Alguns modelos conseguem realizar isso, mas hoje quero falar um pouco mais sobre a regressão logística.

O que é Regressão Logística?

A regressão logística é um modelo estatístico supervisionado que utiliza uma função logística. É comumente usada para estimar a probabilidade de uma instância pertencer a uma classe específica. Caso a probabilidade estimada seja maior que 50%, o modelo prediz que a instância pertence a uma classe (denominada classe positiva, rotulada como “1”) se não, prevê que não pertence (pertence a classe negativa, rotulada como “0”). Isso o torna um classificador binário.

Podemos classificar a regressão logística em três grupos:

  1. Regressão logística binária:
    A variável dependente tem apenas dois 2 resultados/classes possíveis. Exemplo: Sim ou Não.
  2. Regressão logística Multinominal:
    A variável dependente tem apenas 3 ou mais resultados/classes possíveis sem ordenação. Exemplo: Boa, Ótima e Ruim.
  3. Regressão logística Ordinal:
    A variável dependente tem apenas 3 ou mais resultados/classes possíveis com ordenação. Exemplo: Classificação de 1 a 5

E a linear?

Se a regressão logística consegue prever, porque a regressão linear não consegue?

Será que a regressão linear consegue classificar?
  1. Regressão linear prevê variáveis contínuas e o resultado de suas predições variam no infinito;
  2. Como a predição de valores não é probabilístico mas sim contínuo, não é trivial achar uma região de separação entre as classes;
  3. Em classificação de multiclasses a ideia piora, uma vez que n classes presentes não apresentariam ordem perante a classificação, assim como haveria relação com variáveis dependentes e independentes, algo que não é esperado para uma classificação

Um modelo de regressão não pode ser implementado pois o mesmo gera um output dentro dos reais, entretanto a probabilidade desejada é somente entre 0 e 1. Como solução disso, implementasse a função logística que é uma função sigmoide (forma de S) que gera como saída um número entre 0 e 1.

Algumas diferenças entre as “irmãs”

A regressão logística leva o nome de regressão, mas não assume as mesmas premissas que uma regressão linear clássica, ou seja:

  • Não é necessário relação linear entre variáveis dependentes e independentes;
  • Os erros não precisam apresentar uma distribuição normal;
  • Não é necessário Homocedasticidade (erros constantes).

Suas necessidades

Mas, entretanto, todavia, ela tem suas premissas básicas:

  1. Assume-se que há baixa ou zero multicolineariedade entre as variáveis independentes, ou seja, dados não redundantes. Um modo de checar a presença de multicolineariedade é usar o fator de inflação da variância (variance_inflation_factor presente no statsmodel).
  2. Assume-se que variáveis independentes são linearmente relacionadas do log de odds (Probabilidade, vamos falar sobre isso mais pra frente). Podemos verificar com teste de Box-Tidwell.
  3. Assume-se grande quantidade de amostra para boa predição (novidade, não?).
  4. Assume-se que as observações são independentes uma das outras (freedom).
  5. Não há outliers nas variáveis independentes. Podemos verificar com IQR, Z-score ou boxplot.

Coeficientes da função

Modelo linear vs. Modelo logístico

A interpretação dos coeficientes acaba sendo diferente da Regressão Linear, pois neste caso estamos trabalhando com uma probabilidade entre 0 e 1.

Diferente da regressão, em vez do coeficiente de inclinação (b) ser a taxa de variação de p quando x muda, agora o coeficiente de inclinação é interpretado como a taxa de variação da “log de odds” quando X muda.

A variável resposta da regressão logística possui distribuição de Bernoulli, com probabilidade de sucesso e probabilidade de fracasso.

No treinamento, o objetivo é definir o vetor do parâmetro theta, de modo que o modelo estime probabilidades altas para instancias positivas (y=1) e probabilidades baixas para instancias negativas (y=0).

O que é o bendito Odds?

Podemos definir uma função de Odds (probabilidade do evento acontecer divido pela probabilidade do evento não acontecer) como a taxa da probabilidade do sucesso ou de falha de uma determinada instância, e ainda, a função logística utilizada no modelo é somente o logaritmo da função de Odds. Com odds a chance de ocorrer um evento do tipo A, onde A’ é a negação de A:

Com x em uma classe positiva, p = P(y=1):

Podemos usar um regressão qualquer do tipo f para estimar a probabilidade já que a função logística retorna um valor dentro dos reais no intervalo 0 e 1. Além disso, sigma é a função logística que é nada mais que a função inversa da logística. Com isso fica claro entender o significado do nome do modelo, Regressão Logística, sendo o cálculo da probabilidade de uma classe ser positiva ou negativa através de Sigma(f(x)), onde Sigma é uma função logística e f(x) (ou a no caso abaixo) uma função de regressão.

Neste modelo, utiliza-se uma regressão linear qualquer:

Então:

Função de custo da Regressão Logística

Mesmo esse modelo sendo uma regressão, não podemos utilizar a mesma função de custo que o modelo linear pois o MSE não promove uma função convexa para esta função, sendo assim, haverá mínimos locais o que pode dificultar a chegar no mínimo global. Isso acontece pela presença da função sigmoide, que não é linear.

Funções convexa e não convexa.

“Substituto” da função de custo: Entropia cruzada

Então, no caso da regressão logística, a melhor função de custo é a entropia cruzada binária.

Estamos buscando um modelo que gere altas probabilidades as classes positivas e baixas as negativas. No caso de uma classe positiva a função de custo deve ser alta quando p = P(y=1) for baixa. Portanto, a função de custo para a regressão logística pode ser definida como:

Visualmente falando, temos:

Plot das duas possibilidade da entropia cruzada.

Repare que quando y = 1 para p = 1 o custo é 0, quando y = 0 para a mesma condição o custo é alto. O mesmo acontece para a y = 0. Ou seja, a função de custo pune as classes preditas erroneamente.

Combinando as duas equações acima podemos obter uma função de custo convexa, sendo possível obter o mínimo global. Algo contra intuitivo é a presença do sinal de negativo na função de custo, mas ela se faz presente devido ao resultado de log 0 (ou próximo de) que são valores negativos.

Portanto, a entropia cruzada é:

  • Nula quando o modelo prediz a classe correta e com alta confiança (y = p = 1 ou y = p = 0).
  • Infinita quando o modelo prediz a classe errada com alta confiança (y = 1 e p = 0, ou y = 0 e p = 1).
  • Entre 0 e infinito quando o modelo não tem alta confiança.

Dessa forma, a entropia cruzada server como uma medida de incerteza.

Gráfico de entropias.

No gráfico da direita, todos os pontos com x > 0 são positivos, enquanto os pontos com x < 0 são negativos. Dessa forma, p é quase sempre 0 ou 1 (alta confiança) e vai de 0 para 1 muito rapidamente, o que corresponde a uma baixa entropia. Já no gráfico da esquerda, os dados estão muito mais espalhados e misturados (por exemplo, há uma observação positiva no meio de observações negativas). Isso significa que o modelo não consegue aprender tão bem e p passa mais lentamente de 0 para 1, correspondendo a uma maior entropia.

Essa função de custo é convexa, assim sendo, o gradiente descendente (ou qualquer outro algoritmo de otimização) garante o mínimo global.

Se quiser saber mais sobre o gradiente descendente, confira esse post.

Pronto, até aqui já sabemos:

  • Porque a regressão linear não consegue classificar;
  • O que é a regressão logística;
  • Qual é a sua função de custo.

Acho que já estamos prontos pra implementar e entender um modelo de Regressão Logística. O próximo post será 100% dedicado a isso.

Espero vocês lá! :)

--

--