Cara menampilkan persamaan regresi di seaborn regplot
Anda dapat menggunakan fungsi regplot seaborn untuk memplot model regresi linier yang sesuai dengan kumpulan data.
Sayangnya, Seaborn tidak memiliki fitur bawaan untuk mengekstrak persamaan regresi dari garis, tetapi Anda dapat menggunakan fungsi scipy.stats.linregress untuk menemukan koefisien regresi dengan cepat:
import scipy import seaborn as sns #create regplot p = sns. regplot (data=df, x=df. x , y=df. y ) #calculate slope and intercept of regression equation slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (), y=p. get_lines ()[0]. get_ydata ())
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Tampilkan persamaan regresi di Seaborn Regplot
Misalkan kita memiliki pandas DataFrame berikut yang berisi informasi tentang jam belajar dan nilai ujian akhir berbagai siswa:
import pandas as pd #createDataFrame df = pd. DataFrame ({' hours ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ' score ': [77, 79, 84, 80, 81, 89, 95, 90, 83, 89]}) #view DataFrame print (df) hours score 0 1 77 1 2 79 2 3 84 3 4 80 4 5 81 5 6 89 6 7 95 7 8 90 8 9 83 9 10 89
Katakanlah kita ingin memplot titik data dan menambahkan garis regresi yang sesuai ke data.
Kita dapat menggunakan sintaks berikut untuk melakukan ini:
import scipy import seaborn as sns #create regplot p = sns. regplot (data=df, x=df. hours , y=df. score ) #calculate slope and intercept of regression equation slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (), y=p. get_lines ()[0]. get_ydata ()) #display slope and intercept of regression equation print (intercept, slope) 77.39999999999995 1.3272727272727356
Dari hasilnya terlihat bahwa garis regresi mempunyai persamaan sebagai berikut:
kamu = 77,4 + 1,327
Jika kita ingin menampilkan persamaan ini pada regplot seaborn, kita dapat menggunakan fungsi matplotlib text() :
import matplotlib. pyplot as plt import scipy import seaborn as sns #create regplot p = sns. regplot (data=df, x=df. hours , y=df. score ) #calculate slope and intercept of regression equation slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (), y=p. get_lines ()[0]. get_ydata ()) #add regression equation to plot plt. text (2, 95, ' y = ' + str(round(intercept,3)) + ' + ' + str(round(slope,3)) + ' x ')
Perhatikan bahwa persamaan regresi sekarang ditampilkan di sudut kiri atas plot.
Perhatikan bahwa dalam fungsi text() kami menetapkan bahwa persamaan regresi harus ditampilkan dari koordinat (x, y) di (2, 95).
Jangan ragu untuk memodifikasi koordinat ini untuk menampilkan persamaan regresi di mana pun Anda inginkan di plot Anda.
Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi regplot seaborn di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di Seaborn:
Cara menyesuaikan ukuran gambar plot Seaborn
Cara mengubah posisi legenda di Seaborn
Cara mengubah label sumbu pada plot Seaborn