วิธีแสดงสมการถดถอยใน seaborn regplot


คุณสามารถใช้ฟังก์ชัน regplot ที่เกิดในทะเลเพื่อพล็อตโมเดลการถดถอยเชิงเส้นให้พอดีกับชุดข้อมูล

น่าเสียดายที่ Seaborn ไม่มีฟีเจอร์ในตัวเพื่อแยกสมการการถดถอยออกจากเส้น แต่คุณสามารถใช้ฟังก์ชัน scipy.stats.linregress เพื่อค้นหาค่าสัมประสิทธิ์การถดถอยได้อย่างรวดเร็ว:

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

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: แสดงสมการการถดถอยใน Seaborn Regplot

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับชั่วโมงเรียนและคะแนนสอบปลายภาคของนักเรียนหลายคน:

 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

สมมติว่าเราต้องการพล็อตจุดข้อมูลและเพิ่มเส้นการถดถอยแบบพอดีให้กับข้อมูล

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำสิ่งนี้:

 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

จากผลลัพธ์เราจะเห็นว่าเส้นถดถอยมีสมการดังนี้

y = 77.4 + 1.327

หากเราต้องการแสดงสมการนี้บน regplot ที่เกิดในทะเล เราสามารถใช้ฟังก์ชัน 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 ') 

สมการ Regplot ที่เกิดในทะเล

โปรดทราบว่าขณะนี้สมการการถดถอยจะแสดงที่มุมซ้ายบนของโครงเรื่อง

โปรดทราบว่าในฟังก์ชัน text() เราระบุว่าควรแสดงสมการถดถอยจากพิกัด (x, y) ของ (2, 95)

คุณสามารถแก้ไขพิกัดเหล่านี้เพื่อแสดงสมการถดถอยได้ทุกที่ที่คุณต้องการในพล็อตของคุณเอง

หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน regplot ในทะเล ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน Seaborn:

วิธีปรับขนาดฟิกเกอร์ของพล็อตเรื่อง Seaborn
วิธีเปลี่ยนตำแหน่งของตำนานใน Seaborn
วิธีเปลี่ยนป้ายกำกับแกนบนพล็อต Seaborn

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *