Seaborn - Mối quan hệ tuyến tính
Hầu hết, chúng tôi sử dụng bộ dữ liệu có chứa nhiều biến định lượng và mục tiêu của phân tích thường là liên hệ các biến đó với nhau. Điều này có thể được thực hiện thông qua các đường hồi quy.
Trong khi xây dựng các mô hình hồi quy, chúng tôi thường kiểm tra multicollinearity,nơi chúng tôi phải xem mối tương quan giữa tất cả các tổ hợp của các biến liên tục và sẽ thực hiện hành động cần thiết để loại bỏ đa cộng tuyến nếu tồn tại. Trong những trường hợp như vậy, các kỹ thuật sau đây sẽ hữu ích.
Các chức năng để vẽ mô hình hồi quy tuyến tính
Có hai chức năng chính trong Seaborn để hình dung mối quan hệ tuyến tính được xác định thông qua hồi quy. Các chức năng này làregplot() và lmplot().
regplot vs lmplot
regplot | lmplot |
---|---|
chấp nhận các biến x và y ở nhiều định dạng khác nhau bao gồm mảng numpy đơn giản, đối tượng chuỗi gấu trúc hoặc dưới dạng tham chiếu đến các biến trong DataFrame gấu trúc | có dữ liệu là tham số bắt buộc và các biến x và y phải được chỉ định dưới dạng chuỗi. Định dạng dữ liệu này được gọi là dữ liệu "dạng dài" |
Bây giờ chúng ta hãy vẽ các âm mưu.
Thí dụ
Vẽ regplot và sau đó lmplot với cùng một dữ liệu trong ví dụ này
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.regplot(x = "total_bill", y = "tip", data = df)
sb.lmplot(x = "total_bill", y = "tip", data = df)
plt.show()
Đầu ra
Bạn có thể thấy sự khác biệt về kích thước giữa hai mảnh đất.
Chúng ta cũng có thể điều chỉnh hồi quy tuyến tính khi một trong các biến nhận các giá trị rời rạc
Thí dụ
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.lmplot(x = "size", y = "tip", data = df)
plt.show()
Đầu ra
Phù hợp với các loại mô hình khác nhau
Mô hình hồi quy tuyến tính đơn giản được sử dụng ở trên rất đơn giản để phù hợp, nhưng trong hầu hết các trường hợp, dữ liệu là phi tuyến tính và các phương pháp trên không thể tổng quát hóa đường hồi quy.
Hãy để chúng tôi sử dụng tập dữ liệu của Anscombe với các biểu đồ hồi quy -
Thí dụ
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x="x", y="y", data=df.query("dataset == 'I'"))
plt.show()
Trong trường hợp này, dữ liệu phù hợp với mô hình hồi quy tuyến tính với ít phương sai hơn.
Chúng ta hãy xem một ví dụ khác trong đó dữ liệu có độ lệch cao cho thấy dòng phù hợp nhất là không tốt.
Thí dụ
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"))
plt.show()
Đầu ra
Biểu đồ cho thấy độ lệch cao của các điểm dữ liệu từ đường hồi quy. Thứ tự cao hơn, phi tuyến tính như vậy có thể được hình dung bằng cách sử dụnglmplot() và regplot(). Mô hình này có thể phù hợp với mô hình hồi quy đa thức để khám phá các loại xu hướng phi tuyến tính đơn giản trong tập dữ liệu -
Thí dụ
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"),order = 2)
plt.show()