ひゃまだのblog
ひゃまだのblog

ひゃまだのblog

(2013-05-20 初稿 - 2025-05-31 転記・修正・追記)   はじめに 先日、職場の後輩に相談されて、tukeyの多重比較で検定して、「対照区と比べて有意な差のある範囲をグラフに示したら」と偉そうに答えてしまった。^^; 後日、後輩からアルファベット(符号)の付け方の相談をされ、これが意外に難し(楽し)かったので、家に帰ってからRubyのスクリプトでも書こうかと思いきや、意外と簡単だったのでここに備忘録として記す。 本当は、額に汗して(目に汗かいて)回答を考えたのは、ここだけの秘密。(^^ゞ ちなみに、一覧表にした方が良いとの意見もあることは重々承知ですが、グラフや別の表に記載する場合は、どうしても符号の方が書きやすいかと…   手順 ここでは、平均値の大きい順にアルファベット(符号)を付ける方法を紹介する。 小さい順の方が良い方は、平均値の小さい順に並べれば良いかと(未確認 汗)。   (サンプルデータ) 1区 2区 3区 4区 5区 3 6 13 18 20   【例】 5%水準で有意差のある区 (1,3)、(1,4)、(1,5) (2,4)、(2,5)   1 平均の大きい区順に、列および行に書き、表を作成する。   5区 4区  3区  2区  1区   5区            4区            3区            2区            1区           2 右上、左下のどちらかを「-」等で消す(使わない)。   5区 4区  3区  2区  1区   5区    - -  -  -   4区      - -  -   3区        - -   2区          -  1区             3 有意差のある区に*を記入する。   5区 4区 3区 2区 1区 5区    - -  -  -   4区      - -  -   3区        - -   2区  * *      -  1区  * *   *     4 一番下に1行追加して、有意差のある数(ここでは*数)を記入する。

(慣れてくれば不要かな…)

  5区 4区  3区  2区  1区   5区    - -  -  -   4区      - -  -   3区        - -   2区 * *      -  1区 * *   *      *数 2  2 1  0  0  5 平均値の大きい区から列に「a」の記号を入力する。   5区 4区  3区  2区  1区   5区 a  - -  -  -   4区 a    - -  -   3区 a       - -   2区 * *      -  1区 * *   *      *数 2  2 1  0  0  6 続いて、4区も*数が同じなので、「a」を記入する。   5区 4区  3区  2区  1区   5区 a  - -  -  -   4区 a a  - -  -   3区 a  a     - -   2区 * *      -  1区 * *   *      *数 2  2 1  0  0  7 続いて、3区も入力するが、*数が異なるので、異なる符号(b)を記入する。   5区 4区  3区  2区  1区   5区 a  - -  -  -   4区 a a  - -  -   3区 a  a  b   - -   2区 * * b    -  1区 * *   *      *数 2  2 1  0  0  8 2区も*数が異なるので、異なる符号(c)を記入する。   5区 4区  3区  2区  1区   5区 a  - -  -  -   4区 a a  - -  -   3区 a  a  b   - -   2区 * * b c  -  1区 * *   * c    *数 2  2 1  0  0  9 1区は2区と同じ*数なので、同じ符号(c)を記入する。   5区 4区  3区  2区  1区   5区 a  - -  -  -   4区 a a  - -  -   3区 a  a  b   - -   2区 * * b c  -  1区 * *   * c c  *数 2  2 1  0  0  10 右側に新しい列を追加して、ユニークな符号を記入する。   5区 4区  3区  2区  1区  符号   5区 a  - -  -  -  a  4区 a a  - -  -  a  3区 a  a  b   - -  ab   2区 * * b c  - bc   1区 * *   * c c c  *数 2  2 1  0  0    こんな感じでやれば、わかりやすいかと… (^^♪   おわりに python等でスクリプトを作る際にも、「*の数が変わったら符号を変える」の法則にしたがい作ってみて(超手抜き 汗)。 ちなみに、「aab」は、uniqを使えば、[ab」になります。また、「*」はdeleteで消せそう… 筆者も、気が向いたら作るかもしれませんが、この程度のことならば、表計算ソフトで十分かと…<(手抜き 汗)。

 

最後に、この記事を読んで「わかりやすい」と感じましたら、遠慮なく、どうぞ遠慮なぞなさらず「はてなスター」だったかなボタンを押してくださいね。m(__)m それでは、また。 (2025-05-29 追記) kentei-hiaku 様 楽しい問題ありがとうございました。 ページ末で申し訳ありませんが、こんな感じの図をつけてみました。 わかりますでしょうか?

対戦表の作り方 (追記終了) (2025-05-31追記) 以下のページにアルファベットの符号を付けるpythonスクリプトを掲載した。
  • 多重比較のアルファベットの付け方をpythonスクリプトを作ってみた - ひゃまだのblog

(追記終了) 関連ページ
  • ひゃまだのblogインデックス - ひゃまだのblog
  • DebianでRを使って分散分析とTukey多重検定を必要最小限で実行する
  • Rでtukeyの多重検定を行って有意差のアルファベットをつける
📎📎📎📎📎📎📎📎📎📎
BOT