混合模型,每个级别 1 个观察值

机器算法验证 r 回归 混合模式 lme4-nlme
2022-02-27 05:42:14

我正在glmer为一些业务数据拟合随机效应模型。目的是分析分销商的销售业绩,同时考虑区域差异。我有以下变量:

  • distcode:经销商ID,800级左右
  • region: 顶级地理 ID(北、南、东、西)
  • zone: 中级地理嵌套在里面region,总共大约 30 个级别
  • territory: 嵌套在其中的低级地理zone,大约 150 个级别

每个分销商只在一个地区经营。棘手的部分是这是汇总数据,每个分销商都有一个数据点。所以我有 800 个数据点,我正在尝试拟合(至少)800 个参数,尽管是以正则化的方式。

我已经安装了一个模型如下:

glmer(ninv ~ 1 + (1|region/zone/territory) + (1|distcode), family=poisson)

这运行没有问题,尽管它确实打印了一个注释:

随机效应的分组因子的水平数等于n,即观察数

这是明智的做法吗?我得到了所有系数的有限估计,AIC 也不是不合理的。如果我尝试使用身份链接的泊松 GLMM,AIC 会更糟,因此日志链接至少是一个很好的起点。

如果我绘制拟合值与响应的关系图,我会得到本质上是完美拟合的结果,我猜这是因为每个分销商都有一个数据点。这是合理的,还是我在做一些完全愚蠢的事情?

这是使用一个月的数据。我可以获取多个月的数据并以这种方式进行一些复制,但是我必须为每月的变化和可能的交互添加新的术语,对吗?


ETA:我再次运行上述模型,但没有family参数(所以只是高斯 LMM 而不是 GLMM)。现在lmer给了我以下错误:

(函数(fr,FL,start,REML,verbose)中的错误:随机效应的分组因子的水平数必须小于观察数

所以我猜我没有做一些明智的事情,因为改变家庭不应该有效果。但现在的问题是,为什么它首先会起作用?

2个回答

如果您将过度分散的计数数据作为响应变量,则每个观察一个级别可能非常有用。这相当于说您希望计数数据来自泊松对数正态分布,即您的泊松分布的 lambda 参数不完全由模型中的预测变量确定,并且可能性是对数正态分布的。

lme4 的开发者之一 Ben Bolker 用这个做了两个类似教程的例子。第一个是合成数据,更详细一些。你可以在这里找到一个 pdf文件他还对涉及猫头鹰的真实数据进行了探索性数据分析(此处提供 pdf 和 R 代码)。

我强烈不同意拟合混合模型的做法,在这种做法中,您具有与基于概念的观察结果相同数量的组,没有“组”,并且基于计算,因为您的模型应该有可识别的问题 - 在这种情况下至少是一个 LMM。(我只与 LMM 合作,它也可能有点偏颇。:))

计算部分:假设例如标准 LME 模型,其中yN(Xβ,ZDZT+σ2I). 假设现在您有相同数量的观察值和组(假设在“简单”聚类下,没有交叉或嵌套效应等),那么您的所有样本方差都会在D矩阵,和σ2应该为零。(我认为您已经为此说服了自己)这几乎等同于在线性模型中拥有与数据一样多的参数。你有一个过度参数化的模型。因此回归有点荒谬。

(我不明白您所说的“合理”AIC 是什么意思。AIC 应该是可计算的,因为尽管您的数据过度拟合,但您仍在“计算某些东西”。)

另一方面glmer(假设您已指定家庭为 Poisson),您有一个链接功能,说明您的y取决于Xβ(在泊松的情况下,它是一个简单的对数 - 因为Xβ>0)。在这种情况下,你修复你的比例参数,这样你就可以解释过度分散,因此你确实有可识别性(这就是为什么在glmer抱怨时,它确实给了你结果);这就是你如何“解决”拥有与观察一样多的组的问题。

概念部分:我认为这更“主观”,但也更直接。你使用混合效果。模型,因为您基本上认识到您的错误中有一些与组相关的结构。现在,如果您有与数据点一样多的组,则看不到结构。可以归因于“分组”的 LM 错误结构中的任何偏差现在都归因于特定的观察点(因此您最终会得到一个过度拟合的模型)。

一般来说,单一观察组往往有点混乱。从 r-sig-mixed-models 邮件列表中引用 D.Bates:

我想您会发现,无论您包括还是排除单一观察组,模型拟合的差异都非常小。试试看。