Data Science – případ lineární regrese


Případ: Použijte Duration + Average_Pulse k predikci Calorie_Burnage

Vytvořte tabulku lineární regrese s vysvětlujícími proměnnými Average_Pulse a Duration:

Příklad

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())

Vysvětlený příklad:

  • Importujte knihovnu statsmodels.formula.api jako smf. Statsmodels je statistická knihovna v Pythonu.
  • Použijte sadu full_health_data.
  • Vytvořte model založený na obyčejných nejmenších čtvercích pomocí smf.ols(). Všimněte si, že vysvětlující proměnná musí být zapsána jako první v závorce. Použijte sadu dat full_health_data.
  • Zavoláním .fit() získáte výsledky proměnné. To obsahuje mnoho informací o regresním modelu.
  • Zavolejte souhrn() pro získání tabulky s výsledky lineární regrese.

Výstup:

Případ tabulky lineární regrese

Lineární regresní funkce může být přepsána matematicky jako:

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

Zaokrouhleno na dvě desetinná místa:

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


Definujte funkci lineární regrese v Pythonu

Definujte lineární regresní funkci v Pythonu pro provádění předpovědí.

Co je Calorie_Burnage, pokud:

  • Průměrný tep je 110 a délka tréninku 60 minut?
  • Průměrný tep je 140 a délka tréninku je 45 minut?
  • Průměrný tep je 175 a délka tréninku 20 minut?

Příklad

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))

Odpovědi:

  • Průměrný tep je 110 a délka tréninku je 60 minut = 365 kalorií
  • Průměrný tep je 140 a délka tréninku je 45 minut = 372 kalorií
  • Průměrný tep je 175 a délka tréninku je 20 minut = 337 kalorií

Přístup ke koeficientům

Podívejte se na koeficienty:

  • Calorie_Burnage se zvýší o 3,17, pokud se Average_Pulse zvýší o jednu.
  • Calorie_Burnage se zvýší o 5,84, pokud se Duration zvýší o jednu.

Přístup k hodnotě P

Podívejte se na P-hodnotu pro každý koeficient.

  • P-hodnota je 0,00 pro průměrný_pulz, trvání a zachycení.
  • P-hodnota je statisticky významná pro všechny proměnné, protože je menší než 0,05.

Zde tedy můžeme dojít k závěru, že Average_Pulse a Duration mají vztah s Calorie_Burnage.


Upravený R-Squared

Pokud máme více než jednu vysvětlující proměnnou, nastává problém s R-squared.

R-squared se téměř vždy zvýší, pokud přidáme více proměnných, a nikdy se nesníží.

Je to proto, že přidáváme více datových bodů kolem lineární regresní funkce.

Pokud přidáme náhodné proměnné, které neovlivní Calorie_Burnage, riskujeme, že mylně dojdeme k závěru, že lineární regresní funkce je vhodná. Upravený R-squared upravuje tento problém.

Je proto lepší podívat se na upravenou R-squared hodnotu, pokud máme více než jednu vysvětlující proměnnou.

Upravená R-squared je 0,814.

Hodnota R-Squared je vždy mezi 0 až 1 (0 % až 100 %).

  • Vysoká hodnota R-squared znamená, že mnoho datových bodů je blízko k přímce funkce lineární regrese.
  • Nízká hodnota R-squared znamená, že přímka funkce lineární regrese dobře nesedí s daty.

Závěr: Model dobře odpovídá datovému bodu!

Gratulujeme! Nyní jste dokončili poslední modul knihovny vědy o datech.