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 как мера несхожести.

Другие вопросы по тегам