【发布时间】:2018-12-25 22:58:39
【问题描述】:
什么可以解释 statsmodel OLS 回归和 seaborn lmplot 之间截距的差异?
我的 statsmodel 代码:
X = mmm_ma[['Xvalue']]
Y = mmm_ma['Yvalue']
model2 = sm.OLS(Y,sm.add_constant(X), data=mmm_ma)
model_fit = model2.fit()
model_fit.summary()
我的 seaborn lmplot 代码:
sns.lmplot(x='Xvalue', y='Yvalue', data=mmm_ma)
我的 statsmodel 截距是 28.9775,而我的 seaborn lmplot 截距大约是 45.5。
问题
- 拦截应该相同吗?
- 为什么可以解释为什么这些不同? (我可以更改一些代码以使其相等)
- 有没有办法实现类似于 seaborn lmplot 但使用精确回归结果来确保它们对齐的绘图?
编辑
@Massoud 感谢发布。我想我已经意识到问题所在了。我的 x 值范围在 1400 到 2600 之间,y 值范围从 40 到 70。所以使用 seaborn lmplot,它只是绘制回归图,截距基于 X 值的最低范围——截距为 46。
但是对于 statsmodel OLS,它会一直运行直到 X = 0,这就是为什么我得到 28 左右的截距。
所以我想问题是有没有办法使用 seaborn 继续趋势线一直到 x = 0。
我尝试改变轴,但它似乎没有延长线。
axes = lm.axes
axes[0,0].set_xlim(0,)
【问题讨论】:
标签: python regression linear-regression seaborn statsmodels