cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP 19 is here! See the new features at jmp.com/new.
  • Register to attend Discovery Summit 2025 Online: Early Users Edition, Sept. 24-25.
Choose Language Hide Translation Bar
ChenShu07733
Level I

(Japanese) マンテル・ヘンツェル検定で、2群間に年齢の偏りがないか見る方法が知りたい。

お世話になります。

A群とB群とで、年齢のバイアスがないかを確認したいです。

つきましては、JMPでのマンテル・ヘンツェル検定の解析手技をご教示くださいますと幸甚です。

1 ACCEPTED SOLUTION

Accepted Solutions

Re: (Japanese) マンテル・ヘンツェル検定で、2群間に年齢の偏りがないか見る方法が知りたい。

こんにちは
 
SAS Institute Japan株式会社のJMPジャパン事業部にてテスターをしています小野裕亮と申します。
 
平均スコアに対する群間比較を行うCochran-Mantel-Heazel検定は、JMPでは「二変量の関係」で行えます。
ただし、以下の点にご注意ください。
 
(1) 1層しかない場合にも、層の変数を追加する必要があります。
(2) スコアの平均を比較したい場合、予め、どんなスコアを与えるかをデータで指定しておく必要があります。
デフォルトでは、1,2,3,4,5,...と通し番号をスコアにします。
(3) X変数およびY変数ともに、カテゴリカル変数(名義尺度もしくは順序尺度)に設定してください。
 
なお、以下で説明するCMH検定は「年齢のバイアスがない」(これは<年齢を分析に含めなくても、群と結果変数とのあいだの関係に交絡バイアスが生じない>という意味だと私のほうで解釈しました)ことを確認するものではないと個人的には思っています。
 
(1) 一般に、多くの統計的検定は「有意でない」ことは、「帰無仮説を棄却するだけの証拠がない」ことを示すだけのものである。いわゆる「証拠の不在は不在の証拠ではない」。
(2) たとえ、「有意であった」としても、この1回だけで、たまたま有意になっただけかもしれない。
(3) たとえ、統計的検定によって「年齢」と「群」の間に関係があることが"証明"できたとしても、そのことが「年齢」が(DAGのバックドア基準を満たすという意味で)交絡因子になっているとは限らない。
 
「年齢」が交絡因子かどうかは、領域の専門家と話して決めるものであり、群間比較の検定で決めるものではないと個人的には思います(Hernán and RobinsのWhatIf: Causal Inferenceでも、検定で交絡因子を決めてはいけないという立場だと思います)。さらに、交絡因子として年齢のほかに考慮しないといけないものがないかも、領域の専門家と話して(望ましくはデータを見る前に)決めるべきではないかと思います。ただし、いろいろな考え方があるとは思います。
 
ここでは添付の疑似データ「データ例.jmp」に沿って説明したいと思います(添付して頂いたデータの著作権などが不明であったため)。操作がかなり複雑ですので、何かありましたら、また返答してください。
 
検定の目的として、2群(A,B)間で、順序尺度の反応(あ,い,う,え,お,か)を比較するCochran-nMantel-Heazel検定を行いたいという状況を想定します。「度数」列には、各組み合わせの度数が入っています。スコアを通し番号とした場合と、平均順位にした場合を説明します。
 
(なお、最後の(c)に記載しましたが、スコアを平均順位にしたCMH検定は、Wilcoxon検定と等価です。すでに連続尺度でデータがある場合で、スコアとして平均順位を使いたい場合には、以下の手順でCMH検定を行うよりも、Wilcoxon検定を行うほうが操作は簡単です。また、データが大きい場合、そのスコアでの2標本t検定と似た結果になります。)
 
■通し番号をスコアとする場合
もし、反応(あ,い,う,え,お,か)に、通し番号1,2,3,4,5,6を与えて、そのスコアの平均を群間で比較するのであれば、次の手順を踏みます。
 
(a-1) データにすべての値が同じになっている「層」の列を追加する。
(a-2) [分析]→[二変量の関係]を選択する。
そして、各列に次のような役割を与えます。
Y変数を[Y, 目的変数]。この時、Y変数は名義尺度もしくは順序尺度になっている必要がある。
   X変数(2群の変数)を[X,説明変数]
  上記(a-1)で作成した「層」の列を[ブロック]
  度数の列がある場合には、それを[度数]
すべて設定し終わったら、[OK]をクリックします。
 
(a-3) レポートの下部に「Cochran-Mantel-Haenszel検定」が出力されます。このうち、「X間でのスコア比較」が、平均スコアの群間比較を行っているCochran-nMantel-Heazel検定となっています。
 
■平均順位をスコアとする場合
反応(あ,い,う,え,お,か)に対して通し番号以外の別のスコアを与えたい場合には、データを行う前に実際に自分でスコアを与える必要があります。
たとえば、平均順位をスコアとする場合には、次のような手順となります。
 
(b-1) Y変数が文字列である場合には、[列]→[再コード化]として、通し番号1,2,3,4,5,6,...の数値に変換する。
その際、[再コード化]で新しい列を作成した後、その再コード化した列を右クリックし、[列情報]を選択し、[データタイプ]を[数値]、[尺度]を[連続尺度]にする。
(b-2) [分析]→[一変量の分布]を選択する。次の役割を各列に与える。
  上記(b-1)で作成した再コード化後の数値列を[Y, 列]
  度数の列がある場合には、それを[度数]
すべて設定し終わったら、[OK]をクリックする。
 
(b-3) ヒストグラムの上にある列名のアウトラインの赤三角ボタンをクリックし、
[保存] → [平均順位]を選択する。この操作で、平均順位がデータテーブルに保存される。
 
(b-4)その平均順位の列を右クリックし、[列情報]を選択し、[尺度]を[順序尺度]にする。
 
この後は、上記の「■通し番号をスコアとする場合」の(a-1)~(a-3)と同じ手順を踏みます。ただし、(a-2)[Y, 目的変数]には、(b-2),(b-3)で作成した平均順位の列を指定します。
 
■スコア平均の2群間比較を行うCochran-nMantel-Heazel検定(以下、ここでは、「スコア平均CMH検定」と呼ぶことにします)は、他の名前で知られているいくつかの検定と関係があります。
(c-1) 「スコア平均CMH検定」は、標本サイズが大きい場合、そのスコアでの2標本t検定と似たような結果となります。特に、漸近的には同じ結果となります。
(c-2) 「スコア平均CMH検定」は、Cochran-Armitage検定と似たような結果となります。Cochran-Armitage検定は、順序応答に対するロジスティック回帰のスコア検定と等価ですので、標本サイズが大きい場合、「スコア平均CMH検定」は順序ロジスティック回帰の検定結果と似たようなものになります。
(c-3) 「スコア平均CMH検定」は、スコアとして平均順位を用いた場合、「Wilcoxon検定」・「Mann-Whiteney検定」・「Wilcoxon-Mann-Whiteney検定」などと呼ばれている検定と同じ結果となります(JMPでWilcoxon検定を実施した場合は、1/2連続補正を行った場合と行っていない場合が出力されます。「Kruskal-Wallis検定 (カイ2乗近似)」が1/2連続補正していない場合の結果となります。JMPのCMH検定は1/2連続補正を行っていません)。
 
これらの関係(c-1)~(c-3)はどこかの教科書に書かれていると記憶しているのですが、現在、探せていません。もし、ご興味がある場合は、説明が記載されている教科書を探してみますのでご連絡ください。

 

Yusuke Ono (Senior Tester at JMP Japan)

View solution in original post

1 REPLY 1

Re: (Japanese) マンテル・ヘンツェル検定で、2群間に年齢の偏りがないか見る方法が知りたい。

こんにちは
 
SAS Institute Japan株式会社のJMPジャパン事業部にてテスターをしています小野裕亮と申します。
 
平均スコアに対する群間比較を行うCochran-Mantel-Heazel検定は、JMPでは「二変量の関係」で行えます。
ただし、以下の点にご注意ください。
 
(1) 1層しかない場合にも、層の変数を追加する必要があります。
(2) スコアの平均を比較したい場合、予め、どんなスコアを与えるかをデータで指定しておく必要があります。
デフォルトでは、1,2,3,4,5,...と通し番号をスコアにします。
(3) X変数およびY変数ともに、カテゴリカル変数(名義尺度もしくは順序尺度)に設定してください。
 
なお、以下で説明するCMH検定は「年齢のバイアスがない」(これは<年齢を分析に含めなくても、群と結果変数とのあいだの関係に交絡バイアスが生じない>という意味だと私のほうで解釈しました)ことを確認するものではないと個人的には思っています。
 
(1) 一般に、多くの統計的検定は「有意でない」ことは、「帰無仮説を棄却するだけの証拠がない」ことを示すだけのものである。いわゆる「証拠の不在は不在の証拠ではない」。
(2) たとえ、「有意であった」としても、この1回だけで、たまたま有意になっただけかもしれない。
(3) たとえ、統計的検定によって「年齢」と「群」の間に関係があることが"証明"できたとしても、そのことが「年齢」が(DAGのバックドア基準を満たすという意味で)交絡因子になっているとは限らない。
 
「年齢」が交絡因子かどうかは、領域の専門家と話して決めるものであり、群間比較の検定で決めるものではないと個人的には思います(Hernán and RobinsのWhatIf: Causal Inferenceでも、検定で交絡因子を決めてはいけないという立場だと思います)。さらに、交絡因子として年齢のほかに考慮しないといけないものがないかも、領域の専門家と話して(望ましくはデータを見る前に)決めるべきではないかと思います。ただし、いろいろな考え方があるとは思います。
 
ここでは添付の疑似データ「データ例.jmp」に沿って説明したいと思います(添付して頂いたデータの著作権などが不明であったため)。操作がかなり複雑ですので、何かありましたら、また返答してください。
 
検定の目的として、2群(A,B)間で、順序尺度の反応(あ,い,う,え,お,か)を比較するCochran-nMantel-Heazel検定を行いたいという状況を想定します。「度数」列には、各組み合わせの度数が入っています。スコアを通し番号とした場合と、平均順位にした場合を説明します。
 
(なお、最後の(c)に記載しましたが、スコアを平均順位にしたCMH検定は、Wilcoxon検定と等価です。すでに連続尺度でデータがある場合で、スコアとして平均順位を使いたい場合には、以下の手順でCMH検定を行うよりも、Wilcoxon検定を行うほうが操作は簡単です。また、データが大きい場合、そのスコアでの2標本t検定と似た結果になります。)
 
■通し番号をスコアとする場合
もし、反応(あ,い,う,え,お,か)に、通し番号1,2,3,4,5,6を与えて、そのスコアの平均を群間で比較するのであれば、次の手順を踏みます。
 
(a-1) データにすべての値が同じになっている「層」の列を追加する。
(a-2) [分析]→[二変量の関係]を選択する。
そして、各列に次のような役割を与えます。
Y変数を[Y, 目的変数]。この時、Y変数は名義尺度もしくは順序尺度になっている必要がある。
   X変数(2群の変数)を[X,説明変数]
  上記(a-1)で作成した「層」の列を[ブロック]
  度数の列がある場合には、それを[度数]
すべて設定し終わったら、[OK]をクリックします。
 
(a-3) レポートの下部に「Cochran-Mantel-Haenszel検定」が出力されます。このうち、「X間でのスコア比較」が、平均スコアの群間比較を行っているCochran-nMantel-Heazel検定となっています。
 
■平均順位をスコアとする場合
反応(あ,い,う,え,お,か)に対して通し番号以外の別のスコアを与えたい場合には、データを行う前に実際に自分でスコアを与える必要があります。
たとえば、平均順位をスコアとする場合には、次のような手順となります。
 
(b-1) Y変数が文字列である場合には、[列]→[再コード化]として、通し番号1,2,3,4,5,6,...の数値に変換する。
その際、[再コード化]で新しい列を作成した後、その再コード化した列を右クリックし、[列情報]を選択し、[データタイプ]を[数値]、[尺度]を[連続尺度]にする。
(b-2) [分析]→[一変量の分布]を選択する。次の役割を各列に与える。
  上記(b-1)で作成した再コード化後の数値列を[Y, 列]
  度数の列がある場合には、それを[度数]
すべて設定し終わったら、[OK]をクリックする。
 
(b-3) ヒストグラムの上にある列名のアウトラインの赤三角ボタンをクリックし、
[保存] → [平均順位]を選択する。この操作で、平均順位がデータテーブルに保存される。
 
(b-4)その平均順位の列を右クリックし、[列情報]を選択し、[尺度]を[順序尺度]にする。
 
この後は、上記の「■通し番号をスコアとする場合」の(a-1)~(a-3)と同じ手順を踏みます。ただし、(a-2)[Y, 目的変数]には、(b-2),(b-3)で作成した平均順位の列を指定します。
 
■スコア平均の2群間比較を行うCochran-nMantel-Heazel検定(以下、ここでは、「スコア平均CMH検定」と呼ぶことにします)は、他の名前で知られているいくつかの検定と関係があります。
(c-1) 「スコア平均CMH検定」は、標本サイズが大きい場合、そのスコアでの2標本t検定と似たような結果となります。特に、漸近的には同じ結果となります。
(c-2) 「スコア平均CMH検定」は、Cochran-Armitage検定と似たような結果となります。Cochran-Armitage検定は、順序応答に対するロジスティック回帰のスコア検定と等価ですので、標本サイズが大きい場合、「スコア平均CMH検定」は順序ロジスティック回帰の検定結果と似たようなものになります。
(c-3) 「スコア平均CMH検定」は、スコアとして平均順位を用いた場合、「Wilcoxon検定」・「Mann-Whiteney検定」・「Wilcoxon-Mann-Whiteney検定」などと呼ばれている検定と同じ結果となります(JMPでWilcoxon検定を実施した場合は、1/2連続補正を行った場合と行っていない場合が出力されます。「Kruskal-Wallis検定 (カイ2乗近似)」が1/2連続補正していない場合の結果となります。JMPのCMH検定は1/2連続補正を行っていません)。
 
これらの関係(c-1)~(c-3)はどこかの教科書に書かれていると記憶しているのですが、現在、探せていません。もし、ご興味がある場合は、説明が記載されている教科書を探してみますのでご連絡ください。

 

Yusuke Ono (Senior Tester at JMP Japan)

Recommended Articles