Функция cor, выдающая разные значения, когда атрибуты передаются индивидуально и когда они передаются в кадре данных - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь использовать функцию cor (), чтобы найти корреляцию между различными атрибутами в кадре данных. Когда я передаю атрибуты индивидуально, как в:

cor_or1_or7 = cor(plant_data$Orientation1, plant_data$Orientation7, 
                  method = "pearson", use = "complete.obs")

Я получаю корреляцию между plant_data $ Orientation1 и plant_data $ Orientation7 равной -0,8696721

Но когда я передаю весь фрейм данных, который содержит все атрибуты, я получаю значение -0,89070093 для той же пары атрибутов.

Код, который я использовал для передачи всего фрейма данных в функцию cor ():

correlation_table <- cor(plant_data[2:19], method = "pearson", use = "complete.obs")

В кадре данных всего 18 атрибутов с 724 экземплярами.

Я не могу понять, почему одна и та же функция, примененная к одному и тому же набору значений, дает разные ответы! Может кто-нибудь сказать мне, что здесь происходит? Спасибо!

1 Ответ

0 голосов
/ 06 мая 2019

Это будет связано с тем, что при использовании аргумента complete.obs, в зависимости от того, где находятся ваши NA в других переменных в столбцах 2-19, выборка изменится. Скажем, у вас есть весь набор данных для Ориентации 1 и Ориентации 7, например, n = 50, затем все 50 точек данных используются в расчете корреляции, вызывая только эти две переменные. Если в других переменных у вас есть 3 NA и n = 47, то, вызвав весь фрейм данных, вы получите n = 47 точек данных для всех переменных до вычисления коэффициента корреляции, и поэтому значение для ориентации 1 и 7 изменится.

...