R 计算年龄标化率(Age Adjusted Rates)

计算年龄标化率(Age Adjusted Rates)

为了在不同群体(例如地理区域,种族)的比率之间进行有效的比较,往往需要考虑年龄的分布,调整年龄分布的差异,以消除年龄的混淆影响。通过还需要计算在标准化后的置信区间。(Anderson 1998)
(ps:该死的预防医学,需要掌握率的标准化,但是R可以帮准你实现全部过程。)

1.计算年龄调整的标准化率

假设某地区5个年龄组的HIV感染人数与对应年龄组的人口数。计算该地区的HIV的年龄标化率。

library(tidyverse)
library(epitools)
df=tibble(age_group=c("<1", "1-4", "5-14", "15-24", "25-34", "35-44", "45-54",
                       "55-64", "65-74", "75-84", "85+"),
          case= c(141, 926, 1253, 1080, 1869, 4891, 14956, 30888,
                  41725, 26501, 5928),
          pop=c(1784033, 7065148, 15658730, 10482916, 9939972,
                10563872, 9114202, 6850263, 4702482, 1874619, 330915),
          standard_pop=c(906897, 3794573, 10003544, 10629526, 9465330,
                         8249558, 7294330, 5022499, 2920220, 1019504, 142532))

DT::datatable(df)

df %>% mutate(CrudeRate=case/pop ) 
image.png

1.HIV粗感染率(Crude Rates)

case/pop=CrudeRate;可以通过mutate来计算


df %>% mutate(CrudeRate=case/pop ) 
# A tibble: 11 x 5
   age_group  case      pop standard_pop CrudeRate
   <chr>     <dbl>    <dbl>        <dbl>     <dbl>
 1 <1          141  1784033       906897 0.0000790
 2 1-4         926  7065148      3794573 0.000131 
 3 5-14       1253 15658730     10003544 0.0000800
 4 15-24      1080 10482916     10629526 0.000103 
 5 25-34      1869  9939972      9465330 0.000188 
 6 35-44      4891 10563872      8249558 0.000463 
 7 45-54     14956  9114202      7294330 0.00164  
 8 55-64     30888  6850263      5022499 0.00451  
 9 65-74     41725  4702482      2920220 0.00887  
10 75-84     26501  1874619      1019504 0.0141   
11 85+        5928   330915       142532 0.0179  

2.HIV年龄标化率(Adjusting the Rates)

首先需要通过 standard_pop标准人口来计算各个年龄组的比例,这个standard_pop可以根据某省或者WHO的标准,主要目的是获取不同年龄组所占总人口比例。

  1. 计算年龄组的proportion


    image.png

prop.table可以计算年龄组的proportion;确保proportion 总和为1.

  1. 计算年龄组调整的率


    image.png

只需将每个年龄组的原始case乘以该年龄组的proportion即可。 (由于proportion均小于1,因此HIV的年龄标化率是各个年龄组调整后的累计效应)

(a=df %>% mutate(CrudeRate=case/pop,
                 proportion=prop.table(standard_pop),
                 Adjust_rates=CrudeRate*proportion)
)
# A tibble: 11 x 7
   age_group  case      pop standard_pop CrudeRate proportion Adjust_rates
   <chr>     <dbl>    <dbl>        <dbl>     <dbl>      <dbl>        <dbl>
 1 <1          141  1784033       906897 0.0000790    0.0153    0.00000121
 2 1-4         926  7065148      3794573 0.000131     0.0638    0.00000837
 3 5-14       1253 15658730     10003544 0.0000800    0.168     0.0000135 
 4 15-24      1080 10482916     10629526 0.000103     0.179     0.0000184 
 5 25-34      1869  9939972      9465330 0.000188     0.159     0.0000299 
 6 35-44      4891 10563872      8249558 0.000463     0.139     0.0000642 
 7 45-54     14956  9114202      7294330 0.00164      0.123     0.000201  
 8 55-64     30888  6850263      5022499 0.00451      0.0845    0.000381  
 9 65-74     41725  4702482      2920220 0.00887      0.0491    0.000436  
10 75-84     26501  1874619      1019504 0.0141       0.0171    0.000242  
11 85+        5928   330915       142532 0.0179       0.00240   0.0000429 

# CrudeRate
100000*(sum(a$case)/sum(a$pop))

# Adjust_rates
100000*sum(a$Adjust_rates)

根据该计算方式;可以得出 CrudeRate =166.0874; Adjust_rates=143.9176

3.标化率置信区间(Adjusting the Rates)

这种用于估计95%CI的方法很复杂,但是依据正态分布的方法,在标准正态分布上使用误差的余量+/-平均值,对于该特定计算,年龄调整率作为中心( Confidence Intervals)。因此,借助于epitools

##implement direct age standardization using 'ageadjust.direct'
asr = ageadjust.direct(count = df$case, pop = df$pop, stdpop = df$standard_pop)
round(100000*asr, 2) ##rate per 100,000 per year

4.间接法计算(两地区年龄组pop合并)

这里增加了一列数据standard_pop人口的各个感染病例数:standard_case;这样就相当于两个地区各年龄组都有HIV的发病数。合并两个地区的pop计算调整的年龄标化率。

df$standard_case=c(45, 201, 320, 670, 1126, 3160, 9723, 17935,
                   22179, 13461, 2238)

##implement indirect age standardization using 'ageadjust.indirect'
asr = ageadjust.indirect(count = df$case, pop = df$pop,
                          stdcount = df$standard_case, stdpop = df$standard_pop)
                          
round(asr$sir, 2)         ##standarized incidence ratio
 observed       exp       sir       lci       uci 
130158.00 109126.69      1.19      1.19      1.20 
round(100000*asr$rate, 1) ##rate per 100,000 per year
crude.rate   adj.rate        lci        uci 
     166.1      142.6      141.8      143.3 
     
     
asr = ageadjust.indirect(count = df$standard_case, pop = df$standard_pop,
                         stdcount = df$case, stdpop = df$pop)
round(asr$sir, 2)         ##standarized incidence ratio
round(100000*asr$rate, 1) ##rate per 100,000 per year


参考

  1. Age standardization by indirect method, with exact confidence
  2. Calculating Age-adjusted Rates
  3. Age Adjusted Rates - Steps for Calculating
  4. Chapter 7: Age-standardisation and denominators
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容