刷了一篇“Measures of distance between samples: non-Euclidean”,順手寫個筆記
×××××××××××××××××××××××××啦啦啦今天渾身都痛簡直萌萌噠××××××××××××××××××××××××××××××××××××
衡量距離的東西,我們稱為metric,那么兩個點a和b之間的距離應該滿足這些條件(朝老師提過!!好愛她)
但是有的時候第三條會很難滿足,因為它們並不是距離,而是一種dissimilarity
Bray-Curtis dissimilarity: 衡量樣本之間的差異
下面是栗子!!!大栗子!!!!
樣本數據:
計算:
也就是這個公式:
如果說我們計算了30個樣本兩兩之間的BC-dissimilarity,可以發現(3)被違背了。
一般會把它寫成百分比,那么Bray-Curtis index = 100 - Bray-Curtis dissimilarity
Bray-Curtis dissimilarity versus chi-square distance
首先,chi-square distance是啥:
很難說到底哪個更好。
BC的好處是:直觀(0就是相同,1就是不同),但違反三角不等式;
chi-square的好處是:true metric(0是指相對豐度identical,最大值與數據有關)
如果都用relative count,那么兩者相似;如果使用raw count,size(數值大小)相差大時,很不同。
比如下面的例子,當樣本之間的差異不夠大時,卡方反映的不夠准確。
L1 distance (city-block)
Lp distance,J是維度數。L2就是歐式距離。
Dissimilarity measures for presence–absence data(dichotomous,二叉的)
Jaccard index:co-presence/(sum - co-absence)
比如A和B,有sp1,sp2,sp5和sp10是co-presence的,sp6和sp7是co-absence的,sp3sp4sp8sp9是mis-match,
所以應為4/(10-2)=0.5
dissimilarity = 1 - Jaccard index
注意:co-absence也是一種match,但是很多時候我們不關心那些,所以才用Jaccard index來衡量相似度
correlation coefficient
Distances for heterogeneous data(異構數據,比如下面這種連續和離散混合的)
Gower’s generalized coefficient of dissimilarity(將連續和離散的數據標准化)
1)計算各類別的均值與標准差。Region可以把幾個可能的值列出來,用01序列來表示。類似下圖
2) 標准化
連續值是減去均值再除以標准差,離散值標准化后再乘系數1/√2 = 0.7071(補償0/1編碼)
3)計算距離,如L1,L2等。總=連續的+離散的
另一種處理方法:
先對每組數據計算distance/dissimilarity,然后再把這些東西按加權平均。
下面是有三種不同數據的情況。權重可以根據自己的需要調整。