如何使用Seaborn Objects API绘制带置信区间的回归图?
使用Seaborn Objects API绘制带置信区间的回归线
你原来的代码里,so.Band()搭配so.Est()默认计算的是y变量在x全范围的整体置信区间,而非回归线对应的置信带,所以才会出现不符合预期的结果。要实现类似sns.regplot的效果,需要让置信带基于回归拟合的结果生成,具体修正如下:
import seaborn as sns import seaborn.objects as so df = sns.load_dataset("tips") (so.Plot(df, x="total_bill", y="tip") .add(so.Dots()) # 绘制原始散点 .add(so.Line(), so.PolyFit()) # 绘制线性回归线(默认degree=1,和regplot逻辑一致) .add(so.Band(), so.PolyFit(errorbar='ci')) # 基于回归拟合结果绘制置信带 )
关键说明:
so.PolyFit(errorbar='ci')会在拟合线性模型的同时计算95%置信区间,so.Band()基于这个结果就能画出回归线周围的置信带,和sns.regplot的效果完全匹配。- 若要调整置信度,可给
errorbar传元组,比如errorbar=('ci', 90)表示绘制90%置信区间。
内容的提问来源于stack exchange,提问作者tdy
相关产品推荐
相关产品推荐

