如何确定马赛克图中的重要关联?

机器算法验证 r 数据可视化 解释 列联表
2022-03-17 10:23:42

关于如何解释马赛克图中分类变量之间的显着关联,我有一个常见问题。

例如,在这个图中,基于皮尔逊残差,我们可以说[2.0,5.1][3,2.0]残差值意味着在统计上存在显着关联40+年龄,有记忆力和温和的态度?以及如何考虑皮尔逊残值,我们使用[2.0,5.1]价值或[4.0,5.1]或者[2.0,3.0]还?

在此处输入图像描述

2个回答

标准化残差的公式为:

Pearson's residuals=Observed - ExpectedExpecteddij=nijmijmij

在哪里mij=E(fij)是预期的频率i-th 行和j- 第列。

标准化残差的平方和是卡方值。

来自扩展马赛克显示: Michael Friendly对分类数据的边际、部分和条件视图

在独立的假设下,这些值大致对应于双尾概率p<.05p<.0001给定的值|dij|超过2或者4.

请注意以下脚注:

出于探索的目的,我们通常不会对多个测试进行调整(例如,Bonferroni),因为目标是在整个表格中显示残差模式。但是,用户可以轻松设置这些截止值的数量和值。

我们正在处理一个多路表,马赛克图包的 R 文档对此进行了参考:

扩展马赛克显示通过马赛克瓷砖的颜色和轮廓显示计数的对数线性模型的标准化残差。(标准化残差通常被称为标准正态分布。)负残差以红色阴影和虚线绘制;正面的用蓝色和实线轮廓绘制。


这是一个三向列联表这一事实使解释复杂化,@roando2 的回答很好地解释了这一点。

这是一个模拟,其中包含一个类似于 OP 的编造表,以阐明计算:

tab_df = data.frame(expand.grid(
  age = c("15-24", "25-39", ">40"),
  attitude = c("no","moderate"),
  memory = c("yes", "no")),
  count = c(1,4,3,1,8,39,32,36,25,35,32,38) ) 
(tab = xtabs(count ~ ., data = tab_df))

, , memory = yes
       attitude
age     no moderate
  15-24  1        1
  25-39  4        8
  >40    3       39
, , memory = no
       attitude
age     no moderate
  15-24 32       35
  25-39 36       32
  >40   25       38

    summary(tab)
Call: xtabs(formula = count ~ ., data = tab)
Number of cases in table: 254 
Number of factors: 3 
Test for independence of all factors:
    Chisq = 78.33, df = 7, p-value = 3.011e-14

require(vcd)
mosaic(~ memory + age + attitude, data = tab, shade = T)
expected = mosaic(~ memory + age + attitude, data = tab, type = "expected") 
expected

# Finding, as an example, the expected counts in >40 with memory and moderate att.:

over_forty = sum(3,39,25,38)
mem_yes = sum(1,4,3,1,8,39)
att_mod = sum(1,8,39,35,32,38)
exp_older_mem_mod = over_forty * mem_yes * att_mod / sum(tab)^2

# Corresponding standardized Pearson's residual:

(39 - exp_older_mem_mod) / sqrt(exp_older_mem_mod) # [1] 6.709703

在此处输入图像描述

将图形表示与泊松回归的结果进行比较很有趣,它完美地说明了@rolando2 答案中的英文解释:

fit <- glm(count ~ age + attitude + memory, data=tab_df, family=poisson())
summary(fit)

Call:
glm(formula = count ~ age + attitude + memory, family = poisson(), 
    data = tab_df)

Coefficients:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)        1.7999     0.1854   9.708  < 2e-16 ***
age25-39           0.1479     0.1643   0.900  0.36794    
age>40             0.4199     0.1550   2.709  0.00674 ** 
attitudemoderate   0.4153     0.1282   3.239  0.00120 ** 
memoryno           1.2629     0.1514   8.344  < 2e-16 ***

最好使用某些特定语言来解释。在 40 岁以上的年龄组中(在图中,标记为“40-”),变量记忆和态度之间存在显着关联。我们引用变量之间的关联,而不是它们中的值或类别之间的关联(例如“中等”或“否”)。

一个更具体的说法是,对于那些 40 岁以上但不是其他年龄组的人来说,记忆的“是”与态度的“中等”不成比例地配对。

我们也可以说,年龄和记忆之间存在相互作用,因为它们与态度有关,或者年龄和态度之间存在相互作用,因为它们与记忆有关。很少有人会在这样的句子末尾放置一个像年龄这样的变量,因为年龄通常是预测变量或原因的候选者,而不是结果。

以上所有内容均基于绘图对每个单元格的表征,通过颜色使用一系列 Pearson 残差。该图没有为我们提供足够的信息来进一步指定每个残差的值。在这种情况下,任何单独的剩余价值也不能决定其重要性。基于卡方检验的马赛克图不解决显着性问题,除非产生单一的整体“综合” p值。