admin管理员组文章数量:1595927
Age-period-cohort(APC)它的算法原理首先需要明白的是这种算法是针对时间这个维度进行了精雕细琢,它把时间维度进行了针对性的分解,分解为年龄效应,时期效应和队列效应。APC 分析的目的就是解开年龄、时期和队列的独立影响。这里分别给大家解释一下这三个分解效应:
年龄效应:年龄效应是与特定于个人的衰老的生物学和社会过程相关的变化。它们包括与衰老相关的生理变化和社会经验的积累,但与个人所属的时期或所属队列无关。
时期效应:时期效应是外部因素在特定日历时间同等影响所有年龄组的结果。它可能源于一系列环境、社会和经济因素,例如战争、饥荒、经济危机。结果定义、分类或数据收集方法的方法论变化也可能导致数据的周期效应。
队列效应:队列效应是一组受试者(队列)随着时间的推移而产生的独特体验/暴露所导致的变化。在流行病学中,队列效应被概念化为由于特定年龄暴露或对该事件或原因的易感性而不同地经历的时期效应导致的相互作用或效应改变。这句话有点晦涩难懂,通俗讲队列效应就是一个结构化因素,代表队列从出生时经历的所有独特暴露的总和。作为医学研究的数据我们比较感兴趣的是birth cohort。
下面是这个算法比较绕的地方:因为年龄,时期和队列这三个因素存在着明显的共线性,但我们分析APC的目的就是要找到这三个因素的独立影响。
全代码给大家
#AGE-PERIOD-COHORT (APC) ANALYSIS
rm(list = ls());gc()
#首先加载包
library(broom)
library(tidyverse)
suicides <- read_csv("G:/Rcode/master.csv")
suicides <- suicides %>% select(suicides = 'suicides_no', age, period = 'year', sex, country) %>%
bind_cols(age1 = sample(10:99, dim(suicides)[1], replace = TRUE)) %>%
select(-age) %>%
mutate(age = age1) %>%
select(-age1) %>%
mutate(cohort = period - age)
#查看一下数据结构
glimpse(suicides)
#调整APC需要的变量,对主变量进行赋值约束
suicides <- suicides %>%
mutate(age_squared = age ^ 2) %>%
mutate_at(vars(period, cohort), funs(as.factor(.))) %>%
select(suicides, age, age_squared, period, cohort, everything())
suicides
#做完数据清洗,我们进行求解系数
apc_lm <- lm(suicides ~ age + age_squared + period + cohort, suicides)
summary(apc_lm)
#下面清洁函数的结果
apc_tidy <- tidy(apc_lm)
apc_tidy
pc_tidy <- apc_tidy %>%
mutate(
key = str_replace_all(term, "[:digit:]", ""),
value = str_replace_all(term, "[:alpha:]", "") %>% as.numeric()
) %>% # seperate digit number and alphabet of term
版权声明:本文标题:AGE-PERIOD-COHORT (APC) 连续变量和二分类变量分析全代码 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728237161a1150553.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论