【问题标题】:Linear Mixed Models and time autocorrelation for Panel Data in Python StatsmodelsPython Statsmodels 中面板数据的线性混合模型和时间自相关
【发布时间】:2017-08-15 00:03:30
【问题描述】:

我正在查看一家烘焙店销售人员的轮班情况,试图了解销售人员在轮班的不同时间段内的销售额是否存在显着差异。具体来说,我正在尝试评估 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 来考虑自相关项,但这些时间序列计算通常是在只有一个时间序列的数据集上进行的。

【问题讨论】:

  • 我不完全清楚你在这里试图解释什么违反独立错误。在 TS 框架中,我们假设未来的观察与过去的观察相关cor(e_t, e_{t+1}) != 0。在 MLM 中,我们假设组内的观察(在您的情况下为 Salesperson's)是相关的 cor(e_{i,j}, e{i,k}) != 0) 其中j != k。或者您是否也在尝试控制班次中的相关错误?你能改写/澄清你的问题吗?
  • 感谢您帮助我澄清这个问题 - 我想担心的是,各个小时之间可能存在相关性(例如,如果前一小时的高销售额影响当前小时)。 ..
  • 在我的脑海中,我不确定这是否适合 MLM 框架...你为什么不测试它的严重程度?

标签: python time-series statsmodels mixed-models panel-data


【解决方案1】:

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 中(尽管某处可能存在草稿版本)。

【讨论】:

  • 这绝对有帮助。尽管模型参数相对于 MixedLM 估计值变化不大,但 QQ 图的偏差似乎要小得多。
  • 线性函数的参数估计通常对 OLS 或 GLM(线性指数族)中错误指定的方差和相关性具有鲁棒性。只有标准误差和它是否是一个有效的估计量会受到影响。 (GEE 中的集群稳健标准误差对任何类型的集群内相关性都是稳健的。)
猜你喜欢
  • 2018-10-22
  • 1970-01-01
  • 2018-05-10
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 2018-07-06
相关资源
最近更新 更多