Seaborn - 線性關係



大多數情況下,我們使用包含多個定量變數的資料集,並且分析的目標通常是將這些變數相互關聯。這可以透過迴歸線來完成。

在構建迴歸模型時,我們經常檢查多重共線性,我們需要檢視所有連續變數組合之間的相關性,並在存在多重共線性時採取必要的措施將其消除。在這種情況下,以下技術會有所幫助。

繪製線性迴歸模型的函式

Seaborn 中有兩個主要的函式用於視覺化透過迴歸確定的線性關係。這些函式是regplot()lmplot()

regplot 與 lmplot

regplot lmplot
接受以各種格式表示的 x 和 y 變數,包括簡單的 NumPy 陣列、Pandas Series 物件或 Pandas DataFrame 中變數的引用。 將資料作為必需引數,並且必須將 x 和 y 變數指定為字串。此資料格式稱為“長格式”資料。

現在讓我們繪製圖形。

示例

在此示例中,使用相同的資料繪製 regplot 和 lmplot 圖。

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

輸出

您可以看到兩個圖之間的大小差異。

Zoomed and Magnifier

當其中一個變數取離散值時,我們也可以擬合線性迴歸。

示例

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

輸出

Rugged

擬合不同型別的模型

上面使用的簡單線性迴歸模型非常易於擬合,但在大多數情況下,資料是非線性的,並且上述方法無法概括迴歸線。

讓我們使用 Anscombe 的資料集以及迴歸圖 -

示例

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

在這種情況下,資料非常適合線性迴歸模型,方差較小。

讓我們再看一個數據偏差較大的示例,這表明最佳擬合線效果不佳。

示例

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

輸出

Half

該圖顯示了資料點與迴歸線的較大偏差。可以使用lmplot()regplot()視覺化此類非線性、高階關係。這些可以擬合多項式迴歸模型來探索資料集中簡單的非線性趨勢 -

示例

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

輸出

parabola
廣告

© . All rights reserved.