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