2012-05-22 27 views
15

私はペアのランキングの小さなセットでスピアマンのrhoを計算しています。 スピアマンは、適切にネクタイを扱っていないことでよく知られています。たとえば、6は2セットの一つで絆であっても、8つのランキングの2セットを取って、相関が非常に高いまでです:スピアマンの相関関係とネクタイ

> cor.test(c(1,2,3,4,5,6,7,8), c(0,0,0,0,0,0,7,8), method="spearman") 

    Spearman's rank correlation rho 

S = 19.8439, p-value = 0.0274 

sample estimates: 
     rho 
0.7637626 

Warning message: 
Cannot compute exact p-values with ties 

そしてかなりのように思えるp値< 0.05、このデータの高い統計的有意性。 SpearmanのRでタイ補正バージョンがありますか? 多くの結び付きでそれを計算するのに今までの最高の式は何ですか?

答えて

21

まあ、ケンドールのタウの順位相関は、2つの序(またはランク形質転換)変数間の統計的依存性のためにノンパラメトリック検定である - スピアマンのような、しかし、スピアマンのとは違って、はネクタイを扱うことができます。

より具体的には、ケンドールタウの統計値 - タウ-a、タウ-bおよびタウ-cの3つがある。 タウ-bは、ネクタイを扱うために特に適合している。

タウB統計は、xに関連付けられていないペアの数と数の間の幾何平均を表す除数用語によって関係(すなわち、対の両方のメンバーが同じ順序値を有する)を処理しますyに縛られていない。

ケンダルのタウはスピアマンのものではありません。彼らは同じではありませんが、それらもかなり似ています。文脈に基づいて、2つが似ているかどうかを判断する必要があります。

例えば

タウB

Kendall_tau_b = (P - Q)/((P + Q + Y0)*(P + Q + X0))^0.5 

P一致対の数( '一致' は、データ点のペアの各メンバーのランクが一致手段)

:番号不一致対

X0

X

に縛られないペアの数Y0:Y

明示的結びつきを占めスピアマンのrhoの変形が実際にあるに縛られないペアの数。ノンパラメトリックな順位相関統計が必要な状況では、私は常にrhoよりもタウを選択しています。その理由は、のρは、の平方和の誤差を合計します。一方、のタウは、絶対 の誤差の合計を表します。。 tauとrhoの両方が有能な統計であり、私たちが選択するようになっていることを考えると、ランク相関を表現するより自然なやり方で、常に矛盾(tau)に対する線形のペナルティが私には見えました。これはお勧めではありませんが、あなたの状況はまったく違っていて、そうでなければ指示します。

+0

PS:実際に文学は「タイ・訂正スピアマンの」言及:http://www.springerlink.com/content/j820615r16j27308 – Mulone

+0

タイ修正Spearmanのもう1つの例http://www.springerlink.com/content/t8110r4733g85162/ – Mulone

+0

@Mulone Qを読んだあと、元の回答に修正済みのスピアマンの言及はありませんでしたが(今編集しましたが)私はあなたがこの*修正統計統計を知っていたという印象を持っていました。いずれにせよ、私の答えは同じであった(タウのためのpref)が、私は具体的に言及した/私の編集で訂正されたrhoを区別しました。 – doug

9

私はexact=FALSEと思っています。

cor.test(c(1,2,3,4,5,6,7,8), c(0,0,0,0,0,0,7,8), method="spearman", exact=FALSE) 

    Spearman's rank correlation rho 

data: c(1, 2, 3, 4, 5, 6, 7, 8) and c(0, 0, 0, 0, 0, 0, 7, 8) 
S = 19.8439, p-value = 0.0274 
alternative hypothesis: true rho is not equal to 0 
sample estimates: 
     rho 
0.7637626 
+0

はい、あります - ありがとう! – ProfVersaggi

+3

これはエラーを抑制することができますが、それが妥当であるかどうかには対処しません。 P値が変更されていないことに注意してください。これは、?cor.testに見られるように、t分布仮定がまだ使用されていることを意味します。 – Ashe

5

cor.test with method = "spearman"は、実際には繋がりを補正したスピアマン係数を計算します。 私はZar 1984、Biostatistical Analysisの方程式からtie-correctedとtie-uncorrectedのSpearman係数を "手動で"計算して確認しました。ここでは、コードだ - ちょうどあなた自身のためにチェックするために、独自の変数名を置き換える:

ym <- data.frame(lousy, dors) ## my data 

## ranking variables 
ym$l <- rank(ym$lousy) 
ym$d <- rank(ym$dors) 


## calculating squared differences between ranks 
ym$d2d <- (ym$l-ym$d)^2 



## calculating variables for equations 19.35 and 19.37 in Zar 1984 

lice <- as.data.frame(table(ym$lousy)) 

lice$t <- lice$Freq^3-lice$Freq 

dorsal <- as.data.frame(table(ym$dors)) 

dorsal$t <- dorsal$Freq^3-dorsal$Freq 

n <- nrow(ym) 
sum.d2 <- sum(ym$d2d) 
Tx <- sum(lice$t)/12 
Ty <-sum(dorsal$t)/12 


## calculating the coefficients 

rs1 <- 1 - (6*sum.d2/(n^3-n)) ## "standard" Spearman cor. coeff. (uncorrected for ties) - eq. 19.35 

rs2 <- ((n^3-n)/6 - sum.d2 - Tx - Ty)/sqrt(((n^3-n)/6 - 2*Tx)*((n^3-n)/6 - 2*Ty)) ## Spearman cor.coeff. corrected for ties - eq.19.37 


##comparing with cor.test function 
cor.test(ym$lousy,ym$dors, method="spearman") ## cor.test gives tie-corrected coefficient! 
1

私は同様の問題を抱えて、ここで答えを読み取ることによって、およびRIのヘルプファイルは、あなたが関係を持っているとき、あなたが持っている、ということを見ました。パラメータexact = FALSEを追加するにはcor.test()関数に追加します。これを加えることによって、正確なP値を計算しようとせず、代わりに「試験統計量はゼロ平均および単位分散にスケーリングされた推定値であり、ほぼ正規分布になります。 結果は、私の場合はまったく同じでしたが、結びつきについての警告はありませんでした。

cor.test(x, y, method = "spearm", exact = FALSE) 
+0

あなたのデータが正規分布していない場合でもこれは有効でしょうか?これは、スピアマンを使用する理由の1つであるピアソンの製品 - モーメント相関 –

4
  • ネクタイ-修正スピアマン

    method="spearman"を使用して、あなたはスピアマンネクタイ・修正できます。スピアマンのrhoは、定義によると、ピアソンのサンプル相関係数は、ランクのサンプルデータで計算されています。したがって、それは、存在している場合と、関係がない場合の両方で機能します。

    > cor.test(rank(c(1,2,3,4,5,6,7,8)), rank(c(0,0,0,0,0,0,7,8)), method="pearson") 
    
    Pearson's product-moment correlation 
    
    data: rank(c(1, 2, 3, 4, 5, 6, 7, 8)) and rank(c(0, 0, 0, 0, 0, 0, 7, 8)) 
    t = 2.8983, df = 6, p-value = 0.0274 
    alternative hypothesis: true correlation is not equal to 0 
    95 percent confidence interval: 
    0.1279559 0.9546436 
    sample estimates: 
        cor 
    0.7637626 
    

    お知らせ、簡略化ノーネクタイスピアマンバージョンが、そこに存在する:あなたは自分のランクを(ネクタイ用midranksを)あなたの元のデータを交換しmethod="pearson"を使用した後、あなたは同じ結果を取得することがわかります 実際には結びのない場合にはcor.test()の実装で使用されますが、上記の定義と同じです。

  • P値データに関係する場合に

    、正確なp値は、スピアマンのためにも(cor.test()実装内)ケンダル測定、従って警告のためにも計算されません。あなたがexact=FALSEを設定する必要があります警告を取得しないため、エドゥアルドの記事で述べたように、