静粛に、只今統計勉強中

仕事でデータ分析をすることになったバリバリ文系アラフィフのおっさんが、独学で統計の勉強を始めました。

Excel VBAで3群以上の比率の差の多重検定ができるマクロを作ってみた3

前回、3群以上の比率の差の多重検定の方法を学びましたので、今回はいよいよExcel VBAでマクロ化したいと思います。

 

というわけで、ソースコード

今回も縦に長くなったので、テキストファイルをドロップボックスに保存しました。

コーディング自体はたいした工夫もしていないので、解説は割愛させていただきます。

 

使用上の注意

  1. 1行目は必ずラベル行にしてください。
  2. 一番左の列は必ずラベル列にしてください。
  3. 郡内の全数(分母)を左から2番めの列に配置してください。
  4. 郡内の事象発生数(分子)を左から3番めの列に配置してください。

 

使い方

  1. ソースコード全行をVBEで標準モジュールにコピペししてください。

  2. ラベル行からデータの最終行まで、ラベル列から分子までの3列のセル範囲を選択してください。
    f:id:cyclo-commuter:20180705104139p:plain
    比率は、引数にはしません(プログラムの内部で計算します。)

  3. [開発]→[マクロ]→[Pairwise_Comparison_bw_Ratio]を選択→【実行】をクリックしてください。
    f:id:cyclo-commuter:20180705104424p:plain

 

実行結果

f:id:cyclo-commuter:20180705104706p:plain

一瞬~数秒で計算結果が表示されます。
順位でデータが並べ替えられるのは仕様です。ご了承ください。

 

f:id:cyclo-commuter:20180705105259p:plain
D1セルには“非”&C1の値が、E1セルにはC1の値&“率”が自動入力されますが、不自然な単語になっている場合は、適宜修正してください。
f:id:cyclo-commuter:20180705105802p:plain

 

11行目には、カイ二乗検定の結果が載っています。
青木先生の説明では、

k×2 分割表の比率のχ2検定の結果,全体として差が認められる場合にのみ対比較が行われる。

K 群の比率の差の検定・多重比較( 対比較 )ライアンの方法

とありますが(テューキーの方法も同様)、比率のカイ二乗検定というのが全くわからないので、事象が発生しなかった数(郡内の全数-郡内の事象発生数)をD列に追加して、普通のカイ二乗検定を行っています。結果は、青木先生の計算例と同じでした。

 

その下に、ライアン法とテューキーのWSD法による対比較の結果が載っています。
Rとかでは、「対:結果」が複数行表示されますけど、
f:id:cyclo-commuter:20180706092957p:plain

行列のほうが断然見やすいですよね!
境界値はどうしようか迷いましたが、レイアウト上おさまりが悪いので表示するのはやめました。

行列の右上側は、検定統計量(群間の比率の差の絶対値)、左下側は、検定統計量と1パーセント点・5パーセント点それぞれの境界値を比較した結果です。

** 1パーセント有意  * 5パーセント有意 ns 非有意 を表しています。

 

結果を見ると、2014年6月の合格率47.9%と2017年11月の合格率41.3%の群間でのみ5%の有意差が見られたわけですが、試しに2017年11月を外して検定にかけてみたところ、
f:id:cyclo-commuter:20180705124411p:plain
ご覧のとおり、有意差なしになりました。
どうやら、2017年11月の合格率は異例の低さだったようです。
この場合、

  • 2017年11月の受験者の学力がそれ以前の受験者より低い
  • 2017年11月試験の難易度がそれ以前の試験より高い

といった理由が考えられますが、一般的には前者を取ることはないと思いますので、やはり、2017年11月試験の難易度が高かったと見るべきでしょうか?