如何在 R 中的高维马赛克图中提取计算出的预期频率

How to extract the calculated expected frequencies in a higher-dimensional mosaicplot in R

生成具有三个变量的 table 之后:

salary <- array(
  c(38, 12, 102, 141, 12, 9, 136, 383),
  dim=c(2, 2, 2),
  dimnames=list(exposure = c("exposed", "not"),
                disease = c("case", "control"),
                salary = c("<1000", ">=1000"))
) 

salary
, , salary = <1000

         disease
exposure  case control
  exposed   38     102
  not       12     141

, , salary = >=1000

         disease
exposure  case control
  exposed   12     136
  not        9     383

vcd 包允许创建这样的马赛克图:

mosaic(salary, shade = T)

其中表面积与单元格中的计数成正比,颜色对应于标准化 Pearson 残差。

问题是如何计算和提取预期计数?

我知道我可以产生这样的边距:

addmargins(salary)
, , salary = <1000

         disease
exposure  case control Sum
  exposed   38     102 140
  not       12     141 153
  Sum       50     243 293

, , salary = >=1000

         disease
exposure  case control Sum
  exposed   12     136 148
  not        9     383 392
  Sum       21     519 540

, , salary = Sum

         disease
exposure  case control Sum
  exposed   50     238 288
  not       21     524 545
  Sum       71     762 833

如果是 2 x 2 意外事件 table 我会使用 chisq.test(x)$expected 来查看预期值,但我不知道如何在 3 向意外事件中处理它table.

有一个指定参数可以使用 type = "expected" 选项计算(和可视化)预期值。

mos_exp <- mosaic(salary, type = "expected")

mos_exp

#>                 disease       case    control
#> exposure salary                              
#> exposed  <1000            8.634326  92.666994
#>          >=1000          15.913093 170.785587
#> not      <1000           16.339263 175.359416
#>          >=1000          30.113318 323.188003