Seaborn线性关系


大多数情况下,我们使用包含多个定量变量的数据集,而分析的目标通常是将这些变量相互关联。这可以通过回归线来完成。

在构建回归模型时,我们经常检查 多重共线性, 我们必须看到连续变量的所有组合之间的相关性,并且如果存在,将采取必要的行动来消除多重共线性。在这种情况下,以下技术会有所帮助。

绘制线性回归模型的函数

Seaborn中有两个主要功能可视化通过回归确定的线性关系。这些函数是 regplot()lmplot()

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

输出

您可以看到两个图之间的大小差异。

放大和放大镜

当其中一个变量采用离散值时,我们也可以拟合线性回归

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

输出

崎岖

适合不同种类的模型

上面使用的简单线性回归模型非常容易拟合,但在大多数情况下,数据是非线性的,并且上述方法不能概括回归线。

让我们使用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()

虚线图

在这种情况下,数据非常适合具有较小方差的线性回归模型。

让我们看另一个例子,其中数据偏差很大,表明最佳拟合线不好。

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

输出

半

该图显示了数据点与回归线的高偏差。这种非线性,更高阶可以使用 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()

输出

抛物线