Analiza danych — przypadek regresji liniowej
Przypadek: Użyj czasu trwania + średniego impulsu, aby przewidzieć spalone kalorie
Utwórz tabelę regresji liniowej z wartością Average_Pulse i Duration jako zmiennymi objaśniającymi:
Przykład
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())
Przykład wyjaśniony:
- Zaimportuj bibliotekę statsmodels.formula.api jako smf. Statsmodels to biblioteka statystyczna w Pythonie.
- Użyj zestawu full_health_data.
- Utwórz model oparty na zwykłych najmniejszych kwadratach za pomocą smf.ols(). Zauważ, że zmienna objaśniająca musi być najpierw zapisana w nawiasie. Użyj zestawu danych full_health_data.
- Wywołując .fit(), otrzymujesz zmienne wyniki. Zawiera wiele informacji o modelu regresji.
- Wywołaj podsumowanie(), aby uzyskać tabelę z wynikami regresji liniowej.
Wyjście:
Funkcję regresji liniowej można przepisać matematycznie jako:
Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194
Zaokrąglone do dwóch miejsc po przecinku:
Calorie_Burnage = Average_Pulse * 3.17 +
Duration * 5.84 - 334.52
Zdefiniuj funkcję regresji liniowej w Pythonie
Zdefiniuj funkcję regresji liniowej w Pythonie do wykonywania prognoz.
Co to jest spalanie kalorii, jeśli:
- Średni puls to 110, a czas trwania treningu to 60 minut?
- Średni puls to 140, a czas trwania treningu to 45 minut?
- Średni puls to 175, a czas trwania treningu to 20 minut?
Przykład
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))
Odpowiedzi:
- Średni puls to 110 a czas trwania treningu to 60 minut = 365 kalorii
- Średni puls to 140, a czas trwania treningu to 45 minut = 372 kalorie
- Średni puls to 175 a czas trwania treningu to 20 minut = 337 kalorii
Uzyskaj dostęp do współczynników
Spójrz na współczynniki:
- Calorie_Burnage wzrasta o 3,17, jeśli Average_Pulse wzrasta o jeden.
- Calorie_Burnage wzrasta o 5,84, jeśli czas trwania zwiększa się o jeden.
Uzyskaj dostęp do wartości P
Spójrz na wartość P dla każdego współczynnika.
- Wartość P wynosi 0,00 dla wartości średniej_impulsu, czasu trwania i przecięcia.
- Wartość P jest statystycznie istotna dla wszystkich zmiennych, ponieważ wynosi mniej niż 0,05.
Więc tutaj możemy stwierdzić, że Average_Pulse i Duration mają związek z Calorie_Burnage.
Skorygowany R-kwadrat
Istnieje problem z R-kwadrat, jeśli mamy więcej niż jedną zmienną objaśniającą.
R-kwadrat prawie zawsze wzrośnie, jeśli dodamy więcej zmiennych i nigdy się nie zmniejszy.
Dzieje się tak, ponieważ dodajemy więcej punktów danych wokół funkcji regresji liniowej.
Jeśli dodamy zmienne losowe, które nie wpływają na Calorie_Burnage, ryzykujemy błędne stwierdzenie, że funkcja regresji liniowej jest dobrze dopasowana. Skorygowane R-kwadrat dostosowuje się do tego problemu.
Dlatego lepiej jest spojrzeć na skorygowaną wartość R-kwadrat, jeśli mamy więcej niż jedną zmienną objaśniającą.
Skorygowany R-kwadrat wynosi 0,814.
Wartość R-Squared wynosi zawsze od 0 do 1 (0% do 100%).
- Wysoka wartość R-kwadrat oznacza, że wiele punktów danych znajduje się w pobliżu linii funkcji regresji liniowej.
- Niska wartość R-kwadrat oznacza, że linia funkcji regresji liniowej nie pasuje dobrze do danych.
Wniosek: model dobrze pasuje do punktu danych!
Gratulacje! Właśnie ukończyłeś ostatni moduł biblioteki nauki o danych.