距离矩阵中缺失数据的估算

时间:2015-12-01 13:02:14

标签: r missing-data

我想问一下是否有人熟悉距离矩阵中缺失值的估算。对于普通数据(具有连续和名义变量的表),存在许多插补技术,例如,热甲板和冷甲板,预测模型等。但是,几乎没有关于如何处理距离矩阵的信息。

示例:

distance <- dist(rnorm(20))
distance[c(10, 20, 30, 40, 50, 60)] <- NA

在这种情况下如何估算缺失值?

1 个答案:

答案 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