我想问一下是否有人熟悉距离矩阵中缺失值的估算。对于普通数据(具有连续和名义变量的表),存在许多插补技术,例如,热甲板和冷甲板,预测模型等。但是,几乎没有关于如何处理距离矩阵的信息。
示例:
distance <- dist(rnorm(20))
distance[c(10, 20, 30, 40, 50, 60)] <- NA
在这种情况下如何估算缺失值?
答案 0 :(得分:4)
有两个程序允许完成部分距离矩阵:一个基于超参数不等式,另一个基于使用四点条件的加法程序(Makarenkov&amp; Lapointe详细描述的算法, 2004)。这两种方法都在R。
的ape包中实现方法的选择取决于距离属性。
# Generate a distance matrix with five missing values
set.seed(111)
dd <- dist(1:10)
dd[sample(x = 1:length(dd), size = 5)] <- NA
dd
1 2 3 4 5 6 7 8 9
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
7 6 5 4 NA NA 1
8 7 6 NA 4 3 2 1
9 8 NA 6 5 4 3 2 NA
10 9 8 7 6 5 4 3 2 1
# Replace missing data
library(ape)
as.dist( additive(dd) ) # additive procedure
as.dist( ultrametric(dd) ) # ultrametric procedure
Makarenkov V,Lapointe FJ(2004)。用于从不完全距离矩阵推断系统发育的加权最小二乘法。生物信息学,20(13),2113-2121,DOI: 10.1093/bioinformatics/bth211。