进行单组率的meta分析,需要的数据为:每个原始研究的率及其标准误。因此,首先需要根据现有数据计算出每个原始研究的率及其标准误,然后再进行meta分析。
一个例子:(资料来自于医咖会)
#导入数据很简单,粘贴一下就可以了
gen rate=groupaevent/groupatotal
gen ser=sqrt(rate*(1-rate)/groupatotal)
metan rate ser, random
我是觉得左边太空,如果哪位大佬知道怎么把名字和年份加上去,麻烦告诉我下~谢谢
这两个版本自带meta分析功能,数据计算后鼠标操作即可
**用的数据如下:**Study代表研究,total代表样本量,event代表事件数
首先我们要计算率和率的标准误:
率§的计算公式是:事件数/样本量
gen rate=event/total
注:gen代表生成一个变量,这里代表生成一个叫“rate”的变量。
率§标准误的计算公式是(这里n代表的是样本量):
在stata里输入以下命令:
gen serate=sqrt(rate\*(1-rate)/total)
然后我们点击统计→Meta分析,打开Meta分析菜单,然后进行Meta分析基本设置,按照以下进行勾选,效应量选择rata,标准误差选择serate
然后点击提交。
在森林图选项里,选择随机效应模型,森林图设置里面可以把绘图选项设置下绘制参考线,其他都用默认。
点击提交后就会出现汇总的结果和森林图
install.package('meta')
library('meta')
data<-read.csv('D:/R learning/totalrate.csv',sep=",",header=TRUE)
View(data)
单个率资料的Meta分析要求率的分布应该尽量服从正态分布,如原始率不服从正态分布,如原始率不服从正态分布,可经过转换使其服从或接近正态分布,从而提高合并结果的可靠性。
命令metaprop()进提供了5种样本率的估计方法,根据样本率的分布决定使用哪种合并方法,五种估计方法如下:“PRAW”(没有转换的原始率), “PLN”(对数转换), “PLOGIT”(logit转换), “PAS”(反正弦转换),“PFT”(Freeman-Tukey双重反正弦转换), 在进行Meta分析之前,对原始率及按四种估计方法进行转换后的率进行正态性检验,根据检验结果选择最接近正态分布的方法。
rate<-transform(data,p=Events/Total)
#在数据集data,产生率(没有经过转化)
shapiro.test(rate$p)
对其余四种方法也方法进行转换,选择最接近正态分布的方法:
rate<-transform(data,log=log(Events/Total))
shapiro.test(rate$log)
rate<-transform(data,logit=log((Events/Total)/(1-Events/Total)))
shapiro.test(rate$logit)
rate<-transform(data,arcsin.size=asin(sqrt(Events/(Total+1))))
shapiro.test(rate$arcsin)
rate<-transform(data,darcsin=0.5*(asin(sqrt(Events/(Total+1)))+asin((sqrt(Events+1)/(Total+1)))))
shapiro.test(rate$darcsin)
结果显示,对数转换, logit转换, 反正弦转换, Freeman-Tukey双重反正弦转换的正态性的结果分别是W = 0.85063, P =0.01392; W = 0.816, P = 0.004478; W =0.7677, P = 0.001046; W = 0.7787, P = 0.001439, 综上,我们选择反对数转换(PLN),读者可以试着选择其他的转换类型, 然后通过比较异质性的大小,选择一个合适的类型。
meta1<-metaprop(Events,Total,data=data,studlab=paste(study),sm="PLN")
meta1
结果现实,异质性检验I^2 = 75.0%,认为有统计学意义上的异质性,选用随机效应模型
forest(meta1)