r corrplot с кластеризацией: показатель различий по умолчанию для корреляционной матрицы
Я использовал пакет R corrplot
визуализировать матрицу корреляции из моих данных. Я включил кластеризацию переменных, используя встроенную опцию hclust. Вызов команды был таким (плюс различные расположения заголовков, осей и т. Д.):
corrplot(Rbas,type="upper",order="hclust",method="ellipse")
Но сейчас я выполняю некоторый анализ и визуализации с использованием других пакетов, и возникает вопрос о совместимости результатов. В частности, я должен повторить вручную кластеризацию матрицы корреляции. Но из документации к corrplot
есть один неясный момент: какая мера несходства использовалась в corpplot за его разумными значениями по умолчанию? Является ли это 1-|corr|, sqrt(1-corr^2) или что-то еще? В литературе есть несколько вариантов, например, как описано в этой статье
Обновление, чтобы ответить на собственный вопрос. Я выполнил предположение, используя меру несходства в форме 1-корр. То есть я закодировал (Rbas - матрица корреляции):
dissim1<-1-Rbas
dist1<-as.dist(dissim1)
plot(hclust(dist1))
и восстановил порядок переменных, совпадающий с предложенным по умолчанию corrplot
с hclust
призывание. Но не ясно, действительно ли это их используемый механизм и будет ли это справедливо для любой другой матрицы?
1 ответ
Функция, используемая corrplot
переупорядочить переменные corrMatOrder
(пытаться ?corrMatOrder
).
Возвращает единственный вектор перестановки.
когда order= "hclust"
выбран в corrplot
, corrMatOrder
вызывает corrplot:::reorder_using_hclust
функция:
function (corr, hclust.method)
{
hc <- hclust(as.dist(1 - corr), method = hclust.method)
order.dendrogram(as.dendrogram(hc))
}
Эта функция использует 1-corr
как мера несхожести.