順位相関係数の...

25
順位相関係数 信頼区間 算出

Transcript of 順位相関係数の...

Page 1: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

順位相関係数の

信頼区間の算出

Page 2: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

川口勇作@kwsk3939

[email protected]

Nagoya.R #15 Lightning Talk

2016/3/27

Page 3: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

はじめに

• 私が普段扱うデータ

–質問紙などの順序尺度データ

–正規性のないデータ

• そのデータでやること

–相関関係をみる

Page 4: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

cor.test 関数

• 以下の分析を行う

–無相関検定

–信頼区間の算出

–相関係数の算出

Page 5: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

cor.test 関数

• methodオプションにて相関係数の種類を指定

– “pearson”:ピアソンの積率相関係数

– “spearman”:スピアマンの順位相関係数

– “kendall":ケンドールの順位相関係数

–指定がない場合は “pearson”

> cor.test(dat[,1], dat[,2], method="spearman")

Page 6: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

> 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

ピアソンの場合

Page 7: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

> 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

スピアマンの場合

Page 8: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

> 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

信頼区間がどこかにいってしまった

スピアマンの場合

Page 9: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

cor.test 関数

• 95%信頼区間が算出されるのは、ピアソンの積率相関係数の場合のみ

–順位相関係数を指定した場合は、95%信頼区間を算出してくれない

• 順位相関を使う場合、信頼区間はどうやって出せばよいのか

Page 10: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

langtest

• http://langtest.jp/shiny/cor/

• すごく簡単

• Fisherの z変換を使用して、95%信頼区間を算出

Page 11: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

DescTools パッケージ

• SpearmanRho関数を使用する

–使用方法は、以下のとおり

–引数

•データ2つ

•信頼水準(今回は95%)

> SpearmanRho(dat[,1],dat[,2],conf.level=0.95)

Page 12: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

やってみた

• こんな感じ

–先述の方法の結果とも一致しました

> 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

Page 13: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

RVAideMemoireパッケージ

• 長い名前のパッケージ

• spearman.ci関数を使用する

–ブートストラップ法を用いて信頼区間の計算を行う

Page 14: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

RVAideMemoireパッケージ

• spearman.ci関数を使用する

–使用方法は、以下のとおり

–引数

•データ2つ

•抽出回数

•信頼水準(今回は95%)

> spearman.ci(dat[,1], dat[,2], nrep=1000,

conf.level=0.95)

Page 15: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

> 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

やってみた

Page 16: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

NSM3 パッケージ

• これはケンドールの場合のみ

• kendall.ci関数を使用する

–2種類の計算方法が用意されている

•漸近解析

•ブートストラップ法

–計算方法が違うため、langtestの結果とは一致しない

Page 17: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

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

Page 18: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

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

Page 19: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

ちなみに

Page 20: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp
Page 21: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

cor.test 関数

• cor.test関数を使いつつ、順位相関係数の信頼区間を算出する方法

• rank関数を用いてデータを順位データに変換し、ピアソンの積率相関を算出する

> cor.test(rank(dat[,1]), rank(dat[,2]))

Page 22: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

> 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

やってみた

表示はピアソンになっているが、相関係数はスピアマンで算出した場合と一致

信頼区間が出てきた

Page 23: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

比較

下限 上限

cor.test + rank 0.298 0.851

langtest 0.298 0.851

DescTools 0.298 0.851

RVAideMemoire 0.194 0.919

ブートストラップを用いるRVAideMemoire以外は、結果が一致

Page 24: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

• スピアマンの順位相関の場合– cor.test関数とrank関数の組み合わせが一番簡単(ただしlangtestを除く)

–ブートストラップ法を使うなら、RVAideMemoireパッケージ(少し範囲が大きめに出る?)

• ケンドールの順位相関の場合– langtest、もしくはNSM3パッケージを使う

まとめ

Page 25: 順位相関係数の 信頼区間の算出221.114.158.246/~bunken/statistics/2016_11_21.pdf順位相関係数の 信頼区間の算出 川口勇作 @kwsk3939 y.kawaguchi@nagoya-u.jp

おしまい