第五章相關係數 廖麗娜統計分析師 在一般研究中, 研究者通常有興趣的是探討變項間的關係, 首先遇到的問題是如何把關係量化, 進而說明變項間之相關強弱 描述變項間的關係所使用的統計方法種類很多, 在不同的資料類型下, 應慎選合適的統計方法 第四章提及兩類別變項間相關強度的描述可透過 勝算比 的統計量得知, 而本章將介紹皮爾森相關係數 (Pearson s correlation coefficient) 與斯皮爾曼等級相關係數 (Spearman s rank correlation coefficient), 來描述兩連續變項間線性關係之強弱, 並檢定其線性相關是否存在 1 0. 資料型態與適用統計方法研究問題 : 探討洗腎病人的存活時間與不同生化值 ( 白蛋白 鉀 鈣 磷 ) 間之線性關係強弱, 並檢定線性相關是否存在 表 01 1 為本章將使用的變項及數據值, 表 01 2 為資料型態與適用統計方法, 參考表 01 2, 有兩種方法可以用來描述兩連續變項間的關係 :(1) 皮爾森相關係數 (Pearson s correlation coefficient);(2) 斯皮爾曼等級相關係數 (Spearman s rank correlation coefficient) 表 01 1 使用的變項及部分數據值 ID Albumin ( 白蛋白 ) K ( 鉀 ) Ca ( 鈣 ) P ( 磷 ) sur_time_month ( 存活時間 ) 1 3.4 7 8.8 5.2 41.101 2 3.3 4.9 7.6 8.3 10.743 3 1.7 5.7 7.9 6.5 46.029 4 2.8 3 12.1 6.1 10.940 5 3.1 5.1 7.1 7.8 10.480 98 2.5 4.3 8.3 3.2 6.637 99 3.3 9.7 8.8 7.2 10.908 100 1.9 3.3 8.8 2.9 3.877 註 : 資料來自本校附設醫院腎臟科, 樣本數共有 100 人且皆為死亡的個案, 故可得知其存活時間 5 1 SAS 教戰手冊
表 01 2 資料型態與適用統計方法進行比較的組別數 / 自變項 (X) 檢定的依變項 (Y) 類別兩組三組或以上連續獨立樣本相依樣本獨立樣本相依樣本連續資料欲檢定的情形 : 集中趨勢 (central tendency) 相關分析 常態假設或中央 極限定理成立 Independent t Paired t ANOVA Repeated measures ANOVA Pearson s correlation /Linear regression 常態假設或中央 極限定理不成立 類別資料 Wilcoxon rank sum Wilcoxon signed rank Kruskal Wallis 欲檢定的情形 : 關聯性 (Association) Friedman Spearman s correlation 兩個類別 Chi square with Yate's correction McNemar 's Pearson s Chi square Cochran's Q Logistic regression 三類以上 Pearson s Chi square Cochran's Q Pearson s Chi square Cochran's Q Multinomial / Ordinal logistic regression 1 1. 兩連續變項間之散佈圖在進行相關係數分析前, 我們應先畫出兩兩連續變項間的散佈圖, 了解其觀察值的分佈情形, 是否有離群值存在, 看看兩變項間的關係是否呈現線性趨勢 畫散佈圖的方法有兩種, 一為使用 PROC GPLOT 語法, 見 程式 01 1, 另一種為直接利用 PROC CORR 語法, 見 程式 01 2 執行 程式 01 1 後的結果如圖 01 1, 白蛋白濃度的分佈範圍在 1~4 g/dl 之間, 而鈣濃度範圍大約在 6~13 mg/dl 間, 由圖中可看出隨著洗腎病人血液中白蛋白濃度的增加, 其血液中鈣濃度也隨著增加, 呈現正向的線性趨勢 5 2 SAS 教戰手冊
/*===========================================*/ /* 畫散佈圖 (Scatter Plot) */ /* 方法一 :PROC GPLOT 語法 */ /* 洗腎病人血液中白蛋白濃度與鈣濃度之散佈圖 */ /*==========================================*/ GOPTION RESET =ALL FTEXT='Arial' HTEXT=2; SYMBOL1 VALUE =CIRCLE CV=BLUE HEIGHT=3; AXIS1 LABEL=("Ca (meq/l)") MAJOR=(HEIGHT=1 WIDTH=1 ) WIDTH=3 LENGTH=15 CM; AXIS2 LABEL=( "Albumin (g/dl)" ) MAJOR=(HEIGHT=0.5 WIDTH=1 ) WIDTH=3 LENGTH=15 CM; PROC GPLOT DATA=esrd_01; PLOT Ca*Albumin / VAXIS=AXIS1 HAXIS=AXIS2; RUN; Ca (meq/l) 13 12 11 10 9 8 7 6 1 2 3 4 Albumin (g/dl) 圖 01 1 白蛋白與鈣之散佈圖 程式 01 1 利用 PROC GPLOT 語法畫散佈圖 /*===========================================================================*/ /* 畫散佈圖 (Scatter Plot) */ /* 方法二 :PROC CORR 語法 */ /* 洗腎病人的存活時間與不同生化值 ( 白蛋白 鉀 鈣 磷 ) 間兩兩變項之散佈圖 */ /*==========================================================================*/ ODS HTML; ODS GRAPHICS ON; PROC CORR DATA=esrd_01 PLOTS=MATRIX NOSIMPLE NOMISS; VAR sur_time_month Albumin K Ca P; RUN; ODS GRAPHICS OFF; ODS HTML CLOSE; 程式 01 2 利用 PROC CORR 語法畫散佈圖 執行 程式 01 2 後的結果如圖 01 2, 這個矩陣圖可以同時看到數個連續變項的兩兩散佈圖, 使用上相當方便, 且在矩陣圖的周圍也都標明各變項的數值範圍 例如矩陣圖中的 與 皆為白蛋白與鈣之散佈圖, 差別只是 X 軸與 Y 軸放的變項不同, 的 X 軸為白蛋白濃度 ( 範圍約 1~3.5 g/dl),y 軸為鈣濃度 ( 範圍約 6~12 mg/dl) 5 3 SAS 教戰手冊
圖 01 2 洗腎病人的存活時間與不同生化值 ( 白蛋白 鉀 鈣 磷 ) 間兩兩變項之散佈圖 在圖 01 2 的 ~ 中, 分別為存活時間 (Y 軸,10~50 個月 ) 與白蛋白 (Albumin,1~3.5 g/dl) 鉀 (K,0~40 meq/l) 鈣(Ca,6~12 mg/dl) 磷(P,2~10 mg/dl)(x 軸 ) 之散佈圖 矩陣圖中的 及, 即白蛋白 鈣及磷大致皆與存活時間具有正向的線性趨勢 ; 而鉀與存活時間的散佈圖 中有一資料點為離群值 ( 藍色框線處 ), 其鉀濃度大約為 40 meq/l, 因為受此離群值的影響, 鉀與存活時間的散佈圖看不出有任何趨勢, 可以考慮把此點資料暫時排除, 再畫兩變項間的散佈圖, 結果如圖 01 3, 鉀的範圍從 2~42 meq/l 變為 2~9.7 meq/l 5 4 SAS 教戰手冊
圖 01 3 排除離群值 (ID 為 14,K 為 42) 之觀測值後存活時間與不同生化值間兩兩變項之散佈圖 第 1 1 節重要指令說明 : 程式 01 1 1. GOPTION: 請參考第三章 2 1 節 2. SYMBOL#: # 放置 1~99 數字, 宣告圖形資料點輸出的格式 VALUE= special symbol: 宣告資料點以哪種符號畫出 CV= value color: 宣告資料點符號的顏色 HEIGHT= symbol height: 宣告資料點符號的長度 3. AXIS#: # 放置 1~99 數字, 宣告圖形軸線輸出的格式 ( 可參考下圖 ) LABEL=(text argument): 宣告軸線的標示文字 MAJOR=(HEIGHT= tick height WIDTH= thickness factor): 指定主刻度的長度及厚度 WIDTH= thickness factor: 指定軸線的厚度 LENGTH=axis length <units >: 指定軸線的長度 5 5 SAS 教戰手冊
4. PROC GPLOT: 繪製兩變數間相關的圖形, 例如散佈圖 折線圖等 PLOT Y 軸變項名稱串 *X 軸變項名稱串 : 畫 Y 軸與 X 軸上的變項之散佈圖, 可一次畫多個散佈圖, 例如 PLOT sur_time_month*(albumin K Ca P) 分別畫出存活時間(Y 軸 ) 與白蛋白 鉀 鈣 磷 (X 軸 ) 之四個散佈圖 VAXIS=AXIS#: 設定垂直軸 (Y 軸 ) 的輸出格式 HAXIS=AXIS#: 設定水平軸 (X 軸 ) 的輸出格式 程式 01 2 1. PROC CORR: 畫散佈圖矩陣的選項為 PLOTS=MATRIX, 並必須配合 ODS GRAPHICS 指令產生散佈圖矩陣 (ODS 代表 Output Delivery System) NOSIMPLE: 不印出變項的描述性統計值, 如 : 平均值 標準差 等 NOMISS: 若某個觀察值在計算的任何一個變項上有遺漏數據, 它就會被剔除於所有計算過程 VAR 變項名稱串 : 指定要使用的變項 2 0. 相關係數的意義 兩變連續項間的關係可能是線性或非線性的 而我們所談論的 相關係數 是指兩個連續變項彼此之間的相關強度, 而且假設兩者之間的關係是線性 當兩連續變項間的關係並非線性時, 可透過函數轉換使之成為線性關係, 但是在解釋上較不直覺 相關係數是一個沒有單位的統計量, 其範圍介於 1 到 1 之間, 若相關係數值為 0 代表兩連續變項間無線性關係存在 ; 若相關係數值為大於 0 小於 1, 代表兩連續變項為正相關 ; 若相關係數值為大於 1 小於 0, 代表兩連續變項為負相關 計算相關係數時, 建議應先看二維散佈圖, 並觀察資料點是否呈現線性趨勢, 在線性關係成立下相關係數才能有效測量其線性相關 若進行假說檢定時 (H 0 : 兩連續變項間之相關係數等於 0, 或 H 0 : 兩連續變項間無線性關係 ), 需假設兩連續變間為線性關係, 且皆符合常態分布及變異數相同 5 6 SAS 教戰手冊
2 1. 兩連續變項間之線性關係 -PROC CORR 應用我們的研究問題為 探討洗腎病人的存活時間與不同生化值 ( 白蛋白 鉀 鈣 磷 ) 間之線性關係強弱, 並檢定線性相關是否存在 利用 程式 02 1 計算皮爾森相關係數, 即可得知其線性相關的強弱, 另外也可以同時計算斯皮爾曼等級相關係數 這兩者的差異在於計算斯皮爾曼等級相關係數時, 是使用觀察值排序後的 等級 (rank) 當作資料點做計算, 而皮爾森相關係數是直接使用觀察值計算, 因此, 皮爾森相關係數易受離群值的影響 /*===========================================================================*/ /* 計算相關係數值並檢定其線性相關是否存在 */ /* 洗腎病人的存活時間與不同生化值 ( 白蛋白 鉀 鈣 磷 ) 間兩兩變項之相關係數值 */ /*===========================================================================*/ PROC CORR DATA=esrd_01 NOMISS PEARSON SPEARMAN; VAR sur_time_month Albumin K Ca P; RUN; 程式 02 1 使用 PROC CORR 語法計算相關係數值並檢定其線性相關是否存在 執行後的報表分別如圖 02 1 及圖 02 2, 其中 為洗腎病人的存活時間與白蛋白間之皮爾森相關係數值 0.29( 正相關 ), 為檢定 H 0 : 兩變間之相關係數等於 0 之 p 值 (0.0063), 為存活時間與白蛋白間之斯皮爾曼等級相關係數值 0.37( 正相關 ), 為檢定之 p 值 (0.0003), 為下 NOMISS 指令的結果, 所使用的樣本數共有 88 筆 由報表的數據顯示, 洗腎病人的存活時間與白蛋白間有線性相關 (p 值 0.0063 小於顯著水準 0.05), 其線性相關強度為 0.29 圖 02 1 程式 02 1 的輸出結果 -Pearson Correlation Coefficients 5 7 SAS 教戰手冊
圖 02 2 程式 02 1 的輸出結果 -Spearman Correlation Coefficients 存活時間與鉀之間皮爾森相關係數為 0.009(p=0.9332), 存活時間與鉀間之斯皮爾曼等級相關係數為 0.138(p=0.1990), 前面我們曾提及, 鉀濃度有一離群值 (ID 為 14,K 為 42), 所以皮爾森相關係數之統計量受此離群值的影響, 其值 (0.009) 變得比較小, 幾乎接近於 0, 而斯皮爾曼等級相關係數為使用排序後的 等級 為資料點做計算, 所以相關係數統計量不易受離群值的影響, 其值為 0.138 如果兩連續變項間具有明顯的非線性相關 ( 由散佈圖觀察得知 ), 則皮爾森相關係數就無法有效測量這種關係 所以判斷兩連續變項間的線性關係時, 建議先看散佈圖, 再看相關係數值及檢定結果的 p 值 第 2 1 節重要指令說明 : 程式 02 1 1. PROC CORR: 可用來計算兩連續變項間相關係數值並檢定其線性相關是否存在 PEARSON: 皮爾森相關係數為 PROC CORR 內設的選項, 是計算兩連續型變項相關係數的方法, 做假設檢定時需假設資料來自常態分布 SPEARMAN: 斯皮爾曼等級相關係數為另一種計算相關強度的選項, 做假設檢定時不需假設資料來自常態分布, 適用於等級尺度資料 (ranked data) 或有離群值的資料 VAR 變項名稱串 : 指定要使用的變項 5 8 SAS 教戰手冊