Ilmu Data - Kasus Regresi Linier


Kasus: Gunakan Duration + Average_Pulse untuk Memprediksi Kalori_Pembakaran

Buat Tabel Regresi Linier dengan Average_Pulse dan Duration sebagai Variabel Penjelas:

Contoh

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

Contoh Dijelaskan:

  • Impor perpustakaan statsmodels.formula.api sebagai smf. Statsmodels adalah perpustakaan statistik dengan Python.
  • Gunakan set full_health_data.
  • Buat model berdasarkan Ordinary Least Squares dengan smf.ols(). Perhatikan bahwa variabel penjelas harus ditulis terlebih dahulu dalam tanda kurung. Gunakan kumpulan data full_health_data.
  • Dengan memanggil .fit(), Anda mendapatkan hasil variabel. Ini menyimpan banyak informasi tentang model regresi.
  • Panggil ringkasan() untuk mendapatkan tabel dengan hasil regresi linier.

Keluaran:

Kasus Tabel Regresi Linier

Fungsi regresi linier dapat ditulis ulang secara matematis sebagai:

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

Dibulatkan menjadi dua desimal:

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


Definisikan Fungsi Regresi Linier dengan Python

Tentukan fungsi regresi linier dengan Python untuk melakukan prediksi.

Apa itu Kalori_Pembakaran jika:

  • Denyut nadi rata-rata adalah 110 dan durasi sesi latihan adalah 60 menit?
  • Denyut nadi rata-rata adalah 140 dan durasi sesi pelatihan adalah 45 menit?
  • Denyut nadi rata-rata adalah 175 dan durasi sesi latihan adalah 20 menit?

Contoh

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

Jawaban:

  • Denyut nadi rata-rata adalah 110 dan durasi sesi pelatihan adalah 60 menit = 365 Kalori
  • Denyut nadi rata-rata adalah 140 dan durasi sesi pelatihan adalah 45 menit = 372 Kalori
  • Denyut nadi rata-rata adalah 175 dan durasi sesi pelatihan adalah 20 menit = 337 Kalori

Akses Koefisien

Perhatikan koefisiennya:

  • Calorie_Burnage meningkat dengan 3,17 jika Average_Pulse meningkat satu.
  • Kalori_Pembakaran meningkat dengan 5,84 jika Durasi meningkat satu.

Akses Nilai-P

Lihatlah nilai-P untuk setiap koefisien.

  • Nilai-P adalah 0,00 untuk Average_Pulse, Duration dan Intercept.
  • Nilai P secara statistik signifikan untuk semua variabel, karena kurang dari 0,05.

Jadi disini kita dapat menyimpulkan bahwa Average_Pulse dan Duration memiliki hubungan dengan Calorie_Burnage.


Menyesuaikan R-Squared

Ada masalah dengan R-kuadrat jika kita memiliki lebih dari satu variabel penjelas.

R-kuadrat akan hampir selalu meningkat jika kita menambahkan lebih banyak variabel, dan tidak akan pernah berkurang.

Ini karena kami menambahkan lebih banyak titik data di sekitar fungsi regresi linier.

Jika kita menambahkan variabel acak yang tidak mempengaruhi Kalori_Pembakaran, kita berisiko salah menyimpulkan bahwa fungsi regresi linier cocok. Menyesuaikan R-kuadrat menyesuaikan untuk masalah ini.

Oleh karena itu lebih baik untuk melihat nilai R-kuadrat yang disesuaikan jika kita memiliki lebih dari satu variabel penjelas.

R-kuadrat yang Disesuaikan adalah 0,814.

Nilai R-Squared selalu antara 0 sampai 1 (0% sampai 100%).

  • Nilai R-Squared yang tinggi berarti banyak titik data yang dekat dengan garis fungsi regresi linier.
  • Nilai R-Squared yang rendah berarti garis fungsi regresi linier tidak sesuai dengan data dengan baik.

Kesimpulan: Model cocok dengan titik data dengan baik!

Selamat! Anda sekarang telah menyelesaikan modul terakhir dari perpustakaan ilmu data.