Statistics 哪种方法最适合计算不相关数据集的马修斯相关系数(MCC)值?

Statistics 哪种方法最适合计算不相关数据集的马修斯相关系数(MCC)值?,statistics,Statistics,哪种方法最适合计算不相关数据集的马修斯相关系数(MCC)值?我不确定这里的“最佳方法”是什么意思,但给出了一个例子,计算应该很简单。在Python中: 导入数学 #tp为真阳性,fn为假阴性,等等 mcc=(tp*tn-fp*fn)/数学sqrt((tp+fp)*(tp+fn)*(tn+fp)*(tn+fn)) 代码> 以前的答案是正确的,但是在你的公式中,你可能也想考虑分母中的四和中的任何一个是零的情况;在这种情况下,分母可以任意设置为1 为了完整起见,我在下面添加了R代码(可以找到原始代码)

哪种方法最适合计算不相关数据集的马修斯相关系数(MCC)值?

我不确定这里的“最佳方法”是什么意思,但给出了一个例子,计算应该很简单。在Python中:

导入数学
#tp为真阳性,fn为假阴性,等等
mcc=(tp*tn-fp*fn)/数学sqrt((tp+fp)*(tp+fn)*(tn+fp)*(tn+fn))

<>代码>

以前的答案是正确的,但是在你的公式中,你可能也想考虑分母中的四和中的任何一个是零的情况;在这种情况下,分母可以任意设置为1

为了完整起见,我在下面添加了R代码(可以找到原始代码)

mcc
mcc <- function (actual, predicted)
{
  # handles zero denominator and verflow error on large-ish products in denominator.
  #
  # actual = vector of true outcomes, 1 = Positive, 0 = Negative
  # predicted = vector of predicted outcomes, 1 = Positive, 0 = Negative
  # function returns MCC

  TP <- sum(actual == 1 & predicted == 1)
  TN <- sum(actual == 0 & predicted == 0)
  FP <- sum(actual == 0 & predicted == 1)
  FN <- sum(actual == 1 & predicted == 0)

  sum1 <- TP+FP; sum2 <-TP+FN ; sum3 <-TN+FP ; sum4 <- TN+FN;
  denom <- as.double(sum1)*sum2*sum3*sum4 # as.double to avoid overflow error on large products

  if (any(sum1==0, sum2==0, sum3==0, sum4==0)) {
    denom <- 1
  }

  mcc <- ((TP*TN)-(FP*FN)) / sqrt(denom)
  return(mcc)
}