7

您如何测试两个相关系数是否显着不同 - 在 GNU R 中?

也就是说,如果相同变量(例如,年龄和收入)之间的影响在两个不同的总体(子样本)中是不同的。

有关背景信息,请参阅如何比较不同组中相同变量的相关系数和Spearman 相关系数差异的显着性检验(均在 CrossValidated 上)。

4

2 回答 2

6

如果您想比较多对系数(基于两个相关系数之间差异的显着性定量分析和政治,PDF ),这里是一个 GNU R 的现成函数:

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提供了测试两个独立或依赖相关系数是否显着不同的函数。该软件包还有一个 Web 界面:http: //comparingcorrelations.org

于 2013-12-05T10:29:47.827 回答