Подгонка кривой [1] [2] — это процесс построения кривой или математической функции , которая наилучшим образом соответствует ряду точек данных [3] , возможно, с ограничениями. [4] [5] Подгонка кривой может включать либо интерполяцию [ 6] [7] , где требуется точное соответствие данным, либо сглаживание [ 8] [9], при котором строится «гладкая» функция, которая приблизительно соответствует данным. Связанная тема — регрессионный анализ [10] [11] , который больше фокусируется на вопросах статистического вывода, таких как степень неопределенности кривой, которая подгоняется под данные, наблюдаемые со случайными ошибками. Подогнанных кривых можно использовать в качестве вспомогательного средства для визуализации данных [12] [13], чтобы вывести значения функции, когда данные отсутствуют [14] , и суммировать отношения между двумя или более переменными. [15] Экстраполяция относится к использованию подобранной кривой за пределами диапазона наблюдаемых данных [16] и подвержена некоторой степени неопределенности [17], поскольку она может отражать метод, используемый для построения кривой, в той же степени, в какой она отражает наблюдаемые данные.
Для линейно-алгебраического анализа данных «подгонка» обычно означает попытку найти кривую, которая минимизирует вертикальное ( ось y ) смещение точки от кривой (например, обычный метод наименьших квадратов ). Однако для графических и графических приложений геометрическая подгонка стремится обеспечить наилучшее визуальное соответствие; что обычно означает попытку минимизировать ортогональное расстояние до кривой (например, общий метод наименьших квадратов ) или иным образом включить обе оси смещения точки от кривой. Геометрические подгонки не популярны, поскольку они обычно требуют нелинейных и/или итеративных вычислений, хотя они имеют преимущество более эстетичного и геометрически точного результата. [18] [19] [20]
Чаще всего подбирают функцию вида y = f ( x ) .
Полиномиальное уравнение первой степени
представляет собой линию с наклоном a . Линия будет соединять любые две точки, поэтому уравнение полинома первой степени является точной аппроксимацией любых двух точек с различными координатами x.
Если порядок уравнения увеличить до полинома второй степени, то получим следующее:
Это будет точно соответствовать простой кривой по трем точкам.
Если порядок уравнения увеличить до полинома третьей степени, то получится следующее:
Это будет точно соответствовать четырём пунктам.
Более общим утверждением было бы сказать, что он будет точно соответствовать четырем ограничениям . Каждое ограничение может быть точкой, углом или кривизной (которая является обратной величиной радиуса соприкасающейся окружности ). Ограничения угла и кривизны чаще всего добавляются к концам кривой и в таких случаях называются конечными условиями . Идентичные конечные условия часто используются для обеспечения плавного перехода между полиномиальными кривыми, содержащимися в одном сплайне . Ограничения более высокого порядка, такие как «изменение скорости кривизны», также могут быть добавлены. Это, например, было бы полезно при проектировании шоссе в виде клеверного листа , чтобы понять скорость изменения сил, приложенных к автомобилю (см. рывок ), когда он следует по клеверному листу, и установить разумные ограничения скорости, соответственно.
Уравнение полинома первой степени также может быть точным соответствием для одной точки и угла, в то время как уравнение полинома третьей степени также может быть точным соответствием для двух точек, ограничения угла и ограничения кривизны. Для этих и для уравнений полинома более высокого порядка возможны многие другие комбинации ограничений.
Если ограничений больше n + 1 ( где n — степень полинома), полиномиальную кривую все равно можно пропустить через эти ограничения. Точное соответствие всем ограничениям не гарантировано (но может случиться, например, в случае полинома первой степени, точно соответствующего трем коллинеарным точкам ). В общем случае, однако, необходим какой-то метод для оценки каждого приближения. Метод наименьших квадратов — один из способов сравнения отклонений.
Существует несколько причин, по которым следует получить приблизительное соответствие, когда можно просто увеличить степень полиномиального уравнения и получить точное соответствие:
Степень полиномиальной кривой выше, чем необходимо для точного соответствия, нежелательна по всем перечисленным ранее причинам для полиномов высокого порядка, но также приводит к случаю, когда существует бесконечное число решений. Например, полином первой степени (линия), ограниченный только одной точкой вместо обычных двух, даст бесконечное число решений. Это поднимает проблему того, как сравнить и выбрать только одно решение, что может быть проблемой как для программного обеспечения, так и для людей. По этой причине обычно лучше всего выбирать как можно более низкую степень для точного соответствия всем ограничениям и, возможно, даже более низкую степень, если приемлемо приблизительное соответствие.
В некоторых случаях могут использоваться и другие типы кривых, например, тригонометрические функции (например, синус и косинус).
В спектроскопии данные могут быть аппроксимированы функциями Гаусса , Лоренца , Фойгта и аналогичными функциями.
В биологии, экологии, демографии, эпидемиологии и многих других дисциплинах рост населения , распространение инфекционных заболеваний и т. д. можно описать с помощью логистической функции .
В сельском хозяйстве инвертированная логистическая сигмоидальная функция (S-кривая) используется для описания связи между урожайностью и факторами роста. Синяя фигура была получена с помощью сигмоидальной регрессии данных, измеренных на сельскохозяйственных угодьях. Можно увидеть, что изначально, т. е. при низкой засоленности почвы, урожайность медленно снижается при увеличении засоленности почвы, а затем снижение прогрессирует быстрее.
Если функцию формы постулировать невозможно, можно все равно попытаться подогнать плоскую кривую .
В некоторых случаях могут использоваться и другие типы кривых, например, конические сечения (круговые, эллиптические, параболические и гиперболические дуги) или тригонометрические функции (например, синус и косинус). Например, траектории объектов под действием силы тяжести следуют параболическому пути, когда сопротивление воздуха игнорируется. Следовательно, сопоставление точек данных траектории с параболической кривой имело бы смысл. Приливы следуют синусоидальным моделям, поэтому точки данных приливов должны быть сопоставлены с синусоидой или суммой двух синусоид разных периодов, если учитываются оба эффекта — Луны и Солнца.
Для параметрической кривой эффективно подогнать каждую из ее координат как отдельную функцию длины дуги ; предполагая, что точки данных могут быть упорядочены, можно использовать расстояние хорды . [22]
Куп [23] подходит к проблеме поиска наилучшего визуального соответствия окружности набору точек данных 2D. Метод элегантно преобразует обычную нелинейную задачу в линейную задачу, которую можно решить без использования итеративных численных методов, и, следовательно, он намного быстрее предыдущих методов.
Вышеуказанная техника расширена на общие эллипсы [24] путем добавления нелинейного шага, в результате чего получается метод, который является быстрым, но при этом находит визуально приятные эллипсы произвольной ориентации и смещения.
Обратите внимание, что хотя это обсуждение было в терминах 2D-кривых, большая часть этой логики также распространяется на 3D-поверхности, каждый участок которых определяется сетью кривых в двух параметрических направлениях, обычно называемых u и v . Поверхность может состоять из одного или нескольких участков поверхности в каждом направлении.
Многие статистические пакеты , такие как R , и численное программное обеспечение , такое как gnuplot , GNU Scientific Library , Igor Pro , MLAB , Maple , MATLAB , TK Solver 6.0, Scilab , Mathematica , GNU Octave и SciPy , включают команды для выполнения подгонки кривых в различных сценариях. Существуют также программы, специально написанные для выполнения подгонки кривых; их можно найти в списках программ статистического и численного анализа , а также в категории:Программное обеспечение для регрессии и подгонки кривых .