r语言双因素方差分析(什么是人群归因分数Population)

今天在论文中看到个这么一个术语Population Attributable Fraction,中文叫人群归因分数,意思是暴露如果被取消,某个结局减少的比例,比如我知道了孤独感对抑郁有影响,计算PAF可以得出,如果孤独感被干预,抑郁人群比例会下降多少:

PAF; the proportionof cases of depression that could be prevented if the influence of loneliness was removed

这么一个指标在经济评价的文章也有见过,就是我预防了人群某个风险因素之后我能为国家省多少医疗支出。

写研究意义的用得上哦。

今天就给大家介绍一下这个指标:

人群归因分数初识

这个指标也叫做人群归因比Population Attributable Proportion或者归因比Attributable Proportion Among the Total Population

(Also called the Population Attributable Proportion or Attributable Proportion Among the Total Population)

PAF是一个评估暴露的人群作用的非常常见的流行病学指标,表达的意思是如果某个暴露取消,结局会减少的百分比。

PAF is the estimated fraction of all cases that would not have occurred if there had been no exposure

这个指标基本的原理就是用可以归因为暴露的病例数,除以总的病例数(O)。

可以归因为暴露的病例数则计算为总病例数(O)减去不能归因暴露的病例数(E)

所以总的PAF的理论表达就是(O − E)/O

where O and E refer to the observed number of cases and the expected number of cases under no exposure, respectively

对于一个前瞻性队列研究,我们先看下面的表格,把上面的思路走一遍:

r语言双因素方差分析(什么是人群归因分数Population)(1)

1400个人得病的人(O),其中900个有暴露,500个没有暴露,所以我们只有500/1,400 = 0.357,也就是35.7%的得病可以归因为这个暴露。

上面的描述很简单,但是我们到此可以说如果我们将人群的暴露取消掉,原来的35.7%的人就不会得病了嘛?

仔细想想,也不对。因为人群中就算没有这个暴露也依然会发病的,这个叫would be if not exposed. 所以上面斜体部分描述的思路过程都是错误的,它并没有考虑清楚什么是不能归因为暴露的病例数(E)。

那么这个E怎么算呢?应该是没这个暴露也会发病的数900除以没暴露的总人数90000再乘以10000=100

就是说其实是有100人是没暴露也会发病的,所以这100人发病并非是暴露的作用,我们得扣掉它,剩下400,可以归因到这个具体的暴露:

r语言双因素方差分析(什么是人群归因分数Population)(2)

所以我们的其实是400人可以归因,那么PAF=1400-(1400-400)/1400=0.286,最终我们得到28.6%患抑郁是因为孤独这个因素。这个28.6%就是暴露的人群归因分数。

上面的过程都是帮助大家理解的自我推导。

接下来我们给出PAF在前瞻性研究中的计算公式如下:

Population Attributable Fraction (PAF) = (proportion of cases exposed) x (attributable proportion in the exposed)

或者:

r语言双因素方差分析(什么是人群归因分数Population)(3)

在上面的公式中,Ppop 为总人群暴露率,RR是风险比。

总人口暴露率在我们刚刚的例子中就是10000/100000=0.1

风险比就是两个风险的比,暴露组风险比上非暴露组风险,在我们的例子中就是500/10000=0.05比上非暴露组风险900/90000=0.01,然后风险比就是5.

然后我们套公式可以得到PAF=(0.1*4)/((0.1*4) 1)=0.286

可以看到我们的结果都是一样的。

上面介绍了RR与PAF,RR是我们知道暴露与否,是在前瞻性研究中的一个指标,接下来看OR与PAF

OR值与PAF

写之前还是再给大家补充下,有时候你会遇到PAR人群归因风险,这个和PAF也是一个东西

r语言双因素方差分析(什么是人群归因分数Population)(4)

依然是给大家一个回顾性研究的四格表,此时我们是先知道结局:

r语言双因素方差分析(什么是人群归因分数Population)(5)

我们的OR就是两个比值的比比值就是暴露比值

对于上表来说我们的结局为YES组的暴露比值为(a/(a b)) ÷ (b/(a b)) = a/b;结局为NO的暴露比值为(c/(c d)) ÷ (d/(c d)) = c/d

然后,两个比值的比OR就为(a/b)/(c/d)=ad/bc

我们是先知道结局才能算的OR,OR是回顾性研究的指标

上面的知识点仅供大家复习,当我我们的结局比较罕见的时候,RR OR HR都是可以通用的所以PAF的计算也是如上述公式。

We can use valid estimates of hazard ratio (or rate ratio) from cohort studies or odds ratio from case-control studies instead of RR in the Miettinen PAF formula if the outcome is uncommon.

OR和RR的区别与联系

RR来评价暴露组研究对象的发病风险是非暴露组研究对象的多少倍?这个“多少倍” 就是RR。是前瞻性研究的指标。

比值比(Odds Ratio, OR)是在回顾性研究中评价暴露因素和疾病的关联强度的指标,评价的是发病与不发病两组暴露的比,同样可以说明暴露的影响。解释也和RR类似。

并且,在横断面研究中OR可以近似RR

The relative risk is often approximated by the odds ratio e.g. in cross-sectional studies.

刚刚也说到RR OR HR都是可以通用的,所以PAF的计算也是如上述公式,这儿有个前提条件就是结局比较罕见或者说结局的发生率比较低。

我们还是来看个具体例子,依然是个表格

r语言双因素方差分析(什么是人群归因分数Population)(6)

对于上表,我们有:

RR = (20/1000) ÷ (10/1000) = 2

OR= (20×990) ÷ (10×980) = 2.02

因为此时的结局发生率只有30/2000=0.015,很小,所以RR和OR确实是不差多少的。

再看一个结局发生率比较高的:

r语言双因素方差分析(什么是人群归因分数Population)(7)

此时我们有:

RR = (500/1000) ÷ (250/1000) = 2

OR = (500×750) ÷ (250×500) = 3

RR和OR展示了巨大的差异,就是因为结局的发生率有点高了,达到了750/2000=0.375.

所以我们只有在结局比较罕见或者说结局的发生率比较低的时候才能用OR估计RR从而得到PAF。

如何使用R计算PAF

上面的介绍都是用的4格表在介绍原理,真正的研究中我们还会控制各种因素后得到OR值,此时的PAF计算又需要重新考虑了。

比如对于一个二分类结局变量我们要做PAF用到的函数就是Af.cs。

Af.cs estimates the attributable fraction for a binary outcome Y under the hypothetical scenario where a binary exposure X is eliminated from the population. The estimate is adjusted for confounders Z by logistic regression (glm). Let the AF be defined as

AF = 1 - Pr(Y0 = 1) / Pr(Y = 1)

where Pr(Y0 = 1) denotes the counterfactual probability of the outcome

我现在有如下数据集,一个因变量Y,一个自变量X和协变量Z:

r语言双因素方差分析(什么是人群归因分数Population)(8)

直接给出模型公式,指定好暴露变量就可以得到该暴露的PAF,具体代码如下:

AF.cs_est <- AF.cs(formula = Y ~ X Z X * Z, data = data, exposure = "X") summary(AF.cs_est)

输出结果如下图:

r语言双因素方差分析(什么是人群归因分数Population)(9)

也就是说在我的数据集中,如果去掉X这个暴露,就会减少大概18%的Y的发生。

小结

今天给大家写了PAF的意义和计算方法,顺带回顾了RR和OR的区别联系,希望可以给大家以启发。感谢大家耐心看完,自己的文章都写的很细,代码都在原文中,希望大家都可以自己做一做,请转发本文到朋友圈后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先收藏,再点赞分享。

也欢迎大家的意见和建议,大家想了解什么统计方法都可以在文章下留言,说不定我看见了就会给你写教程哦,另欢迎私信。

如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、模型构建等发愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何问题,都可以联系我。因为我可以给您提供最好的,最详细和耐心的数据分析服务。

如果你对Z检验,t检验,方差分析,多元方差分析,回归,卡方检验,相关,多水平模型,结构方程模型,中介调节,量表信效度等等统计技巧有任何问题,请私信我,获取详细和耐心的指导。

If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #Reports, #Composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.

Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??

往期精彩

R数据分析:用R语言做潜类别分析LCA

R数据分析:ROC曲线与模型评价实例

R数据分析:用R语言做meta分析

R数据分析:贝叶斯定理的R语言模拟

R数据分析:如何用R做验证性因子分析及画图,实例操练

R数据分析:有调节的中介

R数据分析:如何用R做多重插补,实例操练

R数据分析:tidyverse中常用的解析函数总结

R数据分析:倾向性评分匹配完整实例(R实现)

R数据分析:手把手教你画列线图(Nomogram)及解读结果

R数据分析:多分类逻辑回归

R文本挖掘:社会网络分析

R文本挖掘:中文词云生成,以2021新年贺词为例

R文本挖掘:中文文本聚类

R数据分析:混合效应模型实例

R文本挖掘:文本聚类分析

R数据分析:逐步回归的做法和原理,案例剖析

R数据分析:非专业解说潜变量增长模型

R文本挖掘:词云图怎么做,worldcloud2初识

R数据分析:中介效应的做法

R数据分析:随机截距交叉滞后RI-CLPM与传统交叉滞后CLPM

R数据分析:中介作用与调节作用的分析与解释

R数据分析:多元逻辑斯蒂回归的做法

R数据分析:线性回归的做法和优化实例

R数据分析:层次聚类实操和解析,一看就会哦

R数据分析:交叉滞后模型非专业解释

R数据分析:如何做潜在剖面分析Mplus

R数据分析:生存分析的做法与解释续

R数据分析:主成分分析及可视化

R数据分析:资料缺失值的常见处理方法

R数据分析:竞争风险模型的做法和解释二

R数据分析:论文中的轨迹的做法,潜增长模型和增长混合模型

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页