Modellazione di data science: come utilizzare la regressione lineare con Python

Dai un'occhiata a R², Errore al quadrato medio e altro

di Brian Henriquez, Chris Kazakis e Dean Sublett

Foto di Campaign Creators su Unsplash

Introduzione e obiettivi

La regressione lineare è una tecnica ampiamente utilizzata nella scienza dei dati a causa della relativa semplicità nell'implementazione e nell'interpretazione di un modello di regressione lineare.

Questo tutorial illustrerà i modelli di regressione lineare semplici e multipli del set di dati 80 Cereals usando Python e discuterà alcune metriche di regressione rilevanti, ma non ipotizziamo un'esperienza precedente con la regressione lineare in Python. Il set di dati 80 Cereals è disponibile qui.

Ecco alcuni obiettivi:

  • Comprendi il significato e i limiti di R²
  • Scopri le metriche di valutazione per la regressione lineare e quando utilizzarle
  • Implementa un modello di regressione lineare semplice e multiplo con il set di dati 80 Cereals

Esplorare i dati

Dopo aver scaricato il set di dati, importare i pacchetti Python necessari e il set di dati di cereali stesso:

Uscita da cereal.head ()

Qui vediamo che ogni riga è una marca di cereali e ogni colonna è una caratteristica nutrizionale (proteine, grassi, ecc.) O identificativa (produttore, tipo) del cereale. Si noti che la valutazione è la risposta o la variabile dipendente.

Successivamente, abbiamo creato un diagramma di coppie delle correlazioni tra ciascuna caratteristica del set di dati e da questa visualizzazione abbiamo selezionato tre variabili predittive: calorie, fibre e zuccheri. Il diagramma che mostra ogni correlazione è troppo grande per essere condiviso qui, ma possiamo dare un'occhiata più da vicino con un diagramma a coppie più piccole che include solo le nostre variabili predittive. Usando seaborn.pairplot, possiamo vedere tre grafici a dispersione con le linee dei minimi quadrati montati:

Associa il grafico di ciascuna variabile predittore con la variabile di risposta

Ora che abbiamo più familiarità con i dati, possiamo iniziare a impostare i nostri modelli di regressione lineare.

Nota: per trasmettere facilmente i concetti, non calcoliamo i valori R² e R² regolati utilizzando una divisione test / train dei dati. Ma si prega di riconoscere che l'utilizzo di una divisione test / train di osservazioni selezionate casualmente è considerata la migliore pratica, ed è così che presentiamo i nostri errori e AIC / BIC verso la fine del tutorial.

Il modello di regressione lineare

Vogliamo discutere R² e il suo significato per i modelli di regressione lineare. Ma per capire esattamente cos'è R², per prima cosa dobbiamo capire cos'è un modello lineare. Diamo un'occhiata a un diagramma a dispersione che confronta le calorie in una porzione di un cereale e la sua valutazione:

Grafico a dispersione di rating e calorie

Possiamo vedere chiaramente che porzioni di cereali con più calorie generalmente ricevono recensioni più scarse. Se assumiamo che ci sia una relazione tra queste due variabili, allora possiamo costruire un modello che prevede la valutazione di un cereale in base al numero di calorie.

Per verificare che la relazione sia, in effetti, lineare, possiamo tracciare i residui del nostro modello su un grafico e cercare modelli. Un modello chiaro nel residuo potrebbe suggerire che un altro modello, come un quadratico o logaritmico, possa descrivere meglio la relazione tra le due variabili. Controlliamo i residui:

Non c'è un modello chiaro nei residui, quindi non ci sono prove che esista un'equazione non lineare più adatta.

Per la regressione lineare, saremo interessati alla formula:

x è la variabile predittore per la variabile di risposta y

Per creare un modello, possiamo usare il metodo di scorrimento lineare scipy.

E otteniamo il seguente output:

  • LinregressResult (pendenza = -0.49701318979564285, intercetta = 95.78802384439143, valore = -0.6893760311652586, valore = 4.1402774000064275e-12, stderr = 0.06030617024600228)

Il primo elemento è b_1, il secondo è b_0 e il terzo valore è il valore R, noto anche come coefficiente di correlazione. Il valore R varia da 1 a -1 e misura la forza della relazione tra variabili esplicative e una variabile di risposta. Il valore R per calorie rispetto al punteggio è -.689, il che dimostra che esiste una forte relazione negativa tra le due variabili. Più il valore R è da 0, migliore è un modello nel predire i valori.

Quadrando R, otteniamo il coefficiente di determinazione, R². R² è un valore che rappresenta quale percentuale della variazione nella variabile y può essere spiegata dalla variazione nella variabile x. Un valore R² elevato indica un modello più forte. Diamo un'occhiata ad alcuni valori R² nel nostro set di dati:

Stampiamo quanto segue:

  • R² del modello con Predictor Cup: 0,0412740112014871
  • R² del modello con predittore di calorie: 0.4752393123451636

Questi valori di R² ci indicano che le calorie sono un predittore di valutazione migliore delle coppe.

La regressione lineare semplice è utile, ma spesso vogliamo vedere come diverse variabili possono essere utilizzate per prevedere una singola variabile. Otteniamo una serie 2D di predittori di cereali estraendone una fetta con tutta la nostra variabile di interesse. calorie, fibre e zucchero sembravano essere buoni predittori quando abbiamo esaminato in precedenza il diagramma delle coppie di correlazioni, quindi diamo un'occhiata a un modello usando questi tre:

Otteniamo il seguente output:

  • R²: 0,8483669504178866
  • R² rettificato: 0.8070124823500374

Scopriamo che il valore di R² è aumentato da .475 nel modello a una variabile (con le calorie come predittore), a .848. Ciò sembra indicare che il potere predittivo del nostro modello è aumentato.

Tuttavia, aggiungiamo un predittore scadente, tazze, a questo modello di regressione lineare multipla e vediamo cosa succede:

Questo codice fornisce il seguente output:

  • R²: 0,8490487016343364
  • R² rettificato: 0.788668182288071

Ricordiamo che il numero di tazze per porzione di cereali sembrava non avere quasi alcuna correlazione con la valutazione del consumatore nel singolo caso variabile. Ma quando lo aggiungiamo al modello, l'R² complessivo aumenta a .849, il che implica un miglioramento della potenza predittiva del modello. Tuttavia, in base a ciò che sappiamo, questo modello a quattro variabili non dovrebbe essere migliore del modello a tre variabili. In base a come viene calcolato il valore R², l'aggiunta di più variabili a un modello aumenterà sempre il valore R². Pertanto, dobbiamo confrontare i valori di R² corretti, che mitiga l'aumento di R² a causa di variabili aggiuntive. La formula per l'R² modificato è

Dimensione N totale del campione, numero p di predittori

Usando questo troviamo che il modello a tre variabili ha un R² aggiustato di .807, mentre il modello a quattro variabili ha un R² aggiustato di .788. Pertanto, il modello a tre variabili è migliore di questa metrica.

R² è una delle metriche più importanti per valutare se un modello lineare si adatta ai dati, quindi è importante avere una comprensione intuitiva di ciò che significa. Conoscere i limiti di R² e in che modo è possibile mitigarli è altrettanto importante quando si implementano modelli di regressione lineare.

Errore al quadrato medio (MSE)

I modelli di regressione hanno un numero di diverse metriche di valutazione. Una delle metriche più popolari e di cui discuteremo per prima è il quadruplo di errore medio (MSE).

fonte

MSE è una metrica di valutazione che misura la media delle differenze al quadrato tra i valori osservati e previsti. In altre parole, MSE ci dice quanto sia accurato o impreciso il nostro modello di regressione lineare: più basso è l'MSE, migliore è il modello nel predire i valori. Troviamo l'MSE del nostro modello di regressione:

La nostra variabile mse ritorna come 26.6329.

Un'altra metrica di valutazione a nostra disposizione è l'errore quadratico medio radice (RMSE), che è semplicemente la radice quadrata del nostro MSE. Usando la funzione radice quadrata dal modulo matematico Python, sqrt (mse) ritorna come 5.1607.

È importante notare che il nostro valore RMSE condivide le stesse unità della variabile di risposta (abbiamo preso la radice quadrata degli errori quadrati). Il nostro valore RMSE di 5.1607 è relativamente basso nell'intervallo 0–100 della variabile di rating, quindi il nostro modello di regressione lineare multipla è “buono” nel predire il rating di un marchio di cereali. Ma ci sono altri errori che possiamo usare.

Errore assoluto medio (MAE)

La prossima metrica di valutazione della regressione che prenderemo in considerazione è l'errore assoluto medio (MAE).

fonte

Poiché MSE raddoppia la differenza dei residui, le disparità maggiori tra i valori effettivi e previsti sono "punite" più duramente da MSE che da MAE. A causa dei termini al quadrato, MSE è più sensibile ai valori anomali di MAE.

Se decidessimo che i valori anomali nel nostro set di dati non fossero significativi nell'analisi dei dati, potremmo passare a MAE prima di MSE poiché i residui dei valori erratici non sarebbero esagerati dalla quadratura dei residui. Troviamo il MAE:

La nostra variabile mae restituisce 3.6153. Il nostro MAE è relativamente piccolo dato l'intervallo 0–100 di valutazione, quindi il nostro MAE indica che il nostro modello è ragionevolmente accurato nelle sue previsioni.

Errore percentuale assoluta media (MAPE)

La metrica di valutazione della regressione finale che prenderemo in considerazione è l'errore percentuale assoluta media (MAPE).

fonte

MAPE fornisce l'accuratezza dei modelli predittivi in ​​percentuale. Notare la somiglianza nelle formule MAE e MAPE. Come MAE, MAPE non è fortemente influenzato dai valori anomali. Tuttavia, utilizzare MAPE con cautela perché

  • MAPE è incline alla divisione per zero errori (vedere il denominatore all'interno della somma);
  • MAPE può diventare molto grande se i valori effettivi sono molto piccoli (di nuovo, vedere l'operazione di divisione nella somma);
  • MAPE è distorto rispetto alle previsioni inferiori ai valori osservati.

Troviamo MAPE per il nostro modello:

La nostra funzione MAPE restituisce la seguente percentuale: 8,458%. Quindi la nostra previsione è "off" in media dell'8,5% circa.

AIC e BIC

AIC (Akaike Information Criterion) e BIC (Bayesian Information Criterion) sono metodi obiettivi per valutare i modelli di regressione e determinare il miglior sottoinsieme di predittori (quale modello si adatta meglio).

Quando aggiungi parametri al tuo modello, si adatterà sempre un po 'meglio. Ma poi hai il rischio di perdere informazioni sul reale modello sottostante. Pertanto, esiste un compromesso tra il numero di parametri e la quantità di errore per cui il modello rappresenta. AIC e BIC valutano la capacità dei modelli di tenere conto di ulteriori variazioni nella variabile che si sta prevedendo ma senza adattarsi eccessivamente al modello.

AIC

AIC ti consente di stimare la quantità di informazioni perse nei tuoi modelli in modo da poter confrontare quali modelli funzionano meglio e scegliere il sottoinsieme più appropriato di predittori. Più specificamente, il valore AIC esamina la distanza relativa tra la funzione di verosimiglianza reale dei dati e la funzione di verosimiglianza adattata del modello. Minore è tale distanza, quindi più il modello è vicino alla rappresentazione reale dei dati. AIC è indicato con questa formula:

Numero N di osservazioni, numero K di parametri adatti + 1

Se confrontiamo l'adattamento di due modelli usando il metodo AIC, il modello con il valore AIC inferiore ha l'adattamento migliore.

Troviamo i valori AIC dei nostri due modelli di regressione multipla che abbiamo usato in precedenza. Uno ha tre predittori e l'altro ne ha quattro. Per prima cosa definiremo i valori che inseriremo nella formula, quindi eseguiremo la formula:

Questo dà il seguente output:

  • AIC del modello con tre predittori: 60.51438447233831
  • AIC del modello con quattro predittori: 62.31365180026097

Da quello che vediamo, il modello con tre predittori ha un valore AIC inferiore e quindi si adatta meglio del modello con quattro predittori (ma non di molto in questo esempio).

BIC

BIC è simile all'AIC, ma è molto più rigoroso in termini di penalizzazione del modello per l'aggiunta di più parametri. È indicato con questa formula:

Numero N di osservazioni, numero K di parametri adatti + 1

Se confrontiamo l'adattamento di due modelli usando il metodo BIC, il modello con il valore BIC più basso ha l'adattamento migliore, simile al processo per il metodo AIC.

Troviamo i valori BIC per gli stessi due modelli che abbiamo appena usato. Qui l'unica differenza è la penalità che moltiplichiamo il numero di parametri per:

Questo dà il seguente output:

  • BIC del modello con tre predittori: 63.60473936129743
  • BIC del modello con quattro predittori: 66.17659541145987

Da quello che vediamo qui, il modello con tre predittori ha un valore BIC inferiore e quindi si adatta meglio del modello con quattro predittori. Poiché la penalità BIC è più severa della penalità AIC, i valori per il metodo BIC sono maggiori del metodo AIC per i rispettivi modelli.

A causa della differenza di penalità, AIC può scegliere un modello con più parametri rispetto a BIC. Si consiglia di utilizzare insieme AIC e BIC e prendere decisioni sui propri modelli in base a entrambi i set di risultati. In questo caso, AIC e BIC erano d'accordo tra loro e hanno scelto gli stessi modelli.

Vocabolario chiave

Per riassumere, abbiamo discusso

  • R²: un indicatore della forza con cui il modello di regressione lineare prevede la variabile di risposta
  • R² rettificato: un indicatore di quanto forte il modello di regressione lineare multipla tiene conto della varianza nella variabile dipendente mentre corregge il numero di parametri nel modello
  • MSE (errore al quadrato medio): una metrica di valutazione che punisce notevolmente i valori anomali; probabilmente il primo errore che calcolerai e utilizzerai quando i valori anomali rappresentano un vero fenomeno del set di dati
  • RMSE (errore quadratico medio radice): la radice quadrata di MSE; condivide le stesse unità della variabile response, quindi RMSE potrebbe essere più "interpretabile" di MSE
  • MAE (errore assoluto medio): una metrica di valutazione utilizzata per ridurre il significato degli outlier nella misurazione dell'errore; usato quando i valori anomali non rappresentano un vero fenomeno del set di dati
  • MAPE (errore percentuale assoluto medio): una misura dell'accuratezza di un modello di regressione in percentuale; soggetto a errori di runtime o valori insolitamente grandi quando la variabile di risposta assume valori piccoli
  • AIC (Akaike Information Criterion): una valutazione della quantità di informazioni perse in diversi modelli che penalizza un aumento dei parametri. Indipendentemente dalla dimensione dei dati, ha sempre la possibilità di scegliere un modello troppo grande. Da utilizzare in combinazione con BIC.
  • BIC (Bayesian Information Criterion): simile all'AIC ma penalizza maggiormente. Indipendentemente dalla dimensione dei dati, ha sempre la possibilità di scegliere un modello troppo piccolo. Da utilizzare in combinazione con AIC.

Conclusione

In questo tutorial, abbiamo mostrato come implementare modelli di regressione lineare semplici e multipli con Python e i diversi metodi di valutazione di questi modelli e il loro errore.

Quando si lavora con i propri set di dati, è possibile scegliere di utilizzare uno di questi metodi per valutare i modelli di regressione e l'errore. Tuttavia, potrebbe essere nel tuo interesse utilizzare un numero di questi e vedere come i loro risultati si allineano o differiscono per decidere quale dei tuoi modelli ha la migliore rappresentazione dei tuoi dati.

Ora dovresti essere più a tuo agio con l'implementazione dei tuoi modelli di regressione lineare ed essere più consapevole delle somiglianze e delle differenze tra tutte le metriche di regressione discusse.