31

ペアランキングの小さなセットでスピアマンの順位係数を計算しています。スピアマンは、ネクタイを適切に処理しないことでよく知られています。たとえば、8つのランキングの2つのセットを取得すると、6つが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値<.05は、このデータの統計的有意性がかなり高いようです。Rにスピアマンのネクタイ修正バージョンはありますか?多くの関係でそれを計算するためのこれまでの最良の公式は何ですか?

4

7 に答える 7

37

ケンドールのタウ順位相関は、スピアマンのように2つの順序(または順位変換)変数間の統計的依存性のノンパラメトリック検定でもありますが、スピアマンの順位とは異なり、同順位を処理できます。

より具体的には、3つのケンドールタウ統計(tau-a、tau-b、およびtau-c)があります。tau-bは、特にタイを処理するように適合されています。

tau-b統計は、xで結ばれていないペアの数とyで結ばれていない数の間の幾何平均を表す除数項によって、同点(つまり、ペアの両方のメンバーが同じ順序値を持つ)を処理します。

ケンドールのタウはスピアマンのタウではありません。同じではありませんが、非常によく似ています。コンテキストに基づいて、2つが十分に類似しているかどうかを判断する必要があります。そのようなものをもう一方に置き換えることができます。

たとえば、tau-b

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

P一致するペアの数(「一致する」とは、データポイントのペアの各メンバーのランクが一致することを意味します)

Q不一致のペアの数

X0:xに結び付けられていないペアの数

Y0:yに結び付けられていないペアの数

実際、関係を明示的に説明するスピアマンの順位係数の変形があります。ノンパラメトリックな順位相関統計が必要な状況では、常にローよりタウを選択しました。その理由は、rhoは二乗誤差を合計するのに対し、tauは絶対不一致を合計するためです。タウとローの両方が有能な統計であり、選択する必要があることを考えると、不一致(タウ)に対する線形ペナルティは、ランク相関を表現するためのより自然な方法であると常に私には思えてきました。これは推奨事項ではありません。コンテキストがまったく異なる可能性があり、そうでない場合は指示されます。

于 2012-05-22T23:37:57.170 に答える
17

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 
于 2014-06-29T23:27:01.747 に答える
7

cor.test with method = "spearman"は、実際には、同順位を補正したスピアマン係数を計算します。Zar 1984、Biostatistical Analysisの方程式から、タイ補正およびタイ未補正のスピアマン係数を「手動で」計算することで確認しました。コードは次のとおりです。独自の変数名に置き換えて、自分で確認してください。

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!
于 2014-07-05T12:27:46.047 に答える
6
  • ネクタイ-修正されたスピアマン

    を使用method="spearman"すると、タイが修正されたスピアマンが得られます。定義によると、スピアマンの順位係数は、サンプルデータのランクに対して計算されたピアソンのサンプル相関係数です。したがって、それは関係の存在下と非存在下の両方で機能します。元のデータをそれらのランク(同点のミッドランク)に置き換えて使用すると、同じ結果が得られることがわかります。method="pearson"

    > 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 
    

    簡略化されたタイなしのSpearmanバージョンが存在することに注意してください。これは、実際にはタイがない場合の実装で使用されcor.test()ますが、上記の定義と同等です。

  • P値

    データが同点の場合、正確なp値は、SpearmanとKendallの測定値(実装内)のどちらについても計算されないcor.test()ため、警告が表示されます。エドゥアルドの投稿で述べたように、警告を受け取らないようにするには、設定する必要がありますexact=FALSE

于 2015-12-18T14:21:24.533 に答える
4

論文「コンセンサスランキング問題への適用を伴う新しい順位相関係数」は、タイ問題を伴うランキングを解決することを目的としています。また、Tau-bは、弱い順序間の一致を測定するための順位相関測定として使用されるべきではないことにも言及しています。

Emond、EJおよびMason、DW(2002)、コンセンサス順位付け問題への適用を伴う新しい順位相関係数。J.マルチクリティカル。決定。肛門、11:17-28。doi:10.1002 / mcda.313

于 2018-10-23T22:07:16.343 に答える
3

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

cor.test(x, y, method = "spearm", exact = FALSE)
于 2015-04-11T17:27:29.787 に答える
2

RパッケージConsRankには、EdmonとMasonのTau_Xの実装が含まれています。これは、タイを処理するための(数学的に)現在最もよく知られている方法のようです。

ドキュメントを参照してください。

Tau_X(X, Y=NULL)

ここXで、は行列にすることができます。

@wibeasleyが指摘しているように、Emond and Mason(2002)は、ケンダルのTau-bよりも優れていると思われる新しい順位相関係数であるTau_Xを提案しました。NelsonGonは、この論文が2002年のものであり、質問より数年前のものであることを懸念していましたが、スピアマンの相関は1904年のものであり、ケンドールのタウは1938年のものであることを見逃しているようです。

于 2019-07-19T14:25:11.283 に答える