metacor程序包是一款基于經典頻率學理論研發的專用于在R框架下執行相關系數Meta分析的程序包。該程序包于2011年正式推出,可直接將相關系數作為效應量進行合并,采用的方法為DerSimonian-Laird法和Olkin-Pratt法。metacor程序包可以繪制森林圖,操作簡單易行,但仍有需要完善的地方。本文通過實例演示,介紹R軟件metacor程序包實現相關系數Meta分析的方法。
引用本文: 魏雪梅, 李妙竹, 靳英輝, 陳昊, 曾憲濤, 張永剛. 應用R軟件metacor程序包實現相關系數的Meta分析. 中國循證醫學雜志, 2015, 15(8): 980-983. doi: 10.7507/1672-2531.20150163 復制
相關系數(correlation coefficient)是研究變量之間線性相關程度的量,常用字母r表示。基于相關系數的Meta分析在家禽科學、社會管理學、教育學、經濟學、心理學及護理學等領域正日益增多,已成為Meta分析的一種重要類型 [1-8]。為實現基于r值的Meta分析,早期通過公式將r值轉換為其他值,如均數與標準差、fisher's Z值與標準誤(standard error,SE)后使用軟件合并,再轉換為r值。這樣需要Meta分析制作者有較強的統計學功底,且在轉換的過程中容易出錯。為了便捷地實現此類Meta分析,Etienne Laliberté研發了一款R軟件專用程序包metacor(meta-analysis of correlation coefficients)。metacor程序包中包含了與相關系數數據Meta分析相關的多個函數,可以直接實現r值的合并,本文通過實例展示該程序包的使用方法。
1 程序包簡介
metacor程序包最近更新時間為2011年3月21日,最新版本為1.0-2。相關資料可從http://cran.r-project.org/web/packages/metacor/獲取。metacor包設置了兩種方法來對不同研究中的相關系數進行Meta分析。兩種方法分別為DerSimonian-Laird(DSL)方法和Olkin-Pratt(OP)方法。關于兩種方法的原理和細節,可以參考《Meta-analysis: a comparison of approaches》一書 [
基于這兩種方法,metacor包中分別包括了如下兩個函數:① 函數metacor.DSL(),實現了針對相關系數和效應量計算的DerSimonian-Laird(DSL)方法;② 函數metacor.OP(),實現了針對相關系數和效應量計算的Olkin-Pratt(OP)方法。
2 程序包安裝及加載
如同R其他程序包 [10-20]一樣,使用前需先行安裝及加載該程序包。本文使用的為R 3.2.0版本。metacor程序包的安裝方法有3種:
(1)運行R軟件,依次點擊菜單欄“程序包 → 安裝程序包 → CRAN mirror (如China (Beijing 2) )→ Packages (metacor)”,雙擊等候即可完成程序包的安裝。等候時間根據個人電腦網速不同而有所不同。
(2)先行通過官網下載“Package source”下方的“metacor_1.0-2.tar.gz”到個人電腦,然后運行R軟件,依次點擊菜單欄“程序包 → 從本地Zip文件安裝程序包”,在彈出的對話框中找到保存的“metacor_1.0-2.tar.gz”,選中并點擊“打開”,即可完成安裝。
(3)使用下述命令安裝:
install.packages("metacor")。
安裝完畢后,通過下述命令完成加載:
library(metacor)
同時,安裝metacor程序包時會自動安裝“rmeta”、“grid”、“gsl”這3個配套的程序包。該3個程序包在加載metacor包時亦會自動加載,若自動加載不成功,則需使用下述命令進行加載:
library(rmeta)
library(grid)
library(gsl)
需要說明的是,若使用較低版本的R軟件,還需要先行安裝上述3個加載的程序包后再行加載,安裝的3種方法同上述。
3 數據加載
本文以《基于Pearson相關系數的老年人社會支持與心理健康相關性研究的Meta分析》一文 [8]中的“客觀支持與軀體化因子”結局指標數據為例進行展示。該例文是將相關系數轉換為fisher's Z值與SE后進行合并,再轉換為r值。本文直接從納入研究中提取了r值與樣本量,以及例文的fisher's Z值和SE值,見表 1所示。

上述數據排列完成后,命名為“R.xlsx”文件儲存在桌面的“Rwork”文件夾中。文件夾及文件的名稱、類型(如可以選擇“R.txt”格式)及儲存位置均可由操作者自行設置。
因本文選擇了“.xlsx”格式,故加載前還需安裝及加載xlsx程序包,命令如下:
install.packages("xlsx")
library(xlsx)
完成后就可以進行數據的加載了,具體命令如下:
dat<-read.xlsx("C:\\Users\\ Administrator \\Desktop\\R.xlsx",1)
dat
加載后的數據同表 1。
當數據比較少時,建議直接使用R軟件采用數據框的格式將數據輸入。手工鍵入的方式較為直觀,但操作相對繁瑣,對于大型數據錄入不建議使用。因Excel為常用的數據整理工具,為方便讀者學習,本文為展示如何從Excel中加載數據而選擇了上述方式。數據框的創建方法為使用“data.frame()”命令來建立數據集后,再打開數據編輯器即可實現。
4 數據分析及圖形繪制
4.1 采用DerSimonian-Laird法實現
使用DSL法實現的R代碼如下:
ana = metacor.DSL(dat$R,dat$N,dat$Study)
ana
命令執行后,自動彈出森林圖和數據分析結果。圖形見圖 1,數據分析結果見表 2。


由表 2可見,合并的相關系數為-0.199 150 4,可信區間的下限為-0.154 505 9,上限為-0.242 983 3,Z檢驗的P值為4.634 261e-18,這表明合并后的相關性是顯著的。
4.2 采用Olkin-Pratt法實現
類似的分析也可以使用OP法實現。在這里我們不繪制森林圖,通過指定參數“plot = FALSE”(注:默認值為“plot = TRUE”,即默認繪制森林圖,默認時可不需要在命令中出現)。OP法不輸出森林圖的R代碼如下:
ana = metacor.OP(dat$R,dat$N,dat$Study,plot = FALSE)
ana
命令執行后的結果如表 3所示。
如同DSL法,表 3中前半部分為每個研究對應的r值、r值的方差及可信區間,后半部分為Meta分析對相關系數的合并結果。由表 3可見,合并的相關系數為-0.199 354 9,可信區間的下限為-0.155 189 9,上限為-0.243 519 9,Z檢驗的P值為4.494 294e-19,表明合并后的相關性是顯著的。

5 結語
本文展示的是直接從納入研究中提取r值的情況。在實際開展此類Meta分析時,我們會發現有些研究直接報告了r值,但有些是來自t檢驗的t值、P值或Cohen's d值等數據,或者是均數及其標準差 [
本文基于metacor程序包的兩種方法的結果相似,保留兩位小數后均為-0.20[95%CI(-0.24,-0.15)],與例文相近。需要注意的是,因r值的正負號不是表明數值的正負,而是表明相關性的正負,metacor程序包在計算單項研究及合并r值的可信區間時,未能區分可信區間的方向,故當為負相關時,需要使用者自行將可信區間的上下限互換位置,如本文的例子。再者,DSL法是基于隨機效應模型實現Meta分析,而OP法則是基于固定效應模型實現Meta分析。
另外,可以發現metacor程序包的功能尚需進一步優化。當前的功能存在一定的局限性,如不能進行發表偏倚和異質性檢測等。當然,R具有強大的功能及廣泛的數據庫,發表偏倚可以通過其他命令來實現。相信這些功能會隨著metacor程序包的更新而得到完善。整體而言,metacor軟件操作簡便,能夠滿足基本的相關系數數據的Meta分析的需求,適合初學者。
相關系數(correlation coefficient)是研究變量之間線性相關程度的量,常用字母r表示。基于相關系數的Meta分析在家禽科學、社會管理學、教育學、經濟學、心理學及護理學等領域正日益增多,已成為Meta分析的一種重要類型 [1-8]。為實現基于r值的Meta分析,早期通過公式將r值轉換為其他值,如均數與標準差、fisher's Z值與標準誤(standard error,SE)后使用軟件合并,再轉換為r值。這樣需要Meta分析制作者有較強的統計學功底,且在轉換的過程中容易出錯。為了便捷地實現此類Meta分析,Etienne Laliberté研發了一款R軟件專用程序包metacor(meta-analysis of correlation coefficients)。metacor程序包中包含了與相關系數數據Meta分析相關的多個函數,可以直接實現r值的合并,本文通過實例展示該程序包的使用方法。
1 程序包簡介
metacor程序包最近更新時間為2011年3月21日,最新版本為1.0-2。相關資料可從http://cran.r-project.org/web/packages/metacor/獲取。metacor包設置了兩種方法來對不同研究中的相關系數進行Meta分析。兩種方法分別為DerSimonian-Laird(DSL)方法和Olkin-Pratt(OP)方法。關于兩種方法的原理和細節,可以參考《Meta-analysis: a comparison of approaches》一書 [
基于這兩種方法,metacor包中分別包括了如下兩個函數:① 函數metacor.DSL(),實現了針對相關系數和效應量計算的DerSimonian-Laird(DSL)方法;② 函數metacor.OP(),實現了針對相關系數和效應量計算的Olkin-Pratt(OP)方法。
2 程序包安裝及加載
如同R其他程序包 [10-20]一樣,使用前需先行安裝及加載該程序包。本文使用的為R 3.2.0版本。metacor程序包的安裝方法有3種:
(1)運行R軟件,依次點擊菜單欄“程序包 → 安裝程序包 → CRAN mirror (如China (Beijing 2) )→ Packages (metacor)”,雙擊等候即可完成程序包的安裝。等候時間根據個人電腦網速不同而有所不同。
(2)先行通過官網下載“Package source”下方的“metacor_1.0-2.tar.gz”到個人電腦,然后運行R軟件,依次點擊菜單欄“程序包 → 從本地Zip文件安裝程序包”,在彈出的對話框中找到保存的“metacor_1.0-2.tar.gz”,選中并點擊“打開”,即可完成安裝。
(3)使用下述命令安裝:
install.packages("metacor")。
安裝完畢后,通過下述命令完成加載:
library(metacor)
同時,安裝metacor程序包時會自動安裝“rmeta”、“grid”、“gsl”這3個配套的程序包。該3個程序包在加載metacor包時亦會自動加載,若自動加載不成功,則需使用下述命令進行加載:
library(rmeta)
library(grid)
library(gsl)
需要說明的是,若使用較低版本的R軟件,還需要先行安裝上述3個加載的程序包后再行加載,安裝的3種方法同上述。
3 數據加載
本文以《基于Pearson相關系數的老年人社會支持與心理健康相關性研究的Meta分析》一文 [8]中的“客觀支持與軀體化因子”結局指標數據為例進行展示。該例文是將相關系數轉換為fisher's Z值與SE后進行合并,再轉換為r值。本文直接從納入研究中提取了r值與樣本量,以及例文的fisher's Z值和SE值,見表 1所示。

上述數據排列完成后,命名為“R.xlsx”文件儲存在桌面的“Rwork”文件夾中。文件夾及文件的名稱、類型(如可以選擇“R.txt”格式)及儲存位置均可由操作者自行設置。
因本文選擇了“.xlsx”格式,故加載前還需安裝及加載xlsx程序包,命令如下:
install.packages("xlsx")
library(xlsx)
完成后就可以進行數據的加載了,具體命令如下:
dat<-read.xlsx("C:\\Users\\ Administrator \\Desktop\\R.xlsx",1)
dat
加載后的數據同表 1。
當數據比較少時,建議直接使用R軟件采用數據框的格式將數據輸入。手工鍵入的方式較為直觀,但操作相對繁瑣,對于大型數據錄入不建議使用。因Excel為常用的數據整理工具,為方便讀者學習,本文為展示如何從Excel中加載數據而選擇了上述方式。數據框的創建方法為使用“data.frame()”命令來建立數據集后,再打開數據編輯器即可實現。
4 數據分析及圖形繪制
4.1 采用DerSimonian-Laird法實現
使用DSL法實現的R代碼如下:
ana = metacor.DSL(dat$R,dat$N,dat$Study)
ana
命令執行后,自動彈出森林圖和數據分析結果。圖形見圖 1,數據分析結果見表 2。


由表 2可見,合并的相關系數為-0.199 150 4,可信區間的下限為-0.154 505 9,上限為-0.242 983 3,Z檢驗的P值為4.634 261e-18,這表明合并后的相關性是顯著的。
4.2 采用Olkin-Pratt法實現
類似的分析也可以使用OP法實現。在這里我們不繪制森林圖,通過指定參數“plot = FALSE”(注:默認值為“plot = TRUE”,即默認繪制森林圖,默認時可不需要在命令中出現)。OP法不輸出森林圖的R代碼如下:
ana = metacor.OP(dat$R,dat$N,dat$Study,plot = FALSE)
ana
命令執行后的結果如表 3所示。
如同DSL法,表 3中前半部分為每個研究對應的r值、r值的方差及可信區間,后半部分為Meta分析對相關系數的合并結果。由表 3可見,合并的相關系數為-0.199 354 9,可信區間的下限為-0.155 189 9,上限為-0.243 519 9,Z檢驗的P值為4.494 294e-19,表明合并后的相關性是顯著的。

5 結語
本文展示的是直接從納入研究中提取r值的情況。在實際開展此類Meta分析時,我們會發現有些研究直接報告了r值,但有些是來自t檢驗的t值、P值或Cohen's d值等數據,或者是均數及其標準差 [
本文基于metacor程序包的兩種方法的結果相似,保留兩位小數后均為-0.20[95%CI(-0.24,-0.15)],與例文相近。需要注意的是,因r值的正負號不是表明數值的正負,而是表明相關性的正負,metacor程序包在計算單項研究及合并r值的可信區間時,未能區分可信區間的方向,故當為負相關時,需要使用者自行將可信區間的上下限互換位置,如本文的例子。再者,DSL法是基于隨機效應模型實現Meta分析,而OP法則是基于固定效應模型實現Meta分析。
另外,可以發現metacor程序包的功能尚需進一步優化。當前的功能存在一定的局限性,如不能進行發表偏倚和異質性檢測等。當然,R具有強大的功能及廣泛的數據庫,發表偏倚可以通過其他命令來實現。相信這些功能會隨著metacor程序包的更新而得到完善。整體而言,metacor軟件操作簡便,能夠滿足基本的相關系數數據的Meta分析的需求,適合初學者。