大多数情况下,我们使用包含多个定量变量的数据集,分析的目标通常是将这些变量相互关联.这可以通过回归线来完成.
在构建回归模型时,我们经常检查多重共线性,我们必须看到所有组合之间的相关性连续变量,并将采取必要的行动,以消除多重共线性(如果存在).在这种情况下,以下技术会有所帮助.
绘制线性回归模型的函数
Seaborn中有两个主要功能可视化确定的线性关系通过回归.这些函数是 regplot()和 lmplot().
regplot vs lmplot
regplot | lmplot |
---|---|
接受各种格式的x和y变量,包括简单的numpy数组,pandas系列对象,或作为对pandas中的变量的引用,DataFrame | 将数据作为必需参数,x和y变量必须指定为字符串.这种数据格式称为"长格式"数据 |
现在让我们绘制这些图.
示例
绘制regplot,然后在此示例中使用相同的数据进行lmplot
import pandas as pdimport seaborn as sbfrom matplotlib import pyplot as pltdf = 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 pdimport seaborn as sbfrom matplotlib import pyplot as pltdf = sb.load_dataset('tips')sb.lmplot(x = "size", y = "tip", data = df)plt.show()
输出
适合不同种类的模型
上面使用的简单线性回归模型很容易拟合,但在大多数情况下,数据是非线性的,上述方法不能推广回归线.
让我们使用Anscombe的数据集和回归图 :
示例
import pandas as pdimport seaborn as sbfrom matplotlib import pyplot as pltdf = sb.load_dataset('anscombe')sb.lmplot(x="x", y="y", data=df.query("dataset == 'I'"))plt.show()
在这种情况下,数据非常适合线性回归模型,方差较小.
让我们看看另一个例子数据偏差很大,显示最佳拟合线不好.
示例
import pandas as pdimport seaborn as sbfrom matplotlib import pyplot as pltdf = sb.load_dataset('anscombe')sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"))plt.show()
输出
该图显示数据点与回归的高偏差线.这种非线性,更高阶可以使用 lmplot()和 regplot()来显示.这些可以拟合多项式回归模型来探索简单的非线性趋势. dataset :
示例
import pandas as pdimport seaborn as sbfrom matplotlib import pyplot as pltdf = sb.load_dataset('anscombe')sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"),order = 2)plt.show()