3K Views
March 26, 24
スライド概要
[第9回大阪SAS勉強会] 石本 りさ
SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです
2024年3月22日 Cochran-Mantel-Haenszel検定 臨床開発事業本部 データサイエンスセンター 統計解析 2部 1課 石本 りさ
目次 1. Cochran-Mantel-Haenszel (CMH) 検定 2. CMH検定で用いるSASプロシジャ 3. データステップでの再現 Copyright©EPS All rights reserved. 2
1.Cochran-Mantel-Haenszel検定について Copyright©EPS All rights reserved. 3
1. Cochran-Mantel-Haenszel (CMH) 検定 ◆ Cochran-Mantel-Haenszel (CMH) 検定とは 多層のクロス集計表において, 層別変数の影響を考慮し 2つのカテゴリ変数の独立性を評価する 平たく表すと… χ2 検定 (独立性の検定) の層別解析 Copyright©EPS All rights reserved. 4
2. CMH検定のイメージ 男性 Response Better Same 全体 Response Better Same 30 20 50 Placebo 15 35 50 45 55 100 Drug 23 14 37 Placebo 10 28 38 33 42 75 Treatment Total Drug Total Total Treatment Total 独立性の検定 女性 Response Better Same 層別化 (例:性別) Drug 7 6 13 Placebo 5 7 12 12 13 25 Treatment Total Copyright©EPS All rights reserved. Total CMH検定 5
3. CMH検定において設定する仮説 CMH検定では, オッズ比は全ての層で等質であるという仮定を置く ◆オッズ比とは Response Total Better Same Drug a b 𝑚1 Placebo c d 𝑚2 Treatment Total Copyright©EPS All rights reserved. 𝑛1 𝑛2 N ある群における事象の起こりやすさに対する 別の群における事象の起こりやすさ 𝑎/𝑏 𝑎𝑑 𝑂𝑑𝑑𝑠𝑅𝑎𝑡𝑖𝑜 (𝑂𝑅) = = 𝑐/𝑑 𝑏𝑐 オッズ比が1になるということは 群によって事象の起こりやすさに関連はない 6
3. CMH検定において設定する仮説 帰無仮説𝑯𝟎 : 共通オッズ比は1である = 全ての層においてオッズ比が1である 対立仮説𝑯1 : 共通オッズ比は1ではない = 少なくとも一つの層でオッズ比が1ではない ◆共通オッズ比 Response Mantel-Haenszel推定量は 以下の式で求めることができる 𝑂𝑅 𝑎𝑑𝑗 = k: 全層数 Copyright©EPS All rights reserved. 𝑘 𝑎𝑖 𝑑𝑖 σ𝑖=1 𝑁𝑖 𝑏𝑖 𝑐𝑖 𝑘 σ𝑖=1 𝑁𝑖 Total Better Same Drug 𝑎𝑖 𝑏𝑖 𝑚1𝑖 Placebo 𝑐𝑖 𝑑𝑖 𝑚2𝑖 𝑛1𝑖 𝑛2𝑖 𝑁𝑖 Treatment Total 7
4. 検定統計量の算出 帰無仮説の下でaは超幾何分布に従うため i層目のaの期待値と分散は下式で表される 𝐸 𝑎𝑖 𝑛1𝑖 𝑚1𝑖 = 𝑁𝑖 𝑉 𝑎𝑖 = Copyright©EPS All rights reserved. 𝑛1𝑖 𝑚1𝑖 𝑛2𝑖 𝑚2𝑖 𝑁𝑖 2 (𝑁𝑖 − 1) Response Total Better Same Drug 𝑎𝑖 𝑏𝑖 𝑚1𝑖 Placebo 𝑐𝑖 𝑑𝑖 𝑚2𝑖 𝑛1𝑖 𝑛2𝑖 𝑁𝑖 Treatment Total 8
4. 検定統計量の算出 CMH検定統計量は 統計量Zを二乗した値で表される 𝑍= (𝑋 − 𝐸 𝑋 ) Response Total Better Same Drug 𝑎𝑖 𝑏𝑖 𝑚1𝑖 Placebo 𝑐𝑖 𝑑𝑖 𝑚2𝑖 𝑛1𝑖 𝑛2𝑖 𝑁𝑖 Treatment 𝑉[𝑋] Total 層がk個あるとき, 算出式は以下となる χ2 𝑀𝐻 = 𝑍 2 = Copyright©EPS All rights reserved. 2 𝑘 σ𝑖=1(𝑎𝑖 − 𝐸𝑖 ) σ𝑘𝑖=1 𝑉𝑖 = σ𝑘𝑖=1(𝑎𝑖 − 𝑛1𝑖 𝑚1𝑖 /𝑁𝑖 ) 𝑛1𝑖 𝑚1𝑖 𝑛2𝑖 𝑚2𝑖 𝑘 σ𝑖=1 𝑁𝑖 2 (𝑁𝑖 − 1) 2 9
4. 検定統計量の算出 2 χ 𝑀𝐻 = σ𝑘𝑖=1(𝑎𝑖 − 𝑛1𝑖 𝑚1𝑖 /𝑁𝑖 ) 𝑛1𝑖 𝑚1𝑖 𝑛2𝑖 𝑚2𝑖 𝑘 σ𝑖=1 𝑁𝑖 2 (𝑁𝑖 − 1) Response 2 Copyright©EPS All rights reserved. χ2 𝑀𝐻 Better Same Drug 𝑎𝑖 𝑏𝑖 𝑚1𝑖 Placebo 𝑐𝑖 𝑑𝑖 𝑚2𝑖 𝑛1𝑖 𝑛2𝑖 𝑁𝑖 Treatment 上記の検定統計量が自由度1のカイ二乗分布に 従うことを利用して仮説の検定を行う 連続修正を行う場合 Total Total 𝑛1𝑖 𝑚1𝑖 𝑘 σ𝑖=1(𝑎𝑖 − − 0.5) 𝑁𝑖 = 𝑛1𝑖 𝑚1𝑖 𝑛2𝑖 𝑚2𝑖 𝑘 σ𝑖=1 𝑁𝑖 2 (𝑁𝑖 − 1) 2 10
2.CMH検定で用いるSASプロシジャ Copyright©EPS All rights reserved. 11
1. プロシジャについて ◆使用するプロシジャ 層化変数 行 列 proc freq data = <source dataset>; tables Gender*Treatment*Response/cmh; weight count; run; FREQプロシジャにおけるtablesステートメントにて, cmhを設定すれば結果が算出される Copyright©EPS All rights reserved. 12
2. プロシジャ出力画面の説明 ◆Cochran-Mantel-Haenszel統計量 相関統計量 行変数または列変数が 順序尺度である場合のCMH統計量 ANOVA統計量 列変数が順序尺度であり 列変数スコアが有意である場合の CMH統計量 一般関連統計量 行変数および列変数が 順序尺度であることを必要としない CMH統計量 Copyright©EPS All rights reserved. 13
2. プロシジャ出力画面の説明 ◆共通オッズ比と相対リスク 共通オッズ比や共通相対リスクの Mantel-Haenszel推定量や ロジット推定量の算出 (ロジット: オッズの対数) Copyright©EPS All rights reserved. 14
2. プロシジャ出力画面の説明 ◆オッズ比等質性に対するBreslow-Day検定 CMH検定では, オッズ比は全ての層で 等質であるという仮定を置く必要がある 帰無仮説: 各層におけるオッズ比は等しい 棄却されなければ各層のオッズ比が 等質であると判断する Copyright©EPS All rights reserved. 15
3.データステップでの反映 Copyright©EPS All rights reserved. 16
実際にデータステップで再現してみる ◆使用するデータ data Migraine; input Gender $ datalines; female Active female Placebo male Active male Placebo Treatment $ Response $ Count @@; Better Better Better Better 16 5 12 7 female female male male Active Placebo Active Placebo Same Same Same Same 11 20 16 19; ↓クロス集計表で表すと下記の二層 Male Response Treat ment Better Same Active 12 16 28 Placebo 7 19 26 19 35 54 Total Copyright©EPS All rights reserved. Female Response Total Treat ment Total Better Same Active 16 11 27 Placebo 5 20 25 21 31 52 Total 17
実際にデータステップで再現してみる ◆データを横並びに proc sort data = migraine; by Gender; run; proc transpose data = migraine out = wk1 delimiter = _; var count; by Gender; id Treatment response; run; Copyright©EPS All rights reserved. 18
実際にデータステップで再現してみる ◆各群ごとで分母と分子の値を算出 Response data wk2; set wk1; a = Active_Better; b = Active_same; c = Placebo_Better; d = Placebo_same; N = sum(of Active_: Placebo_:); m1 = sum(of a b); m2 = sum(of c d); n1 = sum(of a c); n2 = sum(of b d); Total Better Same Drug 𝑎𝑖 𝑏𝑖 𝑚1𝑖 Placebo 𝑐𝑖 𝑑𝑖 𝑚2𝑖 𝑛1𝑖 𝑛2𝑖 𝑁𝑖 Treatment Total Numer = divide(n1*m1*n2*m2, (N**3-N**2)); Denom = a - (divide(n1*m1, N)); run; Copyright©EPS All rights reserved. 19
実際にデータステップで再現してみる ◆各群ごとで分母と分子の値を算出 data wk2; set wk1; a = Active_Better; b = Active_same; c = Placebo_Better; d = Placebo_same; N = sum(of Active_: Placebo_:); m1 = sum(of a b); m2 = sum(of c d); n1 = sum(of a c); n2 = sum(of b d); Denom = a - (divide(n1*m1, N)); Numer = divide(n1*m1*n2*m2, (N**3-N**2)); run; Copyright©EPS All rights reserved. χ 2 𝑀𝐻 = σ𝑘𝑖=1(𝑎𝑖 − 𝑛1𝑖 𝑚1𝑖 /𝑁𝑖 ) 𝑛1𝑖 𝑚1𝑖 𝑛2𝑖 𝑚2𝑖 𝑘 σ𝑖=1 𝑁𝑖 2 (𝑁𝑖 − 1) 2 20
実際にデータステップで再現してみる ◆データの形を整えてから検定統計量の算出 proc transpose data = wk2 out = wk3; var numer denom; id Gender; run; data wk4; set wk3; Total = female + male; run; proc transpose data = wk4 out = wk5; var Total; run; Copyright©EPS All rights reserved. 21
実際にデータステップで再現してみる ◆データの形を整えてから検定統計量の算出 data wk6; set wk5; CMH = divide(denom**2, numer); prob = 1 - probchi(CMH, 1); run; Copyright©EPS All rights reserved. 22
まとめ ・基礎的な統計手法から一歩踏み込んで調べることによって 統計そのものについての理解が深まった ・数学知識(特に線形代数)の不足により資料から読み解けない情報が あったため, 今後の勉強意欲を改めて高めることができた Copyright©EPS All rights reserved. 23
参考文献 1. Base SAS9.4 プロシジャガイド 統計プロシジャ 第四版. 2. 佐藤 俊哉, 高木 廣文, 柳川 堯, 柳本 武美. Mantel-Haenszelの方法による複数の2×2表の要約. 数理統計. 1998, 46巻, 1号. p135~177. 3. 岸本 涼司. SAS FREQプロシジャによるCochran-Mantel-Haenszel統計量の使い方. 九州大学計算機センター広報. 1990, 23巻, 6号. p663~682. 4. Girish Kankipati, Chia-Ling Ally Wu. Calculation of Cochran-Mantel-Haenszel Statistics for Objective Response and Clinical Benefit Rates and the Effects of Stratification Factors: PharmaSUG 2020. SA-051. Copyright©EPS All rights reserved. 24
経営理念 Copyright©EPS All rights reserved. 25