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:

Przypadek tabeli regresji liniowej

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.