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

Persamaan regplot Seaborn

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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *