Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Отсутствующие значения



 

Специальное обозначение NaN, соответствует в MATLAB-е нечисловое значение. В соответ-ствие с принятыми соглашениями NaN является результатом неопределенных выражений та-ких как 0/0. Надлежащее обращение с отсутствующими данными является сложной пробле-мой и зачастую меняется в различных ситуациях. Для целей анализа данных, часто удобно использовать NaN для представления отсутствующих значений или данных которые недос-тупны. MATLAB обращается со значениями NaN единообразным и строгим образом. Эти значения сохраняются в процессе вычислений вплоть до конечных результатов. Любое мате-матическое действие, производимое над значением NaN, в результате также производит NaN. Например, рассмотрим матрицу, содержащую волшебный квадрат размера 3х3, где це-нтральный элемент установлен равным NaN.

 

a = magic(3); a(2,2) = NaN;

a =

8 1 6

NaN 7

4 9 2

 

Вычислим сумму элементов всех столбцов матрицы:

 

Sum(a)

ans =

NaN 15

 

Любые математические действия над NaN распространяют NaN вплоть до конечного резуль-тата. Перед проведением любых статистических вычислений вам следует удалить все NaN-ы из имеющихся данных. Вот некоторые возможные пути выполнения данной операции.

 

Программа Описание
i = find( ~ isnan(x)); x = x(i) Найти индексы всех эементов вектора, не равных NaN, и затем сохранить только эти элементы
x = x (find( ~ isnan(x))) Удалить все NaN-ы из вектора
x = x ( ~ isnan(x)); Удалить все NaN-ы из вектора (быстрее).
x (isnan(x)) = [ ]; Удалить все NaN-ы из вектора
X (any(isnan(X’)), :) = [ ]; Удалить все строки матрицы X содержащие NaN-ы

 

Внимание.Для нахождения нечисловых значений NaN вам следует использовать специаль-ную функцию isnan, поскольку при принятом в MATLAB-е соглашении, логическое сравне-ние NaN == NaN всегда выдает 0. Вы не можете использовать запись x(x==NaN) = [ ] для удаления NaN-ов из ваших данных.

 

Если вам часто приходится удалять NaN-ы, воспользуйтесь короткой программой, записан-ной в виде М-файла.

functionX = excise(X)

X(any(isnan(X')),:) = [ ];

Тогда. напечатав

X = excise(X);

вы выполните требуемое действие (excise по английски означает вырезать)

 

Удаление выбросов значений

 

Вы можете удалить выбросы значений или несовместимые данные при помощи процедур, весьма схожих с удалением NaN-ов. Для нашей транспортной задачи, с матрицей данных count, средние значения и стандартные (среднеквадратические) отклонения каждого столбца матрицы count равны

 

mu = mean(count)

sigma = std(count)

mu =

32.0000 46.5417 65.5833

sigma =

25.3703 41.4057 68.0281

 

Число строк с выбросами значений, превышающими утроенное среднеквадратическое откло-нение от среднего значения можно получить следующим образом:

 

[n, p] = size(count)

outliers = abs(count - mu(ones(n, 1),:)) > 3*sigma(ones(n, 1),:);

nout = sum(outliers)

nout =

1 0 0

 

Имеется только один выброс в первом столбце. Удалим все наблюдение при помощи выра-жения

 

count(any(outliers'),:) = [ ];

Регрессия и подгонка кривых

Часто бывает полезным или необходимым найти функцию, которая описывает взаимосвязь между некоторыми наблюдаемыми (или найденными экспериментально) переменными. Оп-ределение коэффициентов такой функции ведет к решению задачи переопределенной систе-мы линейных уравнений, то есть системы, у которой число уравнений превышает число не-известных. Указанные коэффициенты можно легко найти с использованием оператора обрат-ного деления \ (backslash). Допустим, вы производили измерения переменной y при разных значениях времени t.

t = [0 0.3 0.8 1.1 1.6 2.3]';

y = [0.5 0.82 1.14 1.25 1.35 1.40]';

Plot(t,y,'o'); grid on

 

 

В следующих разделах мы рассмотрим три способа моделирования (аппроксимации) этих данных:

  • Методом полиномиальной регрессии
  • Методом линейно-параметрической (linear-in-the-parameters) регрессии
  • Методом множественной регрессии

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.