我使用daisy
创建了一个相异矩阵,然后尝试使用PAM
函数进行聚类,但出现了错误。聚类方法用于对消费者人口统计的营销细分研究。
根据另一篇文章,当两个样本有NA
个值时会发生错误。没有办法计算相异性。这是链接:R Clustering Produces Error Message。似乎我的data.frame
非常稀疏,相异矩阵的值为NA
。
问题:使daisy
矩阵没有NA
值的最佳方法是什么?我应该填写序数列吗?
我对名为Store4df的ordinal
中的34个NA
和data.frame
个变量进行了13163次观察。 data.frame
中的所有行都没有NA
个值。这是要检查的代码:
> which(rowSums(is.na(Store4df))==ncol(Store4df))
#named integer(0)
以下是5个观察结果的前5个变量的样本:
> head(Store4df, n=5)
Age Gender HouseholdIncome MaritalStatus PresenceofChildren HomeOwnerStatus
2 55-64 Female 50k-75k Single No Own
3 <NA> Female <NA> <NA> <NA> <NA>
4 <NA> Male <NA> <NA> <NA> <NA>
7 <NA> Male <NA> <NA> <NA> <NA>
9 65+ Male 75k-100k Single No Own
我使用了CRAN的PAM
包中的cluster
聚类方法和三个聚类。
> #Import cluster package
> library(cluster)
> #Create dissimilarity matrix
> #Gower coefficient for finding distance between mixed variable
> daisy4 <- daisy(Store4df, metric = "gower", type = list(ordratio = c(1:34)))
> #Pam algorithm with 3 clusters
> k4answers <- pam(daisy4, 3, diss = TRUE)
> k4answers <- pam(daisy4, 3, diss = TRUE)
#Error in pam(daisy4, 3, diss = TRUE) :
#NA values in the dissimilarity matrix not allowed
答案 0 :(得分:0)
我找到了解决问题的方法。对于序数值,我决定取中值并输入NA
。我无法创建具有缺失值的欧氏距离矩阵。无法在值和不存在的值之间计算距离。