Функции > Анализ данных > Интерполяция и прогнозирование > Пример. Сплайн по наименьшим квадратам
Пример. Сплайн по наименьшим квадратам
Spline2, Binterp и DWS
Используйте функцию Spline2, чтобы найти оптимальный набор узлов, необходимый функции Binterp для вычисления сплайновой интерполяции наименьших квадратов.
1. Задайте набор данных.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
w является вектором весов, дающим предположительные стандартные отклонения случайной ошибки в y.
2. Определите степень желаемых сплайновых многочленов.
Щелкните для копирования этого выражения
3. Вызовите функцию Spline2.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Первый элемент вектора b является порядком B-сплайна. Второй элемент дает количество интервалов (knots - 1). Следующие элементы представляют значения узлов. Остальные элементы содержат коэффициенты для базисных функций B-сплайна.
Первый и последний узлы при автоматической их генерации соответствуют конечным точкам исходных x-данных:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
4. Вызовите функцию Binterp для получения диапазона значений, соответствующего диапазону x.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Строка i переменной spline1 содержит значение, полученное интерполяцией, а также вторую и третью производные в точке, определенной на интервале i.
5. Распечатайте исходные данные и интерполированный сплайн.
Щелкните для копирования этого выражения
Оптимальное количество узлов и расстояние между ними определяются с помощью статистического показателя Дурбина-Уотсона. Для хорошего соответствия этот показатель должен быть близок к 2. Показатель может быть найден с помощью функции DWS или через извлечение подходящего элемента из матрицы b:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
6. Используйте необязательный последний аргумент функции Spline2, долю от 0 до 1, чтобы получить уровень значимости или уровень браковки для критерия Дурбина-Уотсона.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Как правило, хотя и не всегда, более высокие уровни браковки дают больше узлов и требуют более долгих расчетов.
7. Рассчитайте количество узлов, используемых функцией Spline2.
Щелкните для копирования этого выражения
8. Вызовите функцию DWS для расчета статистического показателя Дурбина-Уотсона.
Щелкните для копирования этого выражения
9. Распечатайте два интерполированных сплайна.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Можно интерполировать без весов:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Можно интерполировать без весов, но с уровнем браковки:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Производные сплайна
Распечатайте первые три производные сплайна интерполяции.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Использование собственных узлов
Можно использовать собственные узлы для интерполяции B-сплайном.
1. Определите строку узлов.
Щелкните для копирования этого выражения
2. Распечатайте интерполированный сплайн.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Можно использовать узлы без весового вектора:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Отклонения
Можно увидеть эффект, оказываемый удалением отклонения на сплайновую интерполяцию.
1. Вызовите функцию GrubbsClassic, чтобы обнаружить точку, наиболее вероятно являющуюся отклонением.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
На самом верху второго пика данных есть подозрительная точка.
2. Удалите эту точку из набора данных и из весовой функции.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
3. Вызовите функцию Spline2 для нового набора данных.
Щелкните для копирования этого выражения
Согласно статистическому показателю Дурбина-Уотсона, соответствие улучшилось:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
4. Сравните результаты интерполяций при подозрительном значении данных:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Сплайн немного падает при удалении отклонения.
Было ли это полезно?