何度もやってるのにどうも覚えられないのでここにまとめてメモ書き。自分の研究は、質問紙などの順序尺度データだったり、正規性のないデータだったりを使うことが多いので、相関分析をする場合には必然的にピアソンの積率相関係数ではなく、順位相関係数を使うことが多い。基本的にはスピアマンを使っているが、ケンドールが報告されているのをあまり見かけないのでいつかドヤ顔で使ってみたいという厨二心もある。順位相関係数を出すだけならすぐにできる。Rだとこう(ダジャレではない)。#ケンドール無相関検定とか信頼区間の算出をする場合はcor.test関数を使う(引数が2つ必要なことに注意)。値を計算することができはいでてきt、あ、あれ?調べてみるとcor.test関数では、ピアソンの積率相関の場合のみにしか信頼区間を出してくれないらしい。http://www.inside-r.org/r-doc/stats/cor.test次はこれを試してみた。corrgramパッケージのcorrgram関数。信頼区間が一気出しできるpanel.confオプションが便利。https://cran.r-project.org/web/packages/corrgram/corrgram.pdfだがここにも落とし穴。母相関係数の信頼区間を一気出しするためにcorrgramを使ったら、出てきた相関係数(スピアマンの順位相関)が、psychパッケージのpairs.panels(method=”spearman”)で出した相関係数と一致せず、おかしいなあと思って調べてみた。2015年7月31日マニュアルを読みなおしてみると、どうもcorrgramで信頼区間を出すpanel.confオプションは、オプションで順位相関を選んだ場合(cor.method=”spearmman/kendall”)機能しないそうだ。結局は中でcor.testが動いているので、順位相関では信頼区間が出せないいうことだそうだ。【解決策1】langtestを使う。スピアマンでもケンドールでも使える。簡単かつ手っ取り早い。http://langtest.jp/shiny/cor/【解決策2】スピアマンの場合、DescToolsパッケージのSpearmanRho関数を使う。0.8506335この結果はlangtestの結果と一致する。【解決策3】これもスピアマンの場合。RVAideMemoireパッケージのspearman.ci関数を使う。https://cran.r-project.org/web/packages/RVAideMemoire/RVAideMemoire.pdfこれは上の2つとは違い、スピアマン順位相関のブートストラップ信頼区間を出してくれる。estimates:rho0.6544704【解決策4】これはケンドールの場合のみ。NSM3パッケージのkendall.ci関数を使う。https://cran.r-project.org/web/packages/NSM3/NSM3.pdfどうもこの本の計算方法に基づいて信頼区間を算出するようだ。0.838ブートストラップを使用する場合は、Bの部分で抽出回数を指定する。種類があって、どれを使うのがいいかはよくわからないし、もう全部langtestでOKじゃなかろうかと思ったりもするが、手数は多いに越したことはないだろう。【追記1】2016.03.13このようなご指摘があったのでここで紹介させていただきます。より,スピアマンの順位相関係数と信頼区間が求まる(表示はピアソンの積率相関係数だが)。#15にて、このブログの内容について発表しました。以下は発表スライドです。【追記3】2016.03.27スピアマンの順位相関係数の信頼区間について、以下のページをご紹介いただきました。RjpWikicor.test関数とrank関数の組み合わせで算出した信頼区間と、ブートストラップで算出した信頼区間との間には大きな差はないようだ。