7

2 つの相関係数が大幅に異なるかどうかをテストするにはどうすればよいですか? - GNU R では?

つまり、同じ変数 (年齢と収入など) 間の効果が 2 つの異なる母集団 (サブサンプル) で異なる場合です。

背景情報については、異なるグループ間で同じ変数の相関係数を比較する方法、Spearman の相関係数の違いに関する有意性検定(両方とも CrossValidated) を参照してください。

4

2 に答える 2

6

複数の係数のペアを比較する場合、GNU R のすぐに使用できる関数を次に示します ( 2 つの相関係数の差の有意性Quantitative Analysis and Politics, PDFに基づく)。

cor.diff.test = function(r1, r2, n1, n2, alternative = c("two.sided", "less", "greater")) {

  Z1 = 0.5 * log( (1+r1)/(1-r1) )
  Z2 = 0.5 * log( (1+r2)/(1-r2) )

  diff = Z1 - Z2
  SEdiff = sqrt( 1 / (n1 - 3) + 1 / (n2 - 3))
  diff.Z = diff / SEdiff

  if (alternative == "less") {
    return(pnorm(diff.Z, lower.tail=F))
  } else if (alternative == "greater") {
    return(pnorm(-diff.Z, lower.tail=F))
  } else if (alternative == "two.sided") {
    return(2 * pnorm( abs(diff.Z), lower.tail=F))
  } else {
    warning(paste("Invalid alterantive", alternative), domain=NA)
    return(NA)
  }
}
于 2013-01-25T09:36:59.277 に答える
2

パッケージcocorは、2 つの独立した相関係数または従属相関係数が大幅に異なるかどうかをテストする関数を提供します。利用可能なパッケージの Web インターフェイスもあります: http://comparingcorrelations.org

于 2013-12-05T10:29:47.827 に答える