Seaborn regplot'ta regresyon denklemi nasıl görüntülenir?


Bir veri kümesine uygun doğrusal bir regresyon modeli çizmek için seaborn regplot işlevini kullanabilirsiniz.

Maalesef Seaborn’da regresyon denklemini satırdan çıkarmaya yönelik yerleşik bir özellik yoktur, ancak regresyon katsayılarını hızlı bir şekilde bulmak için scipy.stats.linregress işlevini kullanabilirsiniz:

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

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Seaborn Regplot’ta regresyon denklemini gösterin

Çeşitli öğrencilerin çalışılan saatler ve final sınav puanları hakkında bilgi içeren aşağıdaki panda DataFrame’e sahip olduğumuzu varsayalım:

 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

Diyelim ki veri noktalarını çizmek ve verilere uygun bir regresyon çizgisi eklemek istiyoruz.

Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:

 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

Sonuçtan regresyon çizgisinin aşağıdaki denkleme sahip olduğunu görebiliriz:

y = 77,4 + 1,327

Bu denklemi seaborn regplot’ta görüntülemek istiyorsak matplotlib text() fonksiyonunu kullanabiliriz:

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

Seaborn regplot denklemi

Regresyon denkleminin artık grafiğin sol üst köşesinde görüntülendiğini unutmayın.

text() fonksiyonunda regresyon denkleminin (2, 95) (x, y) koordinatlarından görüntülenmesi gerektiğini belirttiğimize dikkat edin.

Regresyon denklemini kendi çiziminizde istediğiniz yerde görüntülemek için bu koordinatları değiştirmekten çekinmeyin.

Not : Seaborn regplot işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimler Seaborn’da diğer genel görevlerin nasıl gerçekleştirileceğini açıklamaktadır:

Seaborn grafiğinin şekil boyutu nasıl ayarlanır?
Seaborn’da bir efsanenin konumu nasıl değiştirilir?
Seaborn grafiğindeki eksen etiketleri nasıl değiştirilir?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir