#r #correlation #pheatmap #pearson
#r #корреляция #физическая карта #пирсон
Вопрос:
Я играю с некоторыми фиктивными данными для тестирования кластеризации на основе корреляционного расстояния (pearson). Я вычисляю корреляцию Пирсона двумя способами: один внутри pheatmap
функции, а другой снаружи с помощью cor()
, в обоих случаях я ожидал бы получить одинаковые результаты.
При воспроизведении с фиктивными случайно сгенерированными данными большую часть времени кластеры идентичны, но иногда они различаются настолько, что можно заметить разницу между кластерами (т. Е. выборки в разных кластерах между исполнениями).
Чего мне не хватает? Почему кластеры не всегда одинаковы?
Меня интересует только кластеризация столбцов.
# Random matrix &eneration
x <- rep(c(1:100, 100:1), 100)
mtx <- matrix(x, ncol = 10, nrow = 100)
noise <- matrix(rnorm(10 * 100), ncol = 10, nrow = 100)
mtx <- mtx * noise
rownames(mtx) <- paste("Genes_", 1:100, sep = "")
colnames(mtx) <- paste("Patient_", 1:10, sep = "")
library("pheatmap")
# Clusterin& based on pheatmap correlation = pearson (execution type 1)
pheatmap(mtx,
clusterin&_distance_cols = "correlation",
clusterin&_method = "complete",
show_rownames = FALSE,
show_colnames = TRUE,
main = "correlation",
cluster_rows = FALSE)
# Calculate correlation prior pheatmap function (execution type 2)
pheatmap(cor(mtx, method = "pearson"),
clusterin&_distance_rows = "none",
clusterin&_method = "complete",
show_rownames = FALSE,
show_colnames = TRUE,
main = "pearson",
cluster_rows = FALSE)
Комментарии:
1. Вы используете случайные входные данные. Почему вы ожидаете одинаковых кластеров? поместите
set.seed(123)
в начало вашего кода, и вы должны получать одни и те же результаты все время.2. Я ожидаю того же результата, поскольку использую ту же матрицу
mtx
. Появляются различия между запускомpheatmap
непосредственно сmtx
или с выводомcor()