📅  最后修改于: 2020-11-06 06:46:43             🧑  作者: Mango
在大多数情况下,我们使用包含多个定量变量的数据集,而分析的目的通常是将这些变量彼此关联。这可以通过回归线来完成。
在建立回归模型时,我们经常检查多重共线性,在这里我们必须看到连续变量的所有组合之间的相关性,并且将采取必要的措施消除多重共线性(如果存在)。在这种情况下,以下技术会有所帮助。
Seaborn中有两个主要功能来可视化通过回归确定的线性关系。这些函数是regplot()和lmplot() 。
regplot | lmplot |
---|---|
accepts the x and y variables in a variety of formats including simple numpy arrays, pandas Series objects, or as references to variables in a pandas DataFrame | has data as a required parameter and the x and y variables must be specified as strings. This data format is called “long-form” data |
现在让我们绘制图。
在此示例中,先用相同的数据绘制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()