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:
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.