Introdução Regressão logística em R

Regressão logística em R também conhecida como problemas de classificação binária. Eles são usados ​​para prever um resultado como (1 ou 0 sim / não) para uma variável independente. Para entender a regressão logística em R, é importante conhecer a regressão linear básica, trabalha com a variável de resultado contínuo. Mais especificamente, podemos dizer que é uma extensão da regressão linear. Neste artigo, discutiremos vários métodos usados ​​para calcular modelo e avaliação. A regressão logística é usada para resolver problemas de classificação no aprendizado de máquina.

Como funciona a regressão logística em R?

A regressão logística é uma técnica usada no campo da estatística que mede a diferença entre uma variável dependente e independente com o guia da função logística, estimando as diferentes ocorrências de probabilidades. Eles podem ser binomiais (com resultado sim ou não) ou multinomial (regular x ruim, muito ruim). Os valores de probabilidade estão entre 0 e 1 e a variável deve ser positiva (<1). Ele tem como alvo a variável dependente e tem as seguintes etapas a seguir:

  1. nº de ensaios fixos em um conjunto de dados obtido
  2. com dois resultados experimentais
  3. o resultado da probabilidade deve ser independente um do outro
  4. A probabilidade de sucesso e fracassos deve ser a mesma em cada tentativa.

Nesse sentido, estamos considerando um exemplo, usando o pacote ISLR, que fornece vários conjuntos de dados para treinamento. Para ajustar o modelo, a função de modelo linear generalizado (glm) é usada aqui. Para criar uma função de regressão logística, glm é preferida e obtém os detalhes usando um resumo para a tarefa de análise.

Etapas de trabalho:

As etapas de trabalho sobre regressão logística seguem certos elementos do termo, como

  • Modelando a probabilidade ou fazendo estimativa de probabilidade
  • predição
  • Inicializando o valor limite (especificidade Alta ou Baixa)
  • Matriz de confusão
  • A área de plotagem sob a curva (AUC)

Exemplos

Abaixo estão alguns exemplos de regressão logística em R:

Carregamento de dados:

Instalando o pacote ISLR.

exigir (ISLR)

Carregando o pacote necessário: ISLR

Para este artigo, vamos usar um conjunto de dados 'Semanal' no RStudio. O conjunto de dados implica os detalhes resumidos do estoque semanal de 1990 a 2010.

exigir (ISLR)

nomes (JO)

Resultado:

(1) "Compra" "Semana da compra" "ID da loja" "Preço CH"

(5) “PreçoMM” “DiscCH” “DiscMM” “SpecialCH”

(9) “SpecialMM” “LoyalCH” “SalePriceMM” “SalePriceCH”

(13) "PriceDiff" "Store7" "PctDiscMM" "PctDiscCH"

(17) "ListPriceDiff" "STORE"

str (JO)

Mostra 1070 observações de 18 variáveis.

Nosso conjunto de dados possui 1070 observações e 18 variáveis ​​diferentes. aqui temos MM especial e CH especial tem um resultado dependente. Vamos usar um atributo MM Especial para ter uma observação correta e uma precisão de 84%.

tabela (JO $ SpecialMM)

0 1

897 173

Avançar para encontrar a probabilidade

897/1070

(1) 0, 8383178

Na próxima etapa, para obter uma amostra melhor, dividir o conjunto de dados em treinamento e teste

biblioteca (caTools)

set.seed (88)

split = sample.split (OJ $ SpecialMM, SplitRatio = 0, 84)

Considerando qt possui um conjunto de treinamento e qs possui dados de amostra do conjunto de teste.

qt = subconjunto (JO, divisão == VERDADEIRO)

qs = subconjunto (JO, divisão == FALSE)

nrow (qt)

(1) 898

nrow (qs)

(1) 172

Portanto, temos 898 conjuntos de treinamento e 172 amostras de teste.

Em seguida, usar Summary () fornece os detalhes de desvio e tabelas coeficientes para análise de regressão.

QualityLog = glm (SpecialMM ~ SalePriceMM + WeekofPurchase, data = qt, família = binomial)

resumo (QualityLog)

Resultado:

Ligar:

glm (formula = SpecialMM ~ SalePriceMM + WeekofPurchase, family = binomial,

data = qt)

Deviance Residuals:

Mín. 1T Mediana 3T Max

-1, 2790 -0, 4182 -0, 3687 -0, 2640 2, 4284

Coeficientes:

Estimativa Std. Valor z de erro Pr (> | z |)

(Intercepto) 2, 910774 1, 616328 1, 801 0, 07173.

Preço de vendaMM -4, 538464 0, 405808 -11, 184 <2e-16 ***

Semana da compra 0, 015546 0, 005831 2, 666 0, 00767 **

-

Desvio nulo: 794, 01 em 897 graus de liberdade

Desvio residual: 636, 13 em 895 graus de liberdade

AIC: 642.13

Número de iterações de pontuação do Fisher: 5

A partir da análise acima, diz-se que a tabela de coeficientes fornece valores positivos para WeekofPurchase e eles têm pelo menos duas estrelas, o que implica que são os códigos significativos para o modelo.

Técnica de previsão:

Aqui, usaremos a função prever Train neste pacote R e forneceremos probabilidades de que estamos usando o argumento chamado type = response. Vamos ver a previsão aplicada ao conjunto de treinamento (qt). OR prevê o resultado na forma de P (y = 1 | X) com a probabilidade limite de 0, 5.

preverTrain = prever (QualityLog, tipo = "resposta")

O resumo resulta em valores medianos, médios e mín., Máx.

A execução sumária (predictTrain) fornece

Min. 1º Qu.Mediano Média 3º Qu.Max.

0, 02192 0, 03342 0, 07799 0, 16147 0, 25395 0, 89038

tapply (preverTrain, qt $ SpecialMM)

Para calcular a média das probabilidades reais, a função tapply () é usada.

tapply (predictTrain, qt $ SpecialMM, média)

0 1

0.1224444 0.3641334

Portanto, encontramos na afirmação acima que a possibilidade de SpecialMM verdadeiro significa valor é 0, 34 e para valor ruim verdadeiro é 0, 12.

Cálculo do valor limite:

se P for> T - a previsão é ruim MM Especial

se P é

Matriz de classificação:

tabela (qt $ SpecialMM, preverTrain> 0, 5)

FALSO VERDADEIRO

0 746 7

1 105 40

Para calcular a sensibilidade e especificidade

40/145

(1) 0, 2758621

746/753

(1) 0, 9907039

Previsão do conjunto de testes

preverTeste = prever (QualityLog, tipo = "resposta", novos dados = qs)

tabela (qs $ SpecialMM, predictTest> = 0.3)

FALSO VERDADEIRO

0 130 14

1 10 18

tabela (qs $ SpecialMM, predictTest> = 0.5)

FALSO VERDADEIRO

0 140 4

1 18 10

Calculando precisão

150/172

(1) 0, 872093

Existem 172 casos, dos quais 144 são bons e 28 são ruins.

Traçando a curva ROC:

Este é o último passo, plotando a curva ROC para medições de desempenho. Um bom valor de AUC deve estar mais próximo de 1 e não de 0, 5. Verificando com as probabilidades 0, 5, 0, 7, 0, 2 para prever como o valor limite aumenta e diminui. Isso é feito plotando os valores limiares simultaneamente na curva ROC. Uma boa opção é escolher considerando maior sensibilidade.

Técnicas de regressão logística

Vamos ver uma implementação da logística usando R, pois facilita muito o ajuste do modelo. Existem dois tipos de técnicas:

  • Regressão logística multinomial
  • Regressão logística ordinal

O primeiro trabalha com variáveis ​​de resposta quando elas têm mais que ou igual a duas classes. depois funciona quando o pedido é significativo.

Conclusão

Portanto, aprendemos a lógica básica por trás da regressão e implementamos a Regressão Logística em um conjunto de dados específico de R. Uma regressão binomial ou binária mede valores categóricos de respostas binárias e variáveis ​​preditoras. Eles desempenham um papel vital na análise, em que os especialistas do setor esperam conhecer a regressão linear e logística. Eles têm seus próprios desafios e, no exemplo prático, concluímos as etapas de limpeza e pré-processamento de dados. No geral, vimos como a regressão logística resolve um problema de resultado categórico de maneira simples e fácil.

Artigos recomendados

Este foi um guia para a regressão logística em R. Aqui discutimos o trabalho, diferentes técnicas e uma ampla explicação sobre os diferentes métodos usados ​​na regressão logística em R. Você também pode consultar os seguintes artigos para saber mais -

  1. Estruturas de aprendizado de máquina
  2. R vs Python
  3. Funções de String Python
  4. Python é uma linguagem de script
  5. Distribuição binomial em R | Sintaxe
  6. Regressão vs Classificação

Categoria: