单一率Meta分析的Matlab软件实现*
2014-04-03吴桂云高月霞李奕辰陈德喜
肖 静 吴桂云 高月霞 沈 毅 李奕辰 陈德喜 蔡 辉△
Meta分析是对以往的研究结果进行系统定量综合的统计学方法[1]。近年来,随着循证医学的迅速兴起,Meta分析研究的结论在有关疾病或医学健康问题的防治、治疗等方面越来越受到重视[2]。其中单一率资料的Meta分析是一种只提供人群总人数和事件发生人数,不同于其它有对照人群的Meta分析,大多为患病率、检出率、病死率和感染率等[3],属于横断面研究,是揭示暴露与疾病关系不可或缺的,因此基于计算机的实现是很有必要的[4]。本文运用实例数据基于Matlab软件编写了Meta分析以及发表偏倚和异质性检验实现的相关程序,供读者参考。
实例分析
数据来自英国莱切斯特大学Eaden等[5]对大肠溃疡患者发生结直肠癌风险的Meta分析,摘录年龄组为11~12岁,数据见表1。

表1 患大肠溃疡人群发生结直肠癌风险Meta分析数据(部分)
1.Matlab程序实现过程:
(1)建立数据集并计算各研究效应量:
clear all;
clc;
s=[8 54
12 2295
9 429
……];%录入数据,第一列为各个研究事件发生例数,第二列为各个研究总个体数。
r=s(:,1)./s(:,2);%取出s矩阵中的第一列除以第二列,计算各个研究事件的发生率ri。
a=s(:,1);%定义s矩阵中第一列为ai。
n=s(:,2);%定义s矩阵中第二列数据为ni。

Dr=exp(log(r)-1.96*se);%计算各个研究发生率95%的下限,注意Matlab软件中log表示ln。
Ur=exp(log(r)+1.96*se);%计算各个研究发生率95%的上限。
w=1./se.^2;%各个研究的权重。

Dhr=exp(log(hr)-1.96*sehr);
Uhr=exp(log(hr)+1.96*sehr);
Q=sum(w.*(log(r)-log(hr)).^2);%Q检验。
k=size(s,1);
Qp=1-chi2cdf(Q,k-1);%计算Q检验的p值。
I2=(Q-(k-1))/Q*100;%计算I2统计量。
If I2<0
I2=0;
杨琳说,以前朋友的老公。以前朋友是指欧阳橘红。听杨琳这一说,一种从来不曾有的温暖,流入他的心中。老天爷不睁开眼睛看一看,这样的好人,为什么偏偏得这种恶病?
