Data Science - Caso di regressione lineare


Caso: usa Duration + Average_Pulse per prevedere il consumo di calorie

Creare una tabella di regressione lineare con Average_Pulse e Duration come variabili esplicative:

Esempio

import pandas as pd
import statsmodels.formula.api as smf

full_health_data = pd.read_csv("data.csv", header=0, sep=",")

model = smf.ols('Calorie_Burnage ~ Average_Pulse + Duration', data = full_health_data)
results = model.fit()
print(results.summary())

Esempio spiegato:

  • Importa la libreria statsmodels.formula.api come smf. Statsmodels è una libreria statistica in Python.
  • Usa il set di dati_stato_completo.
  • Crea un modello basato sui minimi quadrati ordinari con smf.ols(). Si noti che la variabile esplicativa deve essere scritta per prima tra parentesi. Usa il set di dati full_health_data.
  • Chiamando .fit(), ottieni i risultati della variabile. Questo contiene molte informazioni sul modello di regressione.
  • Chiamare summary() per ottenere la tabella con i risultati della regressione lineare.

Produzione:

Caso della tabella di regressione lineare

La funzione di regressione lineare può essere riscritta matematicamente come:

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

Arrotondato a due decimali:

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


Definire la funzione di regressione lineare in Python

Definisci la funzione di regressione lineare in Python per eseguire previsioni.

Che cos'è Calorie_Burnage se:

  • Il polso medio è 110 e la durata della sessione di allenamento è di 60 minuti?
  • Il polso medio è 140 e la durata della sessione di allenamento è di 45 minuti?
  • Il polso medio è 175 e la durata della sessione di allenamento è di 20 minuti?

Esempio

def Predict_Calorie_Burnage(Average_Pulse, Duration):
 return(3.1695*Average_Pulse + 5.8434 * Duration - 334.5194)

print(Predict_Calorie_Burnage(110,60))
print(Predict_Calorie_Burnage(140,45))
print(Predict_Calorie_Burnage(175,20))

Le risposte:

  • L'impulso medio è 110 e la durata della sessione di allenamento è 60 minuti = 365 calorie
  • L'impulso medio è 140 e la durata della sessione di allenamento è 45 minuti = 372 calorie
  • Il polso medio è 175 e la durata della sessione di allenamento è 20 minuti = 337 calorie

Accedi ai Coefficienti

Guarda i coefficienti:

  • Calorie_Burage aumenta di 3,17 se Average_Pulse aumenta di uno.
  • Calorie_Burage aumenta di 5,84 se Duration aumenta di uno.

Accedi al valore P

Guarda il valore P per ciascun coefficiente.

  • Il valore P è 0,00 per Average_Pulse, Duration e Intercept.
  • Il valore P è statisticamente significativo per tutte le variabili, in quanto è inferiore a 0,05.

Quindi qui possiamo concludere che Average_Pulse e Duration hanno una relazione con Calorie_Burage.


R-Squadrato rettificato

C'è un problema con R-quadrato se abbiamo più di una variabile esplicativa.

R-quadrato aumenterà quasi sempre se aggiungiamo più variabili e non diminuirà mai.

Questo perché stiamo aggiungendo più punti dati attorno alla funzione di regressione lineare.

Se aggiungiamo variabili casuali che non influiscono su Calorie_Burage, rischiamo di concludere erroneamente che la funzione di regressione lineare è adatta. R-quadrato rettificato si adatta a questo problema.

È quindi meglio guardare al valore R-quadrato corretto se abbiamo più di una variabile esplicativa.

L'R rettificato al quadrato è 0,814.

Il valore di R-Squared è sempre compreso tra 0 e 1 (da 0% a 100%).

  • Un valore R-Squared elevato significa che molti punti dati sono vicini alla linea della funzione di regressione lineare.
  • Un valore R-Squared basso significa che la linea della funzione di regressione lineare non si adatta bene ai dati.

Conclusione: il modello si adatta bene al punto dati!

Congratulazioni! Ora hai terminato il modulo finale della libreria di scienza dei dati.