是什么让 GLM 估计的均值与实际样本均值不同?

机器算法验证 线性模型
2022-04-16 18:09:53

免责声明:我很高兴地承认,当谈到通用混合模型时,我并不真正知道我在做什么,但希望这个线程可以让我更接近某种理解。但是,如果这是一个“我的天啊,你真是个 n00b”的问题,应该关闭并且永远不会再被提及,我会完全理解 :)

我正在运行几个通用线性模型(使用 SPSS)来尝试更好地了解该方法。我的数据集由许多具有因变量(范围从 0 到 1)的刺激呈现和每个呈现的许多独立名义变量(例如参与者的性别、药物状况、刺激类型等)组成.

现在,当我运行一个通用线性模型时,我可以生成很多漂亮的图表,显示我所有数据的显着和非显着的主效应和交互效应。当仅包含几个因素时,这些图中的估计均值与我进行描述性分析并仅计算均值相同。但是,当我开始添加很多因素时,估计的均值开始偏离样本中的实际均值。

我在这里有点困惑。是什么让 GLM 估计的均值与样本均值相同,这些估计的均值何时开始偏离样本均值?它与因素的数量有关,还是与因素本身有关(例如,它们如何相对于其他变量划分数据)。

3个回答

让我们有一些数据(如下所示)、预测和 Y 以及两个因子 X1 和 X2。X1 有 2 组,X2 有 3 组。(在这个特定的例子中,设计是不完整的,因为组合 X1=2 & X2=3 不存在。)

让我们运行 GLM 命令(如图所示)。设置为默认值:全因子模型、SS III 类型的正方形、存在截距。该命令要求打印出所有因子组及其组合的观测均值,并打印出相应的估计均值。它还保存 Y 的预测值(以下显示为“pre”)。

UNIANOVA y BY x1 x2
  /METHOD=SSTYPE(3)
  /INTERCEPT=INCLUDE
  /SAVE=PRED
  /EMMEANS=TABLES(OVERALL) 
  /EMMEANS=TABLES(x1) 
  /EMMEANS=TABLES(x2) 
  /EMMEANS=TABLES(x1*x2) 
  /PRINT=DESCRIPTIVE
  /CRITERIA=ALPHA(.05)
  /DESIGN=x1 x2 x1*x2.

     y     x1  x2      pre
  .725581   1   1   .725581
 -.147728   1   2   .046662
  .496867   1   2   .046662
 -.985803   1   2   .046662
 -.139656   1   2   .046662
 -.381405   1   2   .046662
 1.437696   1   2   .046662
  .039809   1   3  -.748909
-1.537626   1   3  -.748909
 -.402714   2   1   .159152
 1.900394   2   1   .159152
  .883087   2   1   .159152
-1.744157   2   1   .159152
 1.009084   2   2   .288968
 1.169746   2   2   .288968
  .579917   2   2   .288968
-1.022533   2   2   .288968
 -.587685   2   2   .288968
  .814123   2   2   .288968
  .003084   2   2   .288968
-1.068938   2   2   .288968
 -.175502   2   2   .288968
 1.290405   2   2   .288968
 1.166946   2   2   .288968
 -.645831   2   3  -.645831
 1.061533   3   1  1.061533
 1.143789   3   2   .676997
  .210205   3   2   .676997
 -.643339   3   3  -.360148
 -.076957   3   3  -.360148

让我们比较打印出来的观察和估计均值(我在这里不显示这些表格)。首先,我们可以注意到在设计的最低(单元格)级别,即在组 X1 * X2 的组合级别上,估计均值等于观察均值。这是因为我们使用了饱和的全因子模型,包括因子之间所有可能的相互作用。其次,我们可以看到,当涉及到较高、边际水平的均值时,估计均值(通常)不等于观测均值。例如,X1=1 的观测边际平均值为 -0.05470,相应的估计平均值为 0.00778。

我们能说明这种差异的根源吗?是的。观察到的边际平均值对应于预测值的简单平均值。对于 X1=1,这mean(.725581,.046662,.046662,.046662,.046662,.046662,.046662,-.748909,-.748909) = -0.05470与观察值的简单平均值相同mean(.725581,-.147728,.496867,-.985803,-.139656,-.381405,1.437696,.039809,-1.537626) = -0.05470另一方面,估计的边际均值是通过平均具有相同权重的折叠组的预测值来给出的。也就是说,X2=1、X2=2、X2=3 尽管频率不等,但它们的权重相同,等等0.00778 = mean(.725581,.046662,-.748909)您可能会得出结论,如果设计是平衡的 - 单元包含相等的频率 - 估计和观察到的平均值将彼此相等。

这是对简单案例的简单解释(“简单案例”是指默认值,例如 III 型 SS、截距、无协变量)。您可以查阅“SPSS Algorithms”帮助文档以了解在一般情况下如何实际计算估计的预期均值。

从我的角度来看,这是完全合理的问题,事实上我的许多客户都提出了这个问题。

不匹配可归因于以下几点:

  1. 缺少数据SPSS 默认情况下会逐个排除缺失数据。因此,如果您碰巧在一个因素中缺少观察值,那么与描述性统计所基于的情况相比,为模型计算均值的情况(例如,第二因素)是不同的(数量较少)。
  2. 边际均值是在假设每个单元格(即因子水平的组合)具有相等权重的情况下计算的。这符合 ANOVA 更基本的假设,这就是 ANOVA 基本看待数据的方式。所以,如果你有两个层次的性别和两个层次的教育,男性的边际平均值计算为(Mean of males with high education)+(Mean of males with college education)2而不是

(Mean of males with high edu)(# males with high edu)+(Mean of males with college edu)(# males with college edu)Number of males with any edu,相当于受过任何教育的男性的简单平均值。

第二点等同于 ttnphns 和 Kavin Kane 给出的答案,但用(我认为)更简单的语言。

如果您拟合的模型只有一个因子,其水平数与您要估计的均值相同(好吧,可能会少一个,因为您有截距项),那么估计的均值应该正是观察到的均值。当您添加其他协变量(模型中的变量)时,当您估计最小二乘均值时,通常假设平衡。这意味着对于分类协变量,估计值评估总体中的个体数量将均匀分布在协变量的各个水平上。在 SAS 中,有一个选项 - OBSERVEDMARGINS 或 OM - 将根据样本中观察到的比例给出估计值,这些通常更接近样本均值。

您还没有提到您正在使用混合或随机效果。不过,我不认为这些会对均值的估计产生巨大影响。

不过我想说一件事——如果你不明白你正在使用什么方法——请寻求统计学家的帮助。这些东西很容易出错。