Seaborn 线性关系

Seaborn 线性关系

大多数情况下,我们使用包含多个定量变量的数据集,分析的目标通常是将这些变量与彼此关联起来。这可以通过回归线来实现。

在构建回归模型时,我们经常检查 多重共线性 ,需要查看连续变量之间的相关性,并采取必要的措施来消除多重共线性(如果存在)。在这种情况下,以下技术可以帮助解决问题。

绘制线性回归模型的函数

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

regplot与lmplot的区别

regplot lmplot
接受多种格式的x和y变量,包括简单的numpy数组,pandas系列对象,或者作为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()

输出

您可以看到两个图之间的尺寸差异。

Seaborn 线性关系

当其中一个变量取离散值时,我们也可以进行线性回归的拟合。

示例

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

输出

Seaborn 线性关系

适应不同类型的模型

上面使用的简单线性回归模型非常简单,但在大多数情况下,数据是非线性的,上述方法无法推广回归线。

让我们使用安斯库姆的数据集来进行回归图示例:

示例

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

Seaborn 线性关系

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

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

示例

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

输出

Seaborn 线性关系

图表展示了数据点与回归线的高偏差。可以使用 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()

输出

Seaborn 线性关系

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程