疫苗效果分析:如何使用疫苗预防率等指标来评估疫苗的预防效果

简介: 疫苗效果分析:如何使用疫苗预防率等指标来评估疫苗的预防效果

一、引言



自2020年开始,「新冠病毒(COVID-19)」 在全球范围内肆虐,对人类的生命和健康、社会经济的稳定性以及国际社会的合作与发展产生了深远的影响。为了控制疾病的传播,各国政府采取了一系列措施,其中包括全球卫生保健系统和科学家们的紧急应对以及广泛推广可靠和安全的疫苗。


自2020年末以来,曾经历了研发、临床试验和相关审批等诸多环节,各类新冠疫苗已在全球范围内广泛应用。与此同时,出现了一些关于疫苗安全和有效性的讨论和话题。疫苗的预防效果是疫苗研究的重要指标之一,也是评估公众接种各类疫苗的关键标准。因此,本文旨在向广大读者介绍「如何使用疫苗相对效应或疫苗预防率等指标来评估疫苗的预防效果,为新冠病毒等疾病的防控工作提供一些科学的信息和参考」。希望本文能为大家提供有用的技术支持和科学依据。


二、疫苗效果指标的概述



「疫苗的预防效果」是指被疫苗接种者不再出现疾病的发生。疫苗预防效果的评估是疫苗研究的重要组成部分,它可以用于衡量疫苗的安全性和有效性。以下介绍两种评估疫苗效果的指标,以及它们的计算方法。


2.1 疫苗相对效应


「疫苗相对效应」是指实验组中发生目标疾病的相对减少比例与对照组中发生目标疾病的相对减少比例之间的比率。简单来说,如果研究发现,在接种疫苗的实验组中,发生一种疾病的人比不接种疫苗的对照组中少了40%,那么实验组的疫苗相对效应为40%。疫苗相对效应的计算公式如下:


「疫苗相对效应(VE)= [(R0 - R1)/ R0] × 100%」

其中,R0是对照组中发生目标疾病的人数,R1是实验组中发生目标疾病的人数。


2.2 疫苗预防率


「疫苗预防率」是指疫苗接种后,接种者不再发生疾病的比例。也就是说,如果有100个人接种了某种疫苗,并且其中75个人不再发生疾病,那么该疫苗的预防率就是75%。疫苗预防率的计算公式如下:


「疫苗预防率 = [1 - (接种人群中疾病/总数)] × 100%」

需要注意的是,疫苗预防率一般通过大规模 III 期临床试验来计算,并且预防率的值一般比相对效应更为直观,因为它能够直接告诉我们,接种疫苗可以降低多少个人感染疾病。然而,相比之下,相对效应更为精确,因为它能够控制一些其他影响因素的影响。


2.3 附录


「大规模 III 期临床试验」是新药研发过程中的最后一道关卡,也是最为关键的一步。在大规模 III 期临床试验中,药物将会在大规模人群中进行测试,以确定药物的安全性和有效性。

在大规模 III 期临床试验中,通常会选择数千名患者,并将他们随机分配到接受药物治疗或安慰剂治疗的组别中。在试验过程中,研究人员会对患者进行各种测试和观察,以确定药物的疗效和安全性。


如果药物在大规模 III 期临床试验中证明是安全有效的,那么研究人员将会提交相关数据和报告给监管机构,以获得批准上市的资格。如果药物未能证明安全有效,那么研究人员将会重新评估药物的疗效和安全性,并可能需要重新设计药物的配方或研发计划。


三、研究方法与分析



3.1 临床试验设计


为研究疫苗的效果和安全性,一般采用「双盲安慰剂对照随机临床试验」的设计。双盲随机对照实验可以有效地消除随机误差和系统误差,增加研究结果的可靠性和精度。同时,研究者也应该注意排除可能影响疫苗效果的其他因素,以保证研究的准确性和可靠性。


  1. 「确定研究问题和目标,选择适当疫苗和目标人群」:研究问题和目标为评估新光病毒疫苗的安全性和有效性。根据病毒特征和传播途径,选择微生物载体疫苗作为疫苗类型。目标人群为符合条件的18岁及以上的健康成年人。
  2. 「设计双盲安慰剂对照随机临床试验,并进行样本量计算」:将受试者随机分为实验组和对照组,每组各1000人。实验组接受新光病毒微生物载体疫苗,对照组接受安慰剂。研究人员和受试者都不知道是接受了疫苗还是安慰剂。样本量计算基于预期感染率和敏感性分析,确定1000人每组可以达到80%的概率发现相对风险的两倍或以上的真实效应。
  3. 「对参与者进行筛选,确定接种计划和剂量」:对符合条件的受试者进行筛选,包括身体健康、未感染新光病毒等。接种计划为2剂次接种,间隔28天。每剂次疫苗剂量为1mg。
  4. 「进行疫苗接种和对照剂接种,监测接种后的不良反应」:对实验组和对照组的受试者进行接种和对照剂接种。在接种后监测受试者的不良反应,包括注射部位疼痛、发红、肿胀等、全身反应等。在接种前、接种后2周、6个月和12个月随访并记录症状信息。
  5. 「收集和录入数据,包括基线数据、随访数据和终点数据」:收集和录入受试者的基线数据,包括性别、年龄、体重、身高、病史等。同时收集接种前、接种后2周、6个月和12个月的随访数据和终点数据,包括症状、体温、病毒感染等。
  6. 「进行数据清洗和统计学分析,以确定实验组和对照组之间的差异是否具有统计学意义」:对收集到的数据进行清洗和处理,包括数据检查、缺失值、异常值、可行值和数据转换等。使用适当的统计工具进行数据分析,比较实验组和对照组之间的差异是否具有统计学意义。
  7. 「使用疫苗相对效应和疫苗预防率等指标评估疫苗的预防效果」:使用疫苗相对效应和疫苗预防率等指标评估疫苗的预防效果。其中,疫苗相对效应是被感染率的比率(实验组/对照组),用于衡量疫苗的相对效果。疫苗预防率是(1-相对感染率)*100%,用于衡量疫苗的绝对效果。
  8. 「发布研究报告,并进行数据公开和分享」:在完成研究后,撰写研究报告,详细介绍试验的目的、设计、实施、结果和结论。将研究报告提交给相关的医学期刊进行评审和发布。同时,将研究数据公开和分享,方便其他研究人员进一步分析和研究,促进科学进步和公众健康。


3.2 疫苗效果指标的测量


常用的收集疫苗效果指标的方法包括:


  1. 「确诊病例督导监测」:在研究进行前,确定一个或多个确诊病例,对其进行督导监测,以确定患者在接受疫苗后是否有不良反应、是否产生免疫反应或是否感染目标病原体。
  2. 「家庭调查」:通过家庭调查等方式收集疫苗效果指标,例如,确定住在同一地区的接种人是否染病、是否出现不良反应等。
  3. 「诊断时标本收集」:例如采集病例的口腔、喉咙或鼻孔样品等,以鉴定病原体是否存在或免疫反应是否存在。
  4. 「研究流行病学特征」:研究表明,对于疫苗有效性高的疾病,使用大型研究人群可以增加盲目性。在研究中,结论主要基于症状、临床记录、实验结果。
  5. 「检测抗体」:抗体检测是疫苗效果指标最常规的测量角度之一。理想的方式是通过随机化、人群来源自然等方式随机分派疫苗或安慰剂,然后测定疫苗组和安慰剂组之间的抗体水平。


3.3 疫苗的安全性评


疫苗的安全性评估是疫苗研究中必不可少的一环,其主要目的是确定疫苗是否安全,以及在哪些情况下可能出现不良反应。疫苗的安全性评估通常包括以下几个部分:


  1. 「临床试验前的安全性评估」

在开展临床试验前,需要进行动物实验来评估疫苗的安全性。这些实验可以检测疫苗对动物的毒性反应和感染后的免疫反应等方面。在确定疫苗对动物无毒副作用和反应后,才能进行人类试验。


  1. 「临床试验过程中的安全性评估」

在进行临床试验时,需要监测疫苗接种后是否出现任何不良反应。在试验中,病人需要定期前来进行体检,如果病人出现任何不良反应,需要进行记录并依据实际情况采取相应的处理措施,以确保疫苗的安全性。


  1. 「疫苗的批次控制」

在大量生产和推广疫苗之前,需要对疫苗进行批次控制。这包括检测疫苗中可能存在的污染、校准疫苗的成分、检测疫苗的免疫原性和安全性等。只有在这些控制措施合格的情况下,才能大量生产和推广疫苗。


3.4 疫苗效果分析


  1. 「确认疾病的起始时间」

在疫苗效果分析过程中,需要首先确认疾病的起始时间。这个时间点通常是人们开始接触感染源或者开始出现感染症状的时间点。通过确定疾病的起始时间,可以准确评估疫苗对疾病的预防效果。


  1. 「确认疫苗接种时间」

在确定病毒感染时间之后,需要确认疫苗接种时间。通过将疫苗接种时间与病毒感染时间进行比较,可以准确评估疫苗预防病毒感染的效果。


  1. 「确认疫苗的类型和批次」

在开展疫苗效果分析工作时,需要准确确认疫苗的类型和批次。不同类型和不同批次的疫苗对疾病的预防效果有着不同的影响。因此,选用合适的疫苗和批次对疫苗进行分析至关重要。


  1. 「进行疫苗效果指标的测量」

在确认疫苗接种时间、疾病的起始时间、疫苗类型和批次之后,需要进行疫苗效果指标的测量。主要包括病例控制研究、队列研究和实验研究等多种方法。其中,常用的病例控制研究包括卡方检验、t检验和多元线性回归分析等。


3.5 偏差与影响因


疫苗效果研究中,偏差和影响因素分析非常重要,因为它们可能会影响研究结论的可靠性和准确性。以下是有关偏差和影响因素的一些解释和示例:


3.5.1 偏差


「偏差」是指在研究中可能导致偏离真实情况的因素。例如,在队列研究中,当疫苗接受者和未接受者存在人口统计学、经济学或健康状况等差异时,这些差异可能导致偏差出现。在疫苗研究中,可能存在的一些偏差包括:


  1. 「选择偏差」:这是指在样本选择过程中可能存在的选择依据和操作不充分、不合理,导致样本不具有代表性和可比性。
  2. 「记忆偏差」:这是指研究对象在疫苗接种前或后的感染情况、疾病严重程度、病程等方面的记忆存在偏差,从而影响了研究的可靠性。
  3. 「验证偏差」:这是指在疫苗研究过程中,可能存在的验证过程不可靠,导致观测结果不足或存在主观性。


3.5.2 影响因素


「影响因素」是指影响研究结论的各种因素。在疫苗研究中,存在一些可能影响研究结果的影响因素,例如:


  1. 「病毒基因型」:不同的病毒基因型会对疫苗接种效果产生不同的影响。
  2. 「疫苗使用历史」:对于疫苗接种过后的人群,他们以前接种过哪些疫苗或疫苗批次与所接种的新疫苗也可能会影响效果。
  3. 「疫苗生产质量」:与疫苗接种相比,疫苗质量可能导致更大的偏差影响和更大的数据偏差。


四、疫苗效果分析



4.1 疫苗效果评估的意义


  1. 疫苗效果评估是疫苗的质量控制和管理的必要手段。疫苗效果评估可以通过对接种疫苗前后的医学数据进行比较,确保疫苗符合预期,具有预防和控制传染病的有效性和安全性。
  2. 疫苗效果评估是防控传染病的重要手段。好的疫苗效果类型,可对防控传染病发挥重要的作用。例如,经过该评估的疾病预防和控制疫苗可以对流感和肺炎等传染病起到较好的预防和控制作用,可以降低人群感染速度,减轻医疗压力,保障公众的健康和福祉。
  3. 疫苗效果评估可以为后续疫苗研发和应用提供有力的科学依据。


通过疫苗效果评估,可以发现疫苗存在的问题,从而为后续疫苗研发和应用提供重要的科学依据,以便于根据实际情况优化疫苗的设计和应用策略


4.2 案例研究


4.2.1 数据预处理


library(dplyr)
library(tidyr)
library(mice)
library(magrittr)
library(ggplot2)
data <- read.csv("VAERSData.csv", stringsAsFactors = FALSE)
# 删除重复条目
data <- distinct(data)
# 删除带空值的项,这里是粗糙的处理
data <- na.omit(data)


4.2.2 基础分析


  1. 「计算每个年龄段的死亡率」
# <10,10-19岁,20-29岁,30-39岁,40-49岁,50-59岁,60岁及以上进行分组
data$age_group <- cut(data$AGE_YRS, breaks =c(10, 20, 30, 40, 50, 60, Inf),labels = c("10-19", "20-29", "30-39", "40-49", "50-59", "60+"))
# 计算每个年龄段的死亡率
death_rates_age <- data %>%
  filter(DIED == "Y") %>%
  group_by(age_group) %>%
  summarize(deaths = n()) %>%
  mutate(rate = deaths / sum(deaths) * 100)
# 将缺失数据修改为 "未知"
death_rates_age_new <- death_rates_age %>%
  mutate(age_group = ifelse(is.na(age_group), "未知", as.character(age_group))) %>%
  filter(!is.na(age_group)) 
# 绘制饼图
pie_chart <- ggplot(death_rates_age_new, 
                    aes(x = "", y = rate, fill = age_group)) +
  geom_bar(width = 1, stat = "identity") +
  scale_fill_brewer(palette = "Set1") +
  coord_polar(theta = "y", start = 0) +
  labs(title = "年龄段死亡率饼图", fill = "年龄段") +
  theme_void()
pie_chart



640.png

从图中看可以看出,死亡率在60岁以上年龄的发生概率显著高于其它年龄段。


  1. 「计算每个州的疫苗接种率」
# 通过 VAX_DATE 是否为空判断各州是否接种过疫苗
data <- data %>%
  mutate(vaccinated = ifelse(VAX_DATE=="", 0, 1))
# 将 STATE 中的空值设置为 "未知"
data$STATE[data$STATE==""] <- "未知"
# 生成临时数据框用于计算接种率
vaccine_rates_state <- data %>%
  group_by(STATE) %>%
  summarize(vaccination_rate = sum(vaccinated)/n()*100)
# 画图
ggplot(vaccine_rates_state, aes(x=STATE, y=vaccination_rate)) +
  geom_bar(stat="identity", fill="dodgerblue4") +
  theme_minimal() +
  labs(title="US State Immunization Rates", 
       subtitle="as of June 2023",
       x="State", y="Vaccination Rate (%)") +
  scale_y_continuous(labels = scales::percent_format())


结果展示,这里算的是参与统计的人数的接种率:


# A tibble: 58 × 2
   STATE vaccination_rate
   <chr>            <dbl>
 1 AK                95.8
 2 AL                93.7
 3 AR                94.6
 4 AS               100  
 5 AZ                94.0
 6 CA                92.9
 7 CO                97.4
 8 CT                91.9
 9 DC                81.2
10 DE                91.8
11 FL                93.0
12 FM               100  
13 GA                93.9
14 GU               100  
15 HI                96.1
16 IA                95.2
17 ID                93.2
18 IL                93.1
19 IN                94.5
20 KS                92.8
21 KY                76.5
22 LA                93.3
23 MA                88.9
24 MD                90.9
25 ME                93.4
26 MH               100  
27 MI                97.6
28 MN                95.7
29 MO                92.3
30 MS                92.5
31 MT                94.8
32 NC                91.7
33 ND                97.0
34 NE                98.8
35 NH                92.7
36 NJ                88.8
37 NM                94.7
38 NV                93.8
39 NY                94.3
40 OH                93.4
41 OK                94.4
42 OR                96.4
43 PA                92.5
44 PR                95.7
45 RI                92.4
46 SC                91.1
47 SD                90  
48 TN                97.7
49 TX                93.2
50 UT                96.1
51 VA                93.7
52 VI               100  
53 VT                98.6
54 WA                96.5
55 WI                96.3
56 WV                96.8
57 WY                95.3
58 未知              65.1


640.png

从图中可以看出每个州参与调查的人中接种率还是很高的


  1. 「计算疫苗接种前后在各个年龄段的不良反应风险」
# 计算每个事件的严重程度
data <- data %>% 
  mutate(severity = case_when(
    DIED == "Y" | HOSPITAL == "Y" ~ "Severe",
    TRUE ~ "Mild"))
# 计算接种前和接种后每个年龄组的不良反应率
before <- data %>% 
  filter(VAX_DATE == "") %>%
  group_by(age_group) %>% 
  summarize(adverse_rate = sum(DIED == "Y" | HOSPITAL == "Y") / n())
after <- data %>% 
  filter(VAX_DATE != "") %>%
  group_by(age_group) %>% 
  summarize(adverse_rate = sum(DIED == "Y" | HOSPITAL == "Y") / n())
# 添加type区分前后
before$type <- "Before"
after$type<- "After"
# 绘制不良反应率的分组条形图
ggplot(data = rbind(before, after), aes(x = age_group, y = adverse_rate, fill = type)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8), width = 0.8) +
  scale_fill_manual(values=c("#69b3a2", "#404080")) +
  labs(title = "Comparison of Adverse Reaction Rate Before and After Vaccination by Age Group", x = "Age Group", y = "Adverse Reaction Rate")

640.png


从图中可以看出,接种后相比于接种前出现严重症状的概率都有一定程度的下降,小于30岁的疫苗效果显著,30-60有一定程度的下降,但是60岁以上反而出现了反效果。


  1. 「疫苗预防率计算」
# 计算每个人是否接种过疫苗
data <- data %>%
  mutate(has_vaccine = ifelse(is.na(VAX_DATE) | is.na(AGE_YRS), 0, 1))
# 计算总疫苗接种人数
num_vaccinated <- data %>%
  summarize(num_vaccinated = sum(has_vaccine & !is.na(AGE_YRS)))
# 计算接种后未感染人数
vaccinated_not_infected <- nrow(subset(data, RECOVD == "Y" & has_vaccine == 1))
# 计算总疫苗预防率
prevention_rate <- (vaccinated_not_infected / num_vaccinated) * 100
prevention_rate
# 输出总疫苗预防率
#   num_vaccinated
# 1       29.97304


这里如果展开的话,可以分年龄段来看。然后就是疫苗的种类和厂商分别的疫苗预防率就会更为准确。这里只是演示吗,就不计算所有的了。


  1. 「多元逻辑回归模型分析疫苗安全性和不良反应的相关因素」
library(rms)
ddist <- datadist(data)
options(datadist = "ddist")
# 计算每个事件的严重程度
data <- data %>% 
  mutate(isServer = case_when(
    DIED == "Y" | HOSPITAL == "Y" ~ 1,
    TRUE ~ 0))
# 多元逻辑回归模型
model <- lrm(isServer ~ SEX + age_group + vaccinated, data = data)
summary(model)
# 画出列线图
nomo <- nomogram(model)
plot(nomo, cex.axis = 0.8)


结果展示:


Effects              Response : isServer 
 Factor                Low High Diff. Effect    S.E.     Lower 0.95 Upper 0.95
 vaccinated            0   1     1     0.301330 0.128210  0.050040   0.552620 
  Odds Ratio           0   1     1     1.351700       NA  1.051300   1.737800 
 SEX - M:F             1   2    NA     0.445180 0.026585  0.393070   0.497280 
  Odds Ratio           1   2    NA     1.560800       NA  1.481500   1.644200 
 SEX - U:F             1   3    NA    -2.234400 0.254570 -2.733400  -1.735500 
  Odds Ratio           1   3    NA     0.107050       NA  0.065000   0.176320 
 age_group - 10-19:60+ 6   1    NA    -2.612200 0.102020 -2.812100  -2.412200 
  Odds Ratio           6   1    NA     0.073376       NA  0.060078   0.089616 
 age_group - 20-29:60+ 6   2    NA    -1.702200 0.079601 -1.858200  -1.546100 
  Odds Ratio           6   2    NA     0.182290       NA  0.155960   0.213070 
 age_group - 30-39:60+ 6   3    NA    -1.626600 0.065043 -1.754000  -1.499100 
  Odds Ratio           6   3    NA     0.196610       NA  0.173070   0.223340 
 age_group - 40-49:60+ 6   4    NA    -1.172900 0.054518 -1.279800  -1.066100 
  Odds Ratio           6   4    NA     0.309460       NA  0.278100   0.344360 
 age_group - 50-59:60+ 6   5    NA    -0.823810 0.039500 -0.901230  -0.746390 
  Odds Ratio           6   5    NA     0.438760       NA  0.406070   0.474080

640.png


  1. 「生存分析」


library(survival)
library(survminer)
# 修改为日期格式
data$date <- as.Date(data$RECVDATE,"%m/%d/%y")
data$time <- days_since_2020 <- as.numeric(difftime(data$date, as.Date("2020-01-01"), units = "days"))
km_fit <- survfit(Surv(time, isServer) ~ vaccinated, data = data)
ggsurvplot(km_fit, data = data,risk.table = TRUE,
  ggtheme = theme_bw(),
  xlab = "days",
  tables.y.text=FALSE,legend.title="",
  fontsize=5,break.y.by=0.2,
  font.x = 15,
  font.y = 15,
  font.tickslab = 15,
  font.legend = 15,
  ylab='Event-free survival probability',
  legend = c(0.20,0.25),pval.coord = c(5,0.25),pval.size=5,
  pval.family="Times New Roman",palette = c("red","green"))


640.png


从图中可以看出,疫苗的结果还是很显著的。


4.3 疫苗效果评估的局限性


  1. 个人差异:人口学因素、遗传学和免疫状态等因素都影响着个体对疫苗的反应,这些个人因素可能引起疫苗效果的差异。
  2. 疫苗接种人群选取方式和特点:由于疫苗接种群体的不同,疫苗接种者的年龄、性别、基础疾病等情况也有所不同,这些因素可能影响疫苗效果的评估结果。
  3. 疫苗的“游离”效果:疫苗接种者还可能面临疫苗病毒突变或替代病毒感染的风险,这些因素也会影响疫苗效果的评估。
  4. 疫苗保护的时效限制:疫苗接种后,保护能力并不是永久的,随着时间的推移,疫苗的效力会逐渐下降,并可能需要再次接种疫苗或使用其他防控手段。
  5. 部分症状不明显的感染者难以检测:有时候疫苗效果评估可能由于感染者难以检测或感染者只有轻微症状,从而导致疫苗效果的低估或高估。


五、结论



本文介绍了疫苗相对效应和疫苗预防率等指标的概念、测量方法和评估方法,以及如何设计疫苗效果研究和控制偏差和影响因素。我们还介绍了疫苗效果评估的重要性和应用,以及研究结果的局限性和未来研究方向。总之,本文旨在帮助读者更好地了解疫苗效果分析和研究评估的方法和实践。

目录
相关文章
|
10月前
|
存储 项目管理 数据库
临床检验信息系统:实现检验结果数据的自动采集、自动控制及综合统计分析
一个能实现检验信息电子化、检验信息管理自动化的网络系统,其主要功能是将检验的实验仪器传出的检验数据经分析后,生成检验报告,通过网络存储在数据库中,使医生能够方便、及时的看到患者的检验结果。
|
14天前
R语言生存分析: 时变竞争风险模型分析淋巴瘤患者
R语言生存分析: 时变竞争风险模型分析淋巴瘤患者
17 1
R语言生存分析: 时变竞争风险模型分析淋巴瘤患者
|
2月前
|
机器学习/深度学习 搜索推荐 算法
改变癌症诊断!梯度提升方法可准确预测癌症患者的生存风险!
改变癌症诊断!梯度提升方法可准确预测癌症患者的生存风险!
22 0
|
3月前
|
搜索推荐 大数据
年底突发舆情风险的排查与分析的方法措施
在特殊时期如年底,舆情风险更加显著。因此,对于政企单位来说,如何进行年底突发舆情风险的排查与分析是其需要关注的重要问题。接下来,本文就具体来为各位说说关于年底突发舆情风险的排查与分析怎么做好?
25 0
|
11月前
|
存储
3293. 风险人群筛查
3293. 风险人群筛查
64 0
基于文本挖掘的企业隐患排查质量分析模型(下)
基于文本挖掘的企业隐患排查质量分析模型(下)
70 0
基于文本挖掘的企业隐患排查质量分析模型(下)
|
数据采集 JSON 移动开发
基于文本挖掘的企业隐患排查质量分析模型(上)
基于文本挖掘的企业隐患排查质量分析模型(上)
476 0
基于文本挖掘的企业隐患排查质量分析模型(上)
|
人工智能 大数据 云计算
测试-风险甄别
测试-风险甄别
|
C++
202009-2风险人群筛查
202009-2风险人群筛查
95 0
202009-2风险人群筛查
程序人生 - 预防宫颈癌的 HPV 疫苗到底怎么打?
程序人生 - 预防宫颈癌的 HPV 疫苗到底怎么打?
95 0
程序人生 - 预防宫颈癌的 HPV 疫苗到底怎么打?