2010-12-28 3 views
0

У меня есть проблема с использованием функции «КОРР» в MATLAB,Как заменить отсутствующее значение с корреляции Пирсона на MATLAB

a = 

    1  4  3  2 
    2  3  3  2 
    3  2  3  2 
    4  1  3  2 

>> corr(a) 

ans = 

    1 -1 NaN NaN 
    -1  1 NaN NaN 
    NaN NaN NaN NaN 
    NaN NaN NaN NaN 

Когда я рассчитать вручную, отсутствующее значение (NaN), потому что знаменатель равен нулю (0). Хотя мы можем видеть, что сходство столбцов 3 и 4 равно ONE (+1).

Кто-нибудь знает, как улучшить или заменить недостающее значение?

Thank's Before.

ответ

2

Что вы ожидаете, correlation является мерой линейной зависимости между двумя переменными, , вычисленной как ковариация (насколько переменные изменяются вместе), нормированные стандартными отклонениями.

Таким образом, это не имеет никакого смысла, если одна переменная является постоянной (вы получаете ноль разделить на ноль, который не определен и сообщил, как NaN) ...

+0

так, это означает, что когда переменная постоянна, корреляция не может быть рассчитана. Можно ли использовать исключение? Кстати, спасибо за ответ, это очень помогает мне. – user555928

0

Как сказал Amro, corr в отчетности правильный ответ, который не определен , Если вы хотите обрабатывать undefineds особым образом, например, установка 1, вы можете сделать это:

a(isnan(a)) = 1; 

Но это звучит, как у вас есть какие-то более глубокие проблемы с вашими данными - не хватает наблюдений? Почему бы не удалить идентичные серии?