Как заменить отсутствующее значение с помощью корреляции Пирсона на MATLAB - PullRequest
0 голосов
/ 28 декабря 2010

У меня проблема с использованием функции 'corr' в 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 - ОДИН (+1).

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

Спасибо до.

Ответы [ 2 ]

2 голосов
/ 28 декабря 2010

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

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

0 голосов
/ 28 декабря 2010

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

a(isnan(a)) = 1;

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

...