王琪,胡良平,關雪,柳偉偉
·講座·
如何用SAS軟件正確分析生物醫學科研資料XVIII.R×C列聯表資料的統計分析與SAS軟件實現(一)
王琪,胡良平,關雪,柳偉偉
編者按
生物統計學是生物學領域科學研究和實際工作中必不可少的工具,在分子生物學迅速發展的今天,生物統計學更顯示出了它的重要性。實驗設計與數據統計分析是現代生物學的基石,是生物學研究者檢驗假說、尋找模式、建立生物學理論的有利工具,也是生物學研究者探索微觀和宏觀生物世界的必備基礎知識。對于每天甚至是每時每刻涌現的大量的、以天文數字計量的分子遺傳數據,必須借助統計學知識加以分析處理,才能從中獲得有意義的信息。“生物多樣性數據分析”是開展生物多樣性研究的一個重要方面,數據分析能力的高低極大地影響著我們對各種生態學現象認識的深度和廣度。現在,電子計算機的普及使得生物統計分析過程大大簡化,生物統計分析軟件包的普及將生物統計學從統計學家的書本里解放了出來,簡化了生物統計分析過程,使之成為生物學研究者的常用工具。本刊特邀軍事醫學科學院生物醫學統計學咨詢中心主任胡良平教授,以“如何用 SAS 軟件正確分析生物醫學科研資料”為題,撰寫系列統計學講座,希望該系列講座能對生物醫學科研工作者有所幫助。
R × C 列聯表資料可以分為雙向無序的R×C 列聯表資料、結果變量為有序變量的單向有序 R × C 列聯表資料、雙向有序且屬性相同的 R × C 列聯表資料和雙向有序且屬性不同的 R × C 列聯表資料等 4 類。本文將詳細介紹前兩類 R × C 表資料及其用 SAS 軟件實現統計分析的全部內容。
雙向無序的 R × C 列聯表資料是指在二維列聯表中,兩個定性變量都是名義變量,并且這兩個名義變量分別有R 個和 C 個(R 和 C 分別代表列聯表的行數和列數,它們均為大于 2 的整數)取值,由此排列而成的 R × C 表稱為雙向無序的 R × C 列聯表資料。當理論頻數小于 5 的格子數未超過總格子數的 1/5 時,用一般卡方檢驗;否則,用 Fisher 精確檢驗處理該類資料[1]。以下將通過實例向讀者介紹如何用 SAS 軟件處理雙向無序的 R × C 列聯表資料。

表1 不同惡性血液病患者真菌感染發生的部位
【例 1】目前惡性血液病患者的主要治療方法包括放化療、免疫抑制劑治療等,這些治療方式會導致患者發生真菌感染。某臨床醫生對此做了回顧性調查研究,以分析不同血液病患者真菌感染部位是否相同,調查結果見表 1,試對表 1 進行合理的統計分析。
分析與解答:本例是一個單因素多水平設計定性資料,原因變量“疾病種類”有 4 個水平,結果變量“感染部位”有 3 個水平,兩個變量都是多值名義變量,此時可采用卡方檢驗或 Fisher 精確檢驗對該資料進行統計分析,以分析不同疾病的患者感染部位分布情況是否相同。以下介紹如何用 SAS 程序的 FREQ 過程分析雙向無序 R × C 列聯表資料。SAS 程序如下,設程序名為 li1.sas。

程序說明:程序中第一步建立名為 a1 的數據集,a 表示疾病種類,分為 4 個水平,b 表示感染部位,分為 3 個水平,f 表示頻數。第二步是過程步,調用 FREQ 過程進行卡方檢驗,weight 語句指定頻數變量為 f,tables 語句指定用于生成二維列聯表,“/”后的選項 chisq 表示進行卡方檢驗。
SAS 程序運行結果:

a * b 表的統計量
以上是卡方檢驗分析的結果,由于χ2= 4.6601,雙側P= 0.5881 > 0.05,說明不同惡性血液病患者發生真菌感染的部位之間的差異無統計學意義。
【例 2】沿用例 1 的背景資料,該醫生統計了不同惡性血液病患者真菌感染種類情況,結果見表 2,試對該資料進行統計分析。

表2 不同惡性血液病患者真菌感染的類型
分析與解答:與例 1 類似,當理論頻數小于 5 的格子數未超過總格子數的 1/5 時,用一般卡方檢驗;否則,用Fisher 精確檢驗處理該類資料。本例超過 1/5 的單元格的期望計數比 5 小,因此選用 Fisher 精確檢驗。SAS 程序如下,設程序名為 li2.sas。

程序說明:本程序與例 1 的不同之處在于 tables 語句“/”后面的選項是 exact,表示進行精確檢驗。
SAS 程序運行結果:

a * b 表的統計量

Fisher 精確檢驗
第一部分是一般卡方檢驗分析的結果,結果下方顯示“WARNING: 42% 的單元格的期望計數比 5 小。卡方可能不是有效檢驗。”,因此應選擇 Fisher 精確檢驗,結果顯示P= 0.0076 < 0.05,說明不同惡性血液病患者發生真菌感染的類型不同。
結果變量為有序變量的單向有序 R × C 列聯表資料是指表中僅結果變量的取值為有序,而原因變量為無序,如某資料中原因變量是藥物種類,結果變量是治愈、顯效、好轉、無效。如果僅原因變量為有序的而結果變量是無序的,則仍將其視為雙向無序的 R × C 列聯表資料。
結果變量為有序變量的單向有序 R × C 列聯表資料的統計分析可選用秩和檢驗、Ridit 分析以及有序變量的logistic 回歸分析(此法較復雜,一般情況下不選用,在處理高維列聯表時常用)[1]。
【例 3】用混合核苷片、西藥及中草藥治療急性黃疸型肝炎,治療效果見表 3,試分析 3 種藥物治療效果之間的差異是否有統計學意義。

表3 不同藥物治療急性黃疸型肝炎的效果
分析與解答:這是一個單因素多水平設計定性資料,結果變量“療效”是有序變量,可選擇秩和檢驗進行統計分析。SAS 程序的 NPAR1WAY 過程或 FREQ 過程可以進行分析,以下介紹相應的 SAS 程序。用 NPAR1WAY 過程進行秩和檢驗的 SAS 程序如下,設程序名為 li3_1.sas。

程序說明:第一步是數據步,建立名為 a3 的數據集,a 表示藥物種類,b 表示療效,f 表示頻數。第二步是過程步,調用 NPAR1WAY 過程進行秩和檢驗,freq 語句指定頻數變量 f,class 語句指定分組變量 a,var 語句用于指定結果變量 b。
SAS 程序運行結果:

第一部分是 3 個組的打分結果,其中第一組平均秩是325.2632,第二組平均秩是324.8994,第三組平均秩是406.8830。
第二部分是 Kruskal-Wallis 秩和檢驗的結果,HC≈χ2= 17.557,雙側P= 0.0002 < 0.05,說明 3 種藥物治療效果之間的差異有統計學意義。因第三組平均秩最高,因此混合核苷片的療效最好。
本例也可以通過 FREQ 過程實現秩和檢驗,程序如下,設程序名為 li3_2.sas。

程序說明:數據步與 li3_1.sas 相同,此處省略。過程步,調用 FREQ 過程,weight 語句用于指定頻數變量,tables 語句中“/”后面的選項 cmh 表示進行秩和檢驗,scores 選項指定打分方法。
SAS 程序運行結果:

a * b 的匯總統計量Cochran-Mantel-Haenszel 統計量(基于秩得分)
第二行“行均值得分差值”對應的結果即為秩和檢驗結果,χ2= 17.557,P= 0.0002 與 li3_1.sas 得到的結果相同。
參考文獻
[1] Hu LP. Medical statistics-analysis of quantitative and qualitative data applying the triple-type theory. Beijing: People’s Military Medical Press, 2009:292-302. (in Chinese)胡良平. 醫學統計學-運用三型理論分析定量與定性資料. 北京:人民軍醫出版社, 2009:292-302.
DOI:10.3969/cmba.j.issn.1673-713X.2012.04.015
作者單位:100850 北京,軍事醫學科學院生物醫學統計學咨詢中心
通訊作者:胡良平,Email:lphu812@sina.com