In general, rates means how fast something is changing usually over time. In epidemiology uses it to describe how quickly a disese occurs in a population. For example, 35 cases of melanoma cases in 100,000 person per year convey a the sense of speed of spread of disease in that population. Incidence rate and mortality rate are two examples that we will discuss further below.
In epidemiology, rate measures the frequency of occurance of an event in a given population over certain period of time1.
Let us use melanoma as a outcome in the following discussion. Here, we can calculate a crude incidence rate as,
\[\mathcal{R} = \frac{\textsf{no. of melanoma cases}}{\textsf{no. of person-year}} \times \textsf{some multiplier}\]
In the case of mortality rate, we can replace the numerator of above expression by the number of melanoma deaths.
Age-specific rate
Weather to understand a broder prespecitve or to compare across population, these rates are often analyzed stratified by sex and age. This also helps to remove the confounding effection of these factors. The incidence/mortality rate per age-group is usually referred to as Age-specific rates where rates are computed for each age-groups. This is often desirable since factor age has a strong effect on mortality and incidence of most disease especially the cronic one.
Age-adjusted rate
Many research articles, however presents the age-adjusted rates. Age-adjusted rates are standardized (weighted) using some standard population age-structure. For example, many european studies on melanoma uses european standard age distribution. While any reasonal studies have also used world standard population. Cancer registry in their reports sometimes uses age-structure of that country in some given year. For instance, Norway2 and Finland3 have used the their population in 2014 as standard population in their recent cancer report while Australia have used 2001 Australian population4.
Standardized (adjusted) rates makes comparison between the population possible. Figure Figure 1 shows the difference in the age distribution between world population and European population. Following table are some of the standard population often used in the study. Further on standard popuation see seer.cancer.gov5.
where, \(\mathcal{w}_i\) is the weight corresponding to \(i^\text{th}\) age-group in the reference population.
Let’s explore further with an example from melanoma cases from Australia.
Example
The following example have used the Austrailian cancer data with 5-year age-group6 after filtering melanoma cases from 1982 to 2018. The dataset has yearly count and age-specific incidence rate of melanoma for men and women.
Let us use the above European standard population to find the yearly age-standardized incidence by sex.
Figure Figure 2 shows that the incidence of melanoma has larger difference in men between the age-groups than in women and men also have a sharp increase in older age group. In addition, the Figure Figure 3 shows that males have higher age-adjusted incidence of melanoma than women in Australia and this trend is increasing over time with rapid increase before 1983 before a drop.
Age-adjusted rates are useful for comparing rates between population but it cannot give the interpretation required for comparing within a population or over a time period in that population. This is one of the reason, cancer registry uses the internal (population structure of their own population) to compute the age-adjusted rates.
---title: "Age Adjusted Rates in Epidemiology"author: TheRimalayadate: 2023-06-20date-modified: 2024-11-11code-overflow: scrollcitations-hover: truepreview-links: truecode-fold: truecode-tools: toggle: trueexecute: warning: falsetags: - Statistics - Epidemiologyformat: html---```{r, include=FALSE}autoload("%>%", "magrittr")library(tidytable)library(data.table)library(ggplot2)```In general, rates means how fast something is changing usually over time. In epidemiology uses it to describe how quickly a disese occurs in a population. For example, 35 cases of melanoma cases in 100,000 person per year convey a the sense of speed of spread of disease in that population. Incidence rate and mortality rate are two examples that we will discuss further below.> In epidemiology, rate measures the frequency of occurance of an event in a > given population over certain period of time[^1].Let us use melanoma as a outcome in the following discussion. Here, we can calculate a crude incidence rate as,$$\mathcal{R} = \frac{\textsf{no. of melanoma cases}}{\textsf{no. of person-year}} \times \textsf{some multiplier}$$In the case of mortality rate, we can replace the numerator of above expression by the number of melanoma deaths.## Age-specific rateWeather to understand a broder prespecitve or to compare across population, these rates are often analyzed stratified by sex and age. This also helps to remove the confounding effection of these factors. The incidence/mortality rate per age-group is usually referred to as _Age-specific rates_ where rates are computed for each age-groups. This is often desirable since factor `age` has a strong effect on mortality and incidence of most disease especially the cronic one.## Age-adjusted rateMany research articles, however presents the age-adjusted rates. Age-adjusted rates are standardized (weighted) using some standard population age-structure. For example, many european studies on melanoma uses european standard age distribution. While any reasonal studies have also used world standard population. Cancer registry in their reports sometimes uses age-structure of that country in some given year. For instance, Norway[^3] and Finland[^4] have used the their population in 2014 as standard population in their recent cancer report while Australia have used 2001 Australian population[^5].Standardized (adjusted) rates makes comparison between the population possible. Figure @fig-age-std shows the difference in the age distribution between world population and European population. Following table are some of the standard population often used in the study. Further on standard popuation see [`seer.cancer.gov`](https://seer.cancer.gov/stdpopulations/stdpop.19ages.html)[^6].### Standard Population by Age::: panel-tabset### Table```{r}#| code-summary: Standard Populationus2000 <-tidytable(`AgeGroup`=c("0", "1-4", "5-9", "10-14", "15-19", "20-24", "25-29", "30-34", "35-39", "40-44", "45-49", "50-54","55-59", "60-64", "65-69", "70-74", "75-79", "80-84", "85+" ), US2000 =c(13818, 55317, 72533, 73032, 72169, 66478, 64529, 71044, 80762, 81851, 72118, 62716, 48454, 38793, 34264, 31773, 26999, 17842, 15508 ))std_pop <-as_tidytable(popEpi::stdpop18) %>%mutate(agegroup =case_when( agegroup =="85"~"85+", TRUE~ agegroup )) %>%mutate(age =case_when( agegroup =="0-4"~list(c("0", "1-4")),TRUE~as.list(agegroup) ) ) %>%unnest(age) %>%rename_with(~c("Age Group", "World", "Europe", "Nordic", "AgeGroup") ) %>%left_join(us2000) %>% tidytable::mutate(across(everything(), function(x) {if (x[1] == x[2]) x[2] <-NAreturn(x) })) %>%mutate(AgeGroup =c(AgeGroup[1:2], rep(NA, length(AgeGroup) -2)) )gt::gt(std_pop) %>% gt::sub_missing(missing_text ="") %>% gt::cols_label(AgeGroup ="") %>% gt::opt_vertical_padding(0.5) %>% gt::tab_style(style = gt::cell_borders(sides ="top", weight ="0"),locations = gt::cells_body(1:4, rows =2) ) %>% gt::tab_options(column_labels.font.weight ="bold") %>% gt::tab_header("Standard Population by Age Group")```### Plot```{r}#| code-summary: Standard population plot#| fig-cap: World and European Standard Population#| fig-cap-location: bottom#| fig-align: center#| out-width: 75%#| label: fig-age-stdpop_data <-as_tidytable(popEpi::stdpop18) %>%mutate(nordic =NULL, id =1:n())pop_data %>%mutate(world = world *-1) %>%pivot_longer(cols =c(world, europe)) %>%arrange(id) %>%ggplot(aes(value, reorder(agegroup, id), fill = name)) +geom_col(width =1, color ="#f0f0f0", size =0.2) +theme_minimal() + ggthemes::scale_fill_economist(labels = stringr::str_to_title) +theme(legend.position ="none",panel.grid.major.y =element_blank(),panel.grid.minor.y =element_line(color ="red") ) +scale_x_continuous(labels = abs, expand =expansion()) +scale_y_discrete(expand =expansion()) +labs(x ="Number of person",y =NULL,fill ="Population" ) +annotate(x =-Inf, y =Inf,geom ="text", label ="World",hjust =-0.5, vjust =1.5 ) +annotate(x =Inf, y =Inf,geom ="text", label ="Europe",hjust =1.5, vjust =1.5 )```:::## Calculating age-standardized rateThe age-standardized rate (ASR) is calculated as,$$\text{Age.Std. Rate} = \frac{\sum_i\mathcal{R}_i\mathcal{w}_i}{\sum_i\mathcal{w}_i}$$where, $\mathcal{w}_i$ is the weight corresponding to $i^\text{th}$ age-group in the reference population.Let's explore further with an example from melanoma cases from Australia.## ExampleThe following example have used the Austrailian cancer data with 5-year age-group[^2] after filtering melanoma cases from 1982 to 2018. The dataset has yearly count and age-specific incidence rate of melanoma for men and women.Let us use the above European standard population to find the yearly age-standardized incidence by sex.```{r}#| code-summary: Age-specific Datastd_pop <-as_tidytable(popEpi::stdpop18) %>%rename_with(~c("AgeGroup", "World", "Europe", "Nordic")) %>%mutate(AgeGroup =case_when( AgeGroup =="85"~"85+", TRUE~ AgeGroup )) %>%mutate(across(World:Nordic, prop.table) )data <- tidytable::fread("melanoma.csv") %>%mutate(AgeGroup =case_when( AgeGroup %in%c("85-89", "90+") ~"85+",TRUE~ AgeGroup ))asp_data <- data %>%left_join( std_pop %>%select(AgeGroup, World), by ="AgeGroup" )head(asp_data)``````{r}#| code-summary: Age-standardized Rateasp <- asp_data %>%group_by(Year, Sex) %>%summarize(AgeAdjRate =sum(ASR * World))asp %>%group_by(Sex) %>%slice_tail(8) %>%ungroup() %>% tidytable::pivot_wider(names_from ="Year",values_from ="AgeAdjRate" ) %>% gt::gt() %>% gt::opt_vertical_padding(0.5) %>% gt::fmt_number(columns =-1) %>% gt::tab_options(table.width ="100%")```Now, let us compare the age-specific rates (crude rates) and age-standardized rates with a plot,### Compare the age-specific rates and age-adjusted rates```{r}#| code-summary: Age-specific rates vs Age-adjusted rates#| label: fig-rate-plot#| fig-cap: Age-specific and Age-adjusted rate showing why age-adjustement is necessaryggplot() +geom_line(data = data,aes(x = Year,y = ASR,group = AgeGroup,color ="Crude" ) ) +geom_line(data = asp,aes(x = Year,y = AgeAdjRate,group =1,color ="Age-adjusted" ) ) +geom_text(data = data[Year ==max(Year)],check_overlap =TRUE,size =rel(2),color ="#0f0f0f",aes(x = Year +2,y = ASR,label = AgeGroup ) ) +scale_x_continuous(breaks = scales::breaks_extended(8)) +scale_y_continuous(breaks = scales::breaks_extended(8)) +scale_color_manual(NULL, values =c("firebrick", "grey")) +facet_grid(cols =vars(Sex)) +theme_minimal() +theme(panel.border =element_rect(fill =NA, color ="darkgrey"),legend.position ="inside",legend.position.inside =c(0, 1),legend.justification =c(0, 1) ) +labs(x ="Diagnosis year",y =paste("Age-adjusted incidence rate","per 100,000 person year",sep ="\n" ) )```### Compare the age-adjusted rates by sex```{r}#| code-summary: Age-adjusted rates by sex#| label: fig-adj-rate-plot#| fig-cap: Age-adjusted rates by sex for melanoma patientsggplot(asp, aes(x = Year, y = AgeAdjRate, color = Sex)) +geom_line() +geom_point(fill ="whitesmoke", shape =21) +scale_x_continuous(breaks = scales::breaks_extended(8)) +scale_y_continuous(breaks = scales::breaks_extended(8)) +scale_color_brewer(palette ="Set1") +theme_minimal() +theme(panel.border =element_rect(fill =NA, color ="darkgrey"),legend.position =c(0, 1),legend.justification =c(0, 1) ) +labs(x ="Diagnosis year",y =paste("Age-adjusted incidence rate","per 100,000 person year",sep ="\n" ) ) +expand_limits(y =0)```## DiscussionFigure @fig-rate-plot shows that the incidence of melanoma has larger difference in men between the age-groups than in women and men also have a sharp increase in older age group. In addition, the Figure @fig-adj-rate-plot shows that males have higher age-adjusted incidence of melanoma than women in Australia and this trend is increasing over time with rapid increase before 1983 before a drop.Age-adjusted rates are useful for comparing rates between population but it cannot give the interpretation required for comparing within a population or over a time period in that population. This is one of the reason, cancer registry uses the internal (population structure of their own population) to compute the age-adjusted rates.[^1]: https://www.cdc.gov/csels/dsepd/ss1978/lesson3/section1.html[^2]: https://www.aihw.gov.au/reports/cancer/cancer-data-in-australia/data[^3]: https://www.kreftregisteret.no/globalassets/cancer-in-norway/2021/cin_report.pdf[^4]: https://cancerregistry.fi/reports-and-publications/annual-report-on-cancer-in-finland/[^5]: https://www.aihw.gov.au/reports/cancer/cancer-in-australia-2021/summary[^6]: https://seer.cancer.gov/stdpopulations/stdpop.19ages.html