はじめにこのサイトについて
can-no.iconかんのです(2023年の5月末に書いてます)。
【自己紹介】
マウスの鳴き声の研究をしている者です。基本的な研究手法とバックグラウンドは生物学だと思っているんですが、最近は分子も自分で扱わなくなってきたし、自分の大きな学問分野の専門をなんと呼べば良いのか分からななくなってきましたが、統計には詳しくないという意味で、一般的な実験室の生物学者だと思ってもらうと良さそうに思います(統計が苦手な人、多いですよね)。たぶん、行動神経科学が専門です。
※生態学者は統計に強い傾向があると思います
ちな、僕の専門の齧歯類の鳴き声である超音波発声の重要論文をまとめたscrapbox (/cannonousv) もあります。 【このサイトを作った動機と基本方針】
そう、そんな、統計にたいして詳しくない僕が、Rでscriptをまとめて、scrapboxにまとめようと思い至りました。研究室のラボメン(主に学部生)に毎年一から教えなくても良いように、自学してもらうためのツールにもしたいという狙いがあります。
僕がRを始めた最初の動機は、「きれいなグラフを(フリーソフトで)自由に描きたい」です。
もともといくつかの統計ソフトを使っていたのですが、使用料が高騰したり、ソフトごとにできることに限界があり、目的に応じて複数のソフトを行き来しなければならないのも面倒でした。
そんなとき、知人からfacebookで
知人「Rならば、余裕ですよ」
かんの「でも、ハードル高いですよねぇ」
知人「Rならば、余裕ですよ」
と言われ、Zoomで講習までしてくれたので、Rを覚えたりました。そう、Rならば余裕なのです。
たぶん私が「知人」です。
そう、あなたがわたしを変えた「知人」です。
このサイトおよび僕が書くscriptの基本方針を箇条書きでまとめると、
生物学分野でよく使うグラフをきれいに描きたい
群ごとに色分けしたdotsで描きたい
というものです。
しかし、ここまでできてしまうと、
どうせならグラフの描画と同時に検定もしてしまいたい
統計ソフトを使うように、よく使う検定はいつでも実行できるようなscriptにしてしまいたい
と、思うようになり、そのようなものを書きました。
さらに、です!この話は、多少なりともRを触ったことがある人じゃないと通じないですが、市販の統計ソフトと比べた際、もしくは、Rでの検定方法などを自学しようとした際に感じるめんどくささも解消したいと思いました。それが「よく使う検定はいつでも実行できるようなscriptにしてしまいたい」という上記の気持ちにも込められています。
Rを使う際、もしくは勉強する際にめんどくさいと感じたのは、以下のような点です。
Excelなどでまとめたスプレッドシートのデータを読み込んで検定をする方法が書いていない本や解説が多い
俺たちはもうデータを(Excelで)持っているんだ!(d <- c(データのマトリックス) みたいな書き方をしたくないんだよ!(教科書の例よりもデータが多いんだよ!))
検定方法によってスプレッドシートからのデータの読み込み方がこんなにも違うなんて思わなかったよ!
データシート内の変数名を指定するだけで読み込んでくれる関数はありがたいなぁ
その検定で使う変数だけが過不足なく存在するデータシートじゃないと実行してくれない関数は、そう言ってくれ...
こんな気持ちが込み上げてきます。なので、これらを解消しました。
#basic のハッシュタグを付けた検定方法とグラフの書き方については、このハッシュタグの全ての章のscriptが全部書いてある1つのファイルを公開しました。 また、この #basic で使うデータも、1つの csv ファイルにまとめています。なので、一度このcsvを読み込んだら、あとは、スクリプトを前からポチポチ実行していくと、全部出来ます。初学者が最初に躓く、パスの通し方とファイルの読み込み(ファイルを置く場所の注意)も難しくならないように、GUI上でフォルダが開くように書いてあります。 この辺りは、文字に起こすのが大変なので、以下のページにある動画にしました。このページを読んだ方は、まずはそのページに行ってもらうのが良いでしょう。
このサイトの各ページでは、僕自身の頭の整理のためにも、そのページで使うパッケージ(特定の描画とか検定方法に使うため関数などがまとまったセット)のみを抜き出して書き直してます(使わないパッケージも混ざってたらごみんなさい)。
各ページには、グラフのスクショが冒頭に貼ってあります。なので、topページではそのサムネイルが並んでいるはずです。「こんなグラフを描きたい!」と思ったページを見てもらうと良いでしょう。
【事前知識など】
ある程度わかりやすく書き記していきたいのですが、全くRを触ったことがない人にも分かるように書くまでの時間と素養が僕にはありません。「Rを全くやったことがない」という人は、ぜひ、羊土社の以下の本を5章まで読んでみてください。
『Rをはじめよう生命科学のためのRStudio入門』
この本も、大学で習うような基礎統計は学習済みであることを前提に書かれていますので、このサイトでもその方針です。
とは言え、群間の差の検定などの基本的な方法に関しても、僕の統計の基本方針に基づいて選んだ検定方法をこのサイトに記載してますので、その基本方針が分からないと、疑問が出てくるかもしれません。
群間の差の検定をする際の方法の選択にに関して、簡単なフローチャートと補足説明を付して、このページは終わりたいと思います。
https://scrapbox.io/files/6474e6e283c786001c7a38a0.png
https://scrapbox.io/files/6474e71a2713af001b37b71f.png
※ このサイトでは、後検定(post-hoc test)の多重比較に用いるP値の調整方法としては、Holm法を好んで使っています。
ポイントは
2群間の差の検定でt検定を使いたい時
one-way ANOVA(対応なし)を使いたいとき
に関しては、(群間の等分散性の検定などせずに)問答無用で welch を使うということです。
その辺の理由に関しては、
などを参考にして下さい。
「定石がない」と書いてある部分は、僕もまだまだ勉強中なのですが、一般化線型モデルとか一般化線型混合モデルなどを、データ分布に応じて使っていくしかないと思います。一旦、清水先生のこちらのページを見てもらうと良いでしょうか。 https://norimune.net/1761 あと、
このサイトでも、マン•ホイットニーのU検定 (Mann‒Whitney U test) とクラスカル•ウォリス検定 (Kruskal-Wallis test) というノンパラ検定を扱ってるんですが、ノンパラだからといってどんな分布でも良いというわけではなく、実は等分散性を仮定している検定です。なので、結構使えない場合が多いです。
(1)使用上の注意点
非常によく用いられる検定法だが、しかし、正規分布していない場合にいつでも使えるわけではなく、実は等分散性を仮定することを前提とした検定方法である。昨今、多くの研究で不等分散の場合に用いられている誤用の危険性が指摘されている(参考文献は以下)。
(2)代替案
等分散性を仮定せずに用いることができるノンパラの独立2群間検定として、ブルンナー•ムンツェル検定(Brunner-Munzel Test) というものもある。
しかし、Brunner-Munzel検定が実装されている統計ソフトはまだ少なく(2019年4月現在では、HAD とエクセル統計のみと思われる)、一般的に知られているとは言い難い。あと、nが少ないと起きるのか、僕はよく分かってないが、計算が収束しなくて結果が算出されないことも多いように思う。welchのところで紹介した「青木先生のサイト」や上記「ほくそ笑む」のサイトを見ると、様々な状況でのシミュレーションがなされており、 正規分布・等分散性などの条件を問わず、常にwelchのt検定やBrunner-Munzel検定を用いた方が安全なようにも思われる。しかし、世界的にコンセンサスを得られていると言えるかどうか(論文を投稿した際に査読で認められるかどうか)、は僕には判然としない(誰も教えてくれないの...)。上記の様な各検定法の得意•不得意な状況(第1種の過誤の置き方)の紹介と検証をした論文としては以下。
2024年2月末、科研費に落ちたあとに何故か改めて読んだのですが、U検定とKruskal-Wallis検定はもしくはstudentのt検定も適用できる状況は実際の実験結果ではかなり少なく、使用を避ける方が懸命という気持ちになっています。Welchのt検定や Welchのone-way ANOVAを使うのが1stチョイスだなぁと思いました。
名取(2014)の p. 174に引用されている Ruxton (2006) では "IN CONCLUSION: A STEP-BY-STEP SUMMARY" の段落に 以下のように書かれています(ランク変換→Welchの検定 というのは、論文で実際に使われているのを僕は見たことがないので、最後の手段の位置付けにしています(まだやったことない))。
If you want to compare the central tendency of 2 populations based on samples of unrelated data, then the unequal vari- ance t-test should always be used in preference to the Stu- dent’s t-test or Mann–Whitney U test. To use this test, first examine the distributions of the 2 samples graphically. If there is evidence of nonnormality in either or both distribu- tions, then rank the data. Take the ranked or unranked data and perform an unequal variance t-test.
Graeme D. Ruxton, The unequal variance t-test is an underused alternative to Student's t-test and the Mann–Whitney U test, Behavioral Ecology, Volume 17, Issue 4, July/August 2006, Pages 688–690, https://doi.org/10.1093/beheco/ark016 【グラフ描画方法の方針】
パラメトリック検定では平均値±標準誤差(SEM)、ノンパラ検定では箱ひげ図で描いてます。