Introduzione Regressione logistica in R

Regressione logistica in R noto anche come problemi di classificazione binaria. Sono usati per prevedere un risultato come (1 o 0 sì / no) per una variabile indipendente. Per comprendere la regressione logistica in R, è importante conoscere la regressione lineare di base, funziona con la variabile di risultato continua. Più specificamente possiamo dire che è un'estensione della regressione lineare. In questo articolo, discuteremo di vari metodi usati per calcolare il modello e la valutazione. La regressione logistica viene utilizzata per risolvere i problemi di classificazione nell'apprendimento automatico.

Come funziona la regressione logistica in R?

La regressione logistica è una tecnica utilizzata nel campo della statistica che misura la differenza tra una variabile dipendente e indipendente con la guida della funzione logistica stimando la diversa occorrenza delle probabilità. Possono essere binomiali (ha esito positivo o negativo) o multinomiali (discreto vs. povero molto scarso). I valori di probabilità si trovano tra 0 e 1 e la variabile dovrebbe essere positiva (<1). Ha come target la variabile dipendente e ha i seguenti passaggi da seguire:

  1. n. di prove fisse su un set di dati acquisito
  2. con due risultati di prova
  3. l'esito della probabilità dovrebbe essere indipendente l'uno dall'altro
  4. La probabilità di successo e insuccesso deve essere la stessa ad ogni prova.

In questo, stiamo prendendo in considerazione un esempio prendendo il pacchetto ISLR, che fornisce vari set di dati per la formazione. Per adattarsi al modello, qui viene utilizzata la funzione del modello lineare generalizzato (glm). Per creare una regressione logistica si preferisce la funzione glm e ne ottiene i dettagli utilizzando un riepilogo per l'attività di analisi.

Fasi di lavoro:

Le fasi di lavoro sulla regressione logistica seguono determinati elementi del termine come

  • Modellare la probabilità o fare una stima della probabilità
  • predizione
  • Inizializzazione del valore di soglia (specificità alta o bassa)
  • Matrice di confusione
  • L'area del grafico sotto la curva (AUC)

Esempi

Di seguito sono riportati alcuni esempi di regressione logistica in R:

Caricamento dati:

Installazione del pacchetto ISLR.

require (ISLR)

Caricamento del pacchetto richiesto: ISLR

Per questo articolo, useremo un set di dati 'Weekly' in RStudio. Il set di dati implica i dettagli di riepilogo dello stock settimanale dal 1990 al 2010.

require (ISLR)

nomi (GU)

Produzione:

(1) "Acquista" "WeekofPurchase" "StoreID" "PriceCH"

(5) “PriceMM” “DiscCH” “DiscMM” “SpecialCH”

(9) "SpecialMM" "LoyalCH" "SalePriceMM" "SalePriceCH"

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

(17) "ListPriceDiff" "STORE"

str (GU)

Mostra 1070 osservazioni di 18 variabili.

Il nostro set di dati ha 1070 osservazioni e 18 variabili diverse. qui abbiamo MM speciale e CH speciale ha un risultato dipendente. Prendiamo un attributo MM speciale per avere un'osservazione corretta e un'accuratezza dell'84%.

tavolo (GU $ SpecialMM)

0 1

897 173

Avanti per trovare la probabilità

897/1070

(1) 0.8383178

Nel passaggio successivo per un campione migliore La suddivisione del set di dati in training e test del set di dati è un goo

biblioteca (CATools)

set.seed (88)

split = sample.split (OJ $ SpecialMM, SplitRatio = 0.84)

Considerando che qt ha un set di allenamento e qs ha un set di dati di prova.

qt = sottoinsieme (GU, diviso == TRUE)

qs = sottoinsieme (GU, diviso == FALSE)

nrow (qt)

(1) 898

nRow (qb)

(1) 172

Pertanto abbiamo 898 set di training e 172 campioni di test.

Il prossimo utilizzo di Summary () fornisce i dettagli di devianza e tabelle coefficienti per l'analisi di regressione.

QualityLog = glm (SpecialMM ~ SalePriceMM + WeekofPurchase, data = qt, family = binomial)

riassunto (QualityLog)

Produzione:

Chiamata:

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

data = qt)

Residui di devianza:

Min 1Q Mediana 3Q Max

-1.2790 -0.4182 -0.3687 -0.2640 2.4284

coefficienti:

Stima std. Valore z errore Pr (> | z |)

(Intercetta) 2.910774 1.616328 1.801 0.07173.

SaldiPrezzo MM -4.538464 0.405808 -11.184 <2e-16 ***

WeekofPurchase 0.015546 0.005831 2.666 0.00767 **

-

Deviazione nulla: 794, 01 su 897 gradi di libertà

Devianza residua: 636, 13 su 895 gradi di libertà

AIC: 642.13

Numero di iterazioni di punteggio Fisher: 5

Dall'analisi sopra, si dice che la tabella dei coefficienti fornisce valori positivi per WeekofPurchase e hanno almeno due stelle che implicano che sono i codici significativi del modello.

Tecnica di predizione:

Qui useremo la funzione Predict Train in questo pacchetto R e forniremo le probabilità che stiamo usando l'argomento chiamato type = response. Vediamo la previsione applicata al set di allenamento (qt). La R prevede il risultato sotto forma di P (y = 1 | X) con la probabilità al contorno di 0, 5.

predictTrain = predict (QualityLog, type = "response")

Il riepilogo risulta in una media, valori medi e minimi, massimi.

sommario (predictTrain) Esecuzione dà

Min. Media quinta media Media quinta max.

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

tapply (predictTrain, qt $ SpecialMM)

Per calcolare la media per le vere probabilità viene utilizzata la funzione tapply ().

Tapply (predictTrain, qt $ SpecialMM, media)

0 1

0, 1224444 0, 3641334

Pertanto, nell'affermazione di cui sopra troviamo che la possibilità di SpecialMM reale significa che il valore è 0, 34 e che per il valore veramente scarso è 0, 12.

Calcolo del valore di soglia:

se P è> T– la previsione è scarsa MM speciale

se P è

Matrice di classificazione:

tabella (qt $ SpecialMM, predictTrain> 0, 5)

FALSA VERITÀ

0 746 7

1 105 40

Per calcolare la sensibilità e la specificità

40/145

(1) 0, 2758621

746/753

(1) 0.9907039

Test set Prediction

predictTest = predict (QualityLog, type = "response", newdata = qs)

tabella (qs $ SpecialMM, predictTest> = 0.3)

FALSA VERITÀ

0 130 14

1 10 18

tabella (qs $ SpecialMM, predictTest> = 0, 5)

FALSA VERITÀ

0 140 4

1 18 10

Precisione calcolatrice

150/172

(1) 0, 872093

Ci sono 172 casi da cui 144 sono buoni e 28 sono poveri.

Tracciamento della curva ROC:

Questo è l'ultimo passo tracciando la curva ROC per le misurazioni delle prestazioni. Un buon valore AUC dovrebbe essere più vicino a 1 e non a 0, 5. Verifica con le probabilità 0, 5, 0, 7, 0, 2 per prevedere come aumenta e diminuisce il valore di soglia. Viene eseguito tracciando contemporaneamente i valori di soglia nella curva ROC. Una buona scelta è scegliere considerando una maggiore sensibilità.

Tecniche di regressione logistica

Vediamo un'implementazione della logistica utilizzando R, in quanto semplifica l'adattamento del modello. Esistono due tipi di tecniche:

  • Regressione logistica multinomiale
  • Regressione logistica ordinale

Ex funziona con variabili di risposta quando hanno più o uguale a due classi. successivamente funziona quando l'ordine è significativo.

Conclusione

Quindi, abbiamo appreso la logica di base alla base della regressione e abbiamo implementato la regressione logistica su un particolare set di dati di R. Una regressione binomiale o binaria misura i valori categorici delle risposte binarie e delle variabili predittive. Svolgono un ruolo vitale nell'analisi in cui gli esperti del settore si aspettano di conoscere la regressione lineare e logistica. Hanno le loro sfide e, nell'esempio pratico, abbiamo fatto i passi sulla pulizia dei dati, pre-elaborazione. Complessivamente abbiamo visto come la regressione logistica risolva un problema di esito categorico in modo semplice e facile.

Articoli consigliati

Questa è stata una guida alla regressione logistica in R. Qui discutiamo il funzionamento, le diverse tecniche e un'ampia spiegazione sui diversi metodi utilizzati nella regressione logistica in R. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Quadri di apprendimento automatico
  2. R vs Python
  3. Funzioni stringa Python
  4. Python è un linguaggio di scripting
  5. Distribuzione binomiale in R | Sintassi
  6. Regressione vs classificazione

Categoria: