読者です 読者をやめる 読者になる 読者になる

StatModeling Memorandum

StanとRとPythonでベイズ統計モデリングします. たまに書評.

Rで谷本距離(Tanimoto Distance)を算出する

RでTanimoto Distanceを算出する関数を作りました。

corと同じように使います。粗く言えばcorは相関係数なので「変化が似ている」、distanceは「絶対値が似ている」、Tanimoto Distanceはその間のイメージです。

tanimoto <- function(x) {
   if(is.data.frame(x)) x <- as.matrix(x)
   x[is.na(x)] <- 0
   n <- ncol(x)
   ab <- t(x) %*% x
   aa <- diag(ab)
   aa.m <- matrix(rep(aa,n),n)
   y <- ab/(aa.m + t(aa.m) - ab)
   return(y)
}

現時点ではデータ中のNAには0を入れています。NAがあると内積に相当する部分がゼロになるので少し“遠く”なります。