Понимание "шкалы" в R
Я пытаюсь понять определение scale
, которое предоставляет R. У меня есть данные (mydata
), которые я хочу сделать с тепловой картой, и есть ОЧЕНЬ сильный положительный перекос. Я создал тепловую карту с дендрограммой для scale(mydata)
и log(my data)
, а дендрограммы различны для обоих. Зачем? Что значит масштабировать мои данные, а лог преобразовывает мои данные? И что было бы более целесообразным, если бы я хотел посмотреть на дендрограмму, иллюстрирующую взаимосвязь между столбцами моих данных?
Спасибо за любую помощь! Я читал определения, но они кричат над моей головой.
Ответы
Ответ 1
log
просто берет логарифм (база e
, по умолчанию) каждого элемента вектора.
scale
, с настройками по умолчанию, рассчитает среднее и стандартное отклонение всего вектора, затем "масштабирует" каждый элемент этими значениями, вычитая среднее значение и разделив на sd. (Если вы используете scale(x, scale=FALSE)
, он будет вычитать только среднее значение, но не делить на отклонение std.)
Обратите внимание, что это даст вам те же значения
set.seed(1)
x <- runif(7)
# Manually scaling
(x - mean(x)) / sd(x)
scale(x)
Ответ 2
Он не обеспечивает ничего, кроме стандартизации данных. Значения, которые он создает, известны под несколькими именами, один из которых является z-счетом ( "Z", потому что нормальное распределение также известно как "распределение Z" ).
Подробнее можно найти здесь:
http://en.wikipedia.org/wiki/Standard_score