Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Nagoya.R #15 順位相関係数の信頼区間の算出

3,564 views

Published on

Nagoya.R #15 LTにて使用したスライドです。Rで順位相関係数の信頼区間の算出を行うパッケージ・関数の紹介をしました。

Published in: Education
  • Be the first to comment

Nagoya.R #15 順位相関係数の信頼区間の算出

  1. 1. 順位相関係数の 信頼区間の算出
  2. 2. 川口 勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp Nagoya.R #15 Lightning Talk 2016/3/27
  3. 3. はじめに • 私が普段扱うデータ –質問紙などの順序尺度データ –正規性のないデータ • そのデータでやること –相関関係をみる
  4. 4. cor.test 関数 • 以下の分析を行う –無相関検定 –信頼区間の算出 –相関係数の算出
  5. 5. cor.test 関数 • methodオプションにて相関係数の種 類を指定 –“pearson”:ピアソンの積率相関係数 –“spearman”:スピアマンの順位相関係数 –“kendall":ケンドールの順位相関係数 –指定がない場合は “pearson” > cor.test(dat[,1], dat[,2], method="spearman")
  6. 6. > cor.test(dat[,1], dat[,2], method="pearson") Pearson's product-moment correlation data: dat[, 1] and dat[, 2] t = 4.2334, df = 17, p-value = 0.0005598 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.3886164 0.8832042 sample estimates: cor 0.7163759 ピアソンの場合
  7. 7. > cor.test(dat[,1], dat[,2], method="spearman") Spearman's rank correlation rho data: dat[, 1] and dat[, 2] S = 393.5528, p-value = 0.002348 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.6547782 スピアマンの場合
  8. 8. > cor.test(dat[,1], dat[,2], method="spearman") Spearman's rank correlation rho data: dat[, 1] and dat[, 2] S = 393.5528, p-value = 0.002348 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.6547782 信頼区間がどこかにいってしまった スピアマンの場合
  9. 9. cor.test 関数 • 95%信頼区間が算出されるのは、ピ アソンの積率相関係数の場合のみ –順位相関係数を指定した場合は、95%信 頼区間を算出してくれない • 順位相関を使う場合、信頼区間はど うやって出せばよいのか
  10. 10. langtest • http://langtest.jp/shiny/cor/ • すごく簡単 • Fisherの z変換を使用して、95%信頼 区間を算出
  11. 11. DescTools パッケージ • SpearmanRho 関数を使用する –使用方法は、以下のとおり –引数 • データ2つ • 信頼水準(今回は95%) > SpearmanRho(dat[,1],dat[,2],conf.level=0.95)
  12. 12. やってみた • こんな感じ –先述の方法の結果とも一致しました > library(DescTools) 警告メッセージ: パッケージ ‘DescTools’ はバージョン 3.1.3 の R の下で造 られました > SpearmanRho(dat[,1],dat[,2],conf.level=0.95) rho lwr.ci ups.ci 0.6544704 0.2983596 0.8506335
  13. 13. RVAideMemoireパッケージ • 長い名前のパッケージ • spearman.ci 関数を使用する –ブートストラップ法を用いて信頼区間 の計算を行う
  14. 14. RVAideMemoireパッケージ • spearman.ci 関数を使用する –使用方法は、以下のとおり –引数 • データ2つ • 抽出回数 • 信頼水準(今回は95%) > spearman.ci(dat[,1], dat[,2], nrep=1000, conf.level=0.95)
  15. 15. > library(RVAideMemoire) *** Package RVAideMemoire v 0.9-51 *** > spearman.ci(dat[,1], dat[,2], nrep=1000, conf.level=0.9 5) Spearman's rank correlation data: dat[, 1] and dat[, 2] 1000 replicates 95 percent confidence interval: 0.1940142 0.9193015 sample estimates: rho 0.6547782 やってみた
  16. 16. NSM3 パッケージ • これはケンドールの場合のみ • kendall.ci 関数を使用する –2種類の計算方法が用意されている • 漸近解析 • ブートストラップ法 –計算方法が違うため、langtestの結果と は一致しない
  17. 17. NSM3 パッケージ • kendall.ci 関数を使用する –漸近解析を用いる場合 –bootstrapオプションをFalseにする > library(NSM3) > kendall.ci(dat[,1], dat[,2], alpha=0.05, bootstrap=F) 1 – alpha = 0.95 two-sided CI for tau: 0.187, 0.867
  18. 18. NSM3 パッケージ • kendall.ci 関数を使用する –ブートストラップを用いる場合 –bootstrapオプションをTrueにして、Bオ プションで抽出回数を設定 > library(NSM3) > kendall.ci(dat[,1], dat[,2], alpha=0.05, bootstrap=T, B=1000) 1 – alpha = 0.95 two-sided CI for tau: 0.109, 0.838
  19. 19. ちなみに
  20. 20. cor.test 関数 • cor.test 関数を使いつつ、順位相関係 数の信頼区間を算出する方法 • rank 関数を用いてデータを順位デー タに変換し、ピアソンの積率相関を 算出する > cor.test(rank(dat[,1]), rank(dat[,2]))
  21. 21. > cor.test(rank(dat[,1]), rank(dat[,2]), method="pea rson") Pearson's product-moment correlation data: rank(dat[, 1]) and rank(dat[, 2]) t = 3.6724, df = 18, p-value = 0.001742 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.2983596 0.8506335 sample estimates: cor 0.6544704 やってみた 表示はピアソンになっているが、相関係数はス ピアマンで算出した場合と一致 信頼区間が出てきた
  22. 22. 比較 下限 上限 cor.test + rank 0.298 0.851 langtest 0.298 0.851 DescTools 0.298 0.851 RVAideMemoire 0.194 0.919 ブートストラップを用いる RVAideMemoire以外は、結果が一致
  23. 23. • スピアマンの順位相関の場合 –cor.test 関数とrank関数の組み合わせが 一番簡単(ただしlangtestを除く) –ブートストラップ法を使うなら、 RVAideMemoire パッケージ(少し範囲が 大きめに出る?) • ケンドールの順位相関の場合 –langtest 、もしくはNSM3パッケージを 使う まとめ
  24. 24. おしまい

×