Подтвердить что ты не робот

Cor показывает только NA или 1 для корреляций - Почему?

Я запускаю cor() в data.frame со всеми числовыми значениями, и я получаю это как результат:

       price exprice...
price      1      NA
exprice   NA       1
...

Так что это либо 1, либо NA для каждого значения в результирующей таблице. Почему появляется NA вместо действительных корреляций?

4b9b3361

Ответ 1

1 - это потому, что все отлично коррелирует с самим собой, а NA - потому, что в ваших переменных есть NA.

Вам нужно указать, как вы хотите, чтобы R вычислила корреляцию, когда отсутствуют значения, потому что по умолчанию используется только вычисление коэффициента с полной информацией.

Вы можете изменить это поведение с аргументом use на cor, подробнее см. ?cor.

Ответ 2

Скажите корреляции, чтобы игнорировать NA с аргументом use, например:

cor(data$price, data$exprice, use = "complete.obs")

Ответ 3

NA также появляются, если есть атрибуты с нулевой дисперсией (со всеми равными элементами); см., например:

cor(cbind(a=runif(10),b=rep(1,10)))

который возвращает:

   a  b
a  1 NA
b NA  1
Warning message:
In cor(cbind(a = runif(10), b = rep(1, 10))) :
  the standard deviation is zero

Ответ 4

НС может быть по двум причинам. Во-первых, в ваших данных есть NA. Другое из-за того, что одно из значений является постоянным. Это приводит к тому, что стандартное отклонение равно нулю и, следовательно, функция cor возвращает NA.

Ответ 5

очень простой и правильный ответ

Сообщите корреляции игнорировать NA с аргументом использования, например:

cor(data$price, data$exprice, use = "complete.obs")