什么能解释statsmodel OLS回归和seaborn lmplot之间的截距差异?
我的统计模型代码:
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()
我的Seamping Lmplot代码:
sns.lmplot(x='Xvalue', y='Yvalue', data=mmm_ma)
我的statsmodel截距是28.9775,而我的seampt的截距是45.5。
@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,)
答案 0 :(得分:1)
这很奇怪。也许您可以提供更多详细信息,我们将为您提供更好的帮助。我试图重现该问题,但两种方法都得到了相同的拦截。
代码:
import matplotlib.pyplot as plt
import statsmodels.regression.linear_model as sm
import seaborn as sns
import pandas as pd
import numpy as np
np.random.seed(0)
mmm_ma = {'Xvalue': range(0, 40), 'Yvalue': np.random.randint(low=0, high=40, size=40)}
mmm_ma = pd.DataFrame(mmm_ma)
X = mmm_ma[['Xvalue']]
Y = mmm_ma['Yvalue']
model2 = sm.OLS(Y,sm.add_constant(X), data=mmm_ma)
model_fit = model2.fit()
print(model_fit.summary())
sns.lmplot(x='Xvalue', y='Yvalue', data=mmm_ma)
plt.show()
以下是输出:
OLS Regression Results
==============================================================================
Dep. Variable: Yvalue R-squared: 0.005
Model: OLS Adj. R-squared: -0.021
Method: Least Squares F-statistic: 0.2071
Date: Wed, 18 Jul 2018 Prob (F-statistic): 0.652
Time: 00:51:04 Log-Likelihood: -155.75
No. Observations: 40 AIC: 315.5
Df Residuals: 38 BIC: 318.9
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 17.2183 3.783 4.551 0.000 9.559 24.877
Xvalue 0.0760 0.167 0.455 0.652 -0.262 0.414
==============================================================================
Omnibus: 3.327 Durbin-Watson: 1.618
Prob(Omnibus): 0.189 Jarque-Bera (JB): 1.738
Skew: 0.197 Prob(JB): 0.419
Kurtosis: 2.058 Cond. No. 44.5
==============================================================================