0

在生成具有三个变量的表后,如下所示:

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 列联表,我会用它chisq.test(x)$expected来查看预期值,但我不知道如何在 3 路列联表中处理它。

4

1 回答 1

2

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
于 2017-03-08T06:08:06.860 回答