Python Statsmodels 中面板数据的线性混合模型和时间自相关

Linear Mixed Models and time autocorrelation for Panel Data in Python Statsmodels

我正在观察一家面包店销售人员的轮班情况,试图了解销售人员在轮班的不同时间段内的销售额是否存在显着差异。具体来说,我正在尝试评估 a) 各个轮班时间之间的趋势是否显着,以及 b) 相对于其他一些潜在解释变量的排名如何。

数据集有多个相同长度的销售员班次,按小时划分。

例如

model = sm.MixedLM.from_formula("Cookies ~ C(Hour) + CustomerArrivals + Oventemp", BakeSaleData, groups=BakeSaleData["Salesperson"])
result = model.fit()
print(result.summary())

Our Q-Q plot for the residuals:

有人在审查我的研究时告诉我,我的模型具有相当大的统计学背景,我的模型中存在大量自相关,但我不清楚如何弥补这一点。

我知道在传统的时间序列数据集中,我们可以使用 AR(1) 和 Cochrane-Orcutt 来考虑自相关项,但这些时间序列计算通常是在只有一个时间序列的数据集上进行的。

statsmodels MixedLM 不允许除随机系数或随机效应之外的残差直接相关。

您可以使用 statsmodels.GEE,这是一种单向面板数据模型,允许更大范围的相关结构,包括 AR(1)。对于高斯族,它类似于 MixedLM。但是,它使用的估计方程类似于计量经济学中精确识别的 GMM,而 GEE 默认使用聚类稳健标准误差。具有序列相关误差的假设是解释变量是外生的。

这里 https://github.com/statsmodels/statsmodels/wiki/Examples#generalized-estimating-equations-gee 是一些 GEE 笔记本。

与 Stata 类似的 Cochrane-Orcutt 或 Prais-Winston 标准计量经济学面板数据尚未包含在 statsmodels 中(尽管某处可能有草稿版本)。