In questo tutorial, vedrai come eseguire la regressione lineare multipla in Python usando sia sklearn che statsmodels.,s coperto:
- la Revisione di esempio per essere utilizzato in questo tutorial
- Verifica di Linearità
- Eseguire la regressione lineare multipla in Python
- Aggiunta di un tkinter Interfaccia Utente Grafica (GUI) per raccogliere l’input da parte degli utenti, e quindi visualizzare i risultati della stima
alla fine di questo tutorial, sarete in grado di creare la seguente interfaccia in Python:
Esempio di Regressione Lineare Multipla in Python
Nell’esempio riportato di seguito, useremo di regressione lineare multipla per predire l’indice azionario, il prezzo (io.,e., la variabile dipendente) di un’economia fittizia utilizzando 2 variabili indipendenti / input:
- Tasso di interesse
- Tasso di disoccupazione
Si prega di notare che si dovrà convalidare che diverse ipotesi sono soddisfatte prima di applicare modelli di regressione lineare. In particolare, è necessario assicurarsi che esista una relazione lineare tra la variabile dipendente e le variabili indipendenti (maggiori informazioni nella sezione controllo della linearità).,
vediamo ora il salto nel set di dati che useremo:
Per iniziare, è possibile acquisire il sopra del set di dati in Python utilizzando Panda DataFrame (per i più grandi set di dati, si può prendere in considerazione per importare i tuoi dati):
Controllo di Linearità
Prima di eseguire un modello di regressione lineare, si consiglia di verificare che alcune ipotesi sono soddisfatte.
Come notato in precedenza, è possibile verificare che esista una relazione lineare tra la variabile dipendente e la variabile / e indipendente.,
Nel nostro esempio, potresti voler verificare che esista una relazione lineare tra:
Per eseguire un rapido controllo di linearità, puoi usare i diagrammi a dispersione (utilizzando la libreria matplotlib). Ad esempio, puoi utilizzare il codice seguente per tracciare la relazione tra Stock_Index_Price e Interest_Rate:
Noterai che esiste effettivamente una relazione lineare tra Stock_Index_Price e Interest_Rate.,ates salire, l’indice di borsa prezzo anche il sale:
E per il secondo caso, è possibile utilizzare questo codice per tracciare il rapporto tra il Stock_Index_Price e il Unemployment_Rate:
Come si può vedere, una relazione lineare esiste anche tra Stock_Index_Price e il Unemployment_Rate – quando il tasso di disoccupazione salire, l’indice azionario di prezzo va giù (qui abbiamo ancora un rapporto lineare, ma con una pendenza negativa):
Avanti, stiamo andando a eseguire l’effettiva regressione lineare multipla in Python.,
Eseguendo la regressione lineare multipla
Una volta aggiunti i dati in Python, è possibile utilizzare sia sklearn che statsmodels per ottenere i risultati di regressione.
Entrambi i metodi funzionerebbero, ma esaminiamo entrambi i metodi a scopo illustrativo.
Puoi quindi copiare il codice sottostante in Python:
Una volta eseguito il codice in Python, osserverai tre parti:
(1) La prima parte mostra l’output generato da sklearn:
Questo output include l’intercetta e i coefficienti., È possibile utilizzare queste informazioni per costruire la regressione lineare multipla equazione come segue:
Stock_Index_Price = (Intercetta) + (Interest_Rate coeff.)*X1 + (Unemployment_Rate coeff.)*X2
E una volta che si collega l’numeri:
Stock_Index_Price = (1798.4040) + (345.5401)*X1 + (-250.1466)*X2
(2). La seconda parte mostra l’output previsto, utilizzando sklearn:
Immaginate che si desidera stimare l’indice di borsa prezzo dopo aver raccolto i seguenti dati:
- Tasso di Interesse = 2.75 (es.,, X1= 2.75)
- Tasso di Disoccupazione = 5.3 (cioè, X2= 5.3)
Se la spina di dati nell’equazione di regressione, si otterrà lo stesso risultato previsto, come indicato nella seconda parte:
Stock_Index_Price = (1798.4040) + (345.5401)*(2.75) + (-250.1466)*(5.3) = 1422.86
(3) La terza parte mostra un prospetto completo con statistiche info generato da statsmodels.,
Queste informazioni possono fornire ulteriori informazioni sul modello utilizzato (come l’adattamento del modello, gli errori standard, ecc.):
Si noti che i coefficienti catturati in questa tabella (evidenziati in rosso) corrispondono ai coefficienti generati da sklearn.
Questo è un buon segno! abbiamo ottenuto risultati coerenti applicando sia sklearn che statsmodels.
Successivamente, vedrai come creare una GUI in Python per raccogliere input dagli utenti e quindi visualizzare i risultati della previsione.,
GUI utilizzato per la regressione lineare multipla in Python
Questo è dove inizia il vero divertimento!
Perché non creare un’interfaccia utente grafica (GUI) che consenta agli utenti di inserire le variabili indipendenti per ottenere il risultato previsto?
È possibile che alcuni utenti non sappiano molto sull’immissione dei dati nel codice Python stesso, quindi ha senso creare loro una semplice interfaccia in cui possano gestire i dati in modo semplificato.,
È anche possibile creare un file batch per avviare il programma Python, e quindi gli utenti dovranno solo fare doppio clic sul file batch per avviare la GUI.
Ecco il codice Python completo per la tua GUI di regressione definitiva:
Una volta eseguito il codice, vedrai questa GUI, che include l’output generato da sklearn e i diagrammi scatter:
Ricorda che prima abbiamo fatto una previsione usando i seguenti valori:
- Interest Rate = 2.75
- > Tasso di disoccupazione = 5.,3
Digitare tali valori nelle caselle di input, quindi fare clic sul pulsante ‘Prevedi prezzo indice azionario’:
Ora vedrai il risultato previsto di 1422.86, che corrisponde al valore che hai visto prima.
Potresti anche voler controllare il seguente tutorial per saperne di più sull’incorporamento di grafici su una GUI di tkinter.
Conclusione
La regressione lineare viene spesso utilizzata nell’apprendimento automatico. Hai visto alcuni esempi di come eseguire la regressione lineare multipla in Python usando sia sklearn che statsmodels.,
Prima di applicare modelli di regressione lineare, assicurati di verificare che esista una relazione lineare tra la variabile dipendente (cioè, ciò che stai cercando di prevedere) e la variabile/e indipendente/e (cioè, la variabile / e di input).