我正在进行两次回归,我认为这两次回归会产生相同的结果,我想知道是否有人能解释为什么它们不同.一种是与statmodels OLS一起使用,另一种是与线性模型PanelOLS一起使用.
下面显示了最低的工作示例.系数相似,但绝对不相同(statmodels为0.1167和0.3514,线性模型为0.1101和0.3100).R平方也有很大不同(0.953 vs 0.767).
import statsmodels.formula.api as smf
from linearmodels import PanelOLS
from statsmodels.datasets import grunfeld
data = grunfeld.load_pandas().data
# Define formula and run statsmodels OLS regression
ols_formula = 'invest ~ value + capital + C(firm) + C(year) -1'
ols_fit = smf.ols(ols_formula,data).fit()
# Set multiindex and run PanelOLS regression
data = data.set_index(['firm','year'])
panel_fit = PanelOLS(data.invest,data[['value','capital']],entity_effects=True).fit()
# Look at results
ols_fit.summary()
panel_fit
任何见解都受到赞赏!