我使用statmodels回归拟合和numpy polyfit得到了两个不同的截距值。该模型是一个单变量的简单线性回归。
根据我使用的statsmodels回归:
results1 = smf.ols('np.log(NON_UND) ~ (np.log(Food_consumption))', data=Data2).fit()
在那里我收到以下结果:
coef std err t P>|t| [0.025 0.975]
--------------------------------------------------------------------------------------------
Intercept 5.4433 0.270 20.154 0.000 4.911 5.976
np.log(Food_consumption) 1.1128 0.026 42.922 0.000 1.062 1.164
当绘制数据并使用numpy polyfit添加趋势线时,我收到了不同的截距值:
x = np.array((np.log(Data2.Food_consumption)))
y = np.array((np.log(Data2.NON_UND)*100))
z = np.polyfit(x, y, 1)
array([ 1.11278898, 10.04846693])
为什么我会得到两个不同的截距值?
先谢谢你了!
1条答案
按热度按时间j1dl9f461#
这是因为您在第一次和第二次回归中使用了不同的线性模型。在第一次回归中,你对因变量和自变量都取对数,而在第二次回归中,你没有,另外,你把y乘以100。
为了获得与第二个规格中的第一个回归相同的结果,您需要确保回归模型与第一个完全相同。我建议你这样做:
第二个函数的输出应该和第一个函数的输出一样。