Калькулятор подгонки кривых
Вставьте значения x и y и подгоните линейную, полиномиальную (степени 2–6), экспоненциальную, логарифмическую и степенную кривые сразу. Вы получите каждое уравнение с R², скорректированным R², RMSE, AIC и AICc рядом, график со всеми кривыми, диагностику остатков, стандартные ошибки параметров и прогнозы для новых значений x. Бесплатно, без регистрации; всё работает в вашем браузере.
0 значений
0 значений
Введите не меньше четырёх пар (x, y), среди которых есть не меньше трёх разных значений x.
Как пользоваться калькулятором подгонки кривых
- 1. Введите данные. Введите два списка в одинаковом порядке или по одной паре «x, y» в строке. Нужны четыре и более точки, среди которых есть не меньше трёх разных значений x; чем больше, тем лучше.
- 2. Выберите модели. Отметьте кривые для сравнения. Логарифмическая и степенная модели требуют, чтобы все x были больше 0; экспоненциальная и степенная — чтобы все y были больше 0. Модель, которую нельзя подогнать, сообщит причину.
- 3. Выберите метод подгонки для экспоненциальной и степенной кривых. Нелинейный метод наименьших квадратов по исходному y даёт лучшее соответствие вашим фактическим значениям. Преобразованный вариант проводит прямую через ln y, как это делают линии тренда в таблицах.
- 4. Сравните и проверьте. Прочитайте таблицу, затем график и остатки той модели, которую рассматриваете: лучшее число мало что значит, если форма кривой неверна. Используйте окно прогноза для новых значений x.
Кривые
| Модель | Уравнение | Типичное применение |
|---|---|---|
| Линейная | y = a₀ + a₁x | Равномерное изменение |
| Полином степени d | y = a₀ + a₁x + … + a_dx^d | Гладкая кривая с изгибами; не более d − 1 поворотных точек |
| Экспоненциальная | y = a·e^(bx) | Рост или убывание с постоянным процентом |
| Логарифмическая | y = a + b·ln x | Быстрое изменение, которое затем выравнивается |
| Степенная | y = a·x^b | Законы масштабирования; b — эластичность |
Каждый полином подгоняется разложением QR по центрированному и перемасштабированному x, поэтому подгонка полинома степени 6 по календарным годам (1990–2020) так же точна, как по диапазону от 0 до 1, а прогнозы используют эту устойчивую форму. Раскрытые коэффициенты в уравнении всё равно могут терять значащие цифры при большом x, далёком от нуля, и страница предупреждает об этом. Уравнения линий тренда в таблицах, которые округляют коэффициенты до нескольких знаков, по той же причине не воспроизводят полиномы высокой степени на значениях x в годах.
Почему метод важен для экспоненциальной и степенной подгонок
Преобразованная подгонка берёт ln y, находит прямую наименьших квадратов и переводит результат обратно. Это минимизирует ошибки на логарифмической шкале, которая сильно учитывает малые значения и слабо — большие. Нелинейная подгонка минимизирует квадраты ошибок в самом y, а обычно важно именно это. Для одних и тех же данных два метода дают разные параметры и разные значения R². Калькулятор сообщает R² по исходному y для каждой модели, поэтому их можно честно сравнивать, а для преобразованной подгонки — также R² на логарифмической шкале, который показала бы таблица.
Пример
В примере загружены классические 50 измерений тормозного пути автомобилей (набор cars из R): скорость в милях в час и тормозной путь в футах. Шесть моделей, подогнанных по исходной шкале:
| Модель | R² | RMSE | AICc | Δ AICc |
|---|---|---|---|---|
| Степенная: y = 0,5897 x^1,5493 | 0,6654 | 15,06 | 417,59 | 0 |
| Экспоненциальная: y = 9,4045 e^(0,0917x) | 0,6649 | 15,07 | 417,66 | 0,07 |
| Квадратичная | 0,6673 | 15,18 | 419,66 | 2,07 |
| Линейная: y = −17,58 + 3,932x | 0,6511 | 15,38 | 419,68 | 2,09 |
| Кубическая | 0,6732 | 15,20 | 421,25 | 3,66 |
| Логарифмическая | 0,5607 | 17,26 | 431,19 | 13,61 |
R² растёт с каждым членом полинома — кубическая модель получает 0,6732, а полином степени 6 — 0,6888, — но AICc, который штрафует за каждый параметр, ставит на первое место степенную и экспоненциальную кривые с двумя параметрами. У степенной кривой есть и понятный смысл: тормозной путь растёт примерно как скорость в степени 1,5 (b = 1,55, SE 0,19) — между линейной и квадратичной зависимостями, которые предсказывает физика. Лучшие модели отличаются примерно на 2 пункта AICc, поэтому данные не могут их разделить; выбирайте ту, которая имеет смысл. Если подогнать степенную кривую преобразованным методом, R² на логарифмической шкале равен 0,7331, но R² по исходной шкале падает до 0,6583.
Разумный выбор модели
- Начните с графика, затем смотрите остатки. Закономерность в остатках означает, что форма кривой выбрана неверно.
- Сравнивайте модели с разным числом параметров по AICc, а не по R². AICc сопоставим только для моделей, подогнанных к одним и тем же значениям y. Разницы меньше примерно 2 не значимы.
- Опирайтесь на теорию. Если вы знаете процесс (сложный рост, закон масштабирования), используйте соответствующую модель, даже если другая набирает немного больше.
- Держите степень полинома низкой. Выше степени 3 или 4 полином обычно подгоняет шум и резко уходит за пределы данных. Не экстраполируйте с его помощью.
Часто задаваемые вопросы
- Как выбрать лучшую кривую?
- Постройте данные и каждую кривую, проверьте, что остатки равномерно рассеиваются вокруг нуля, и сравните AICc между моделями. R² сам по себе всегда отдаёт предпочтение модели с наибольшим числом параметров. Затем спросите себя, имеет ли победитель смысл для изучаемого процесса и будете ли вы использовать его только между наименьшим и наибольшим x.
- Почему мой R² для экспоненты отличается от Excel?
- Линия тренда Excel для экспоненты проводит прямую через ln y и сообщает R² для этой логарифмической подгонки. Нелинейная подгонка методом наименьших квадратов минимизирует ошибки в самом y, и её R² измеряется по y. Калькулятор умеет оба варианта: для преобразованного метода показывает R² на логарифмической шкале, а для всех моделей — R² по исходной шкале, чтобы сравнение было честным.
- Какую степень полинома использовать?
- Берите наименьшую степень, которая передаёт видимую форму, обычно 2 или 3. Каждая добавленная степень позволяет кривой изгибаться ещё раз и подгонять шум: R² растёт, но прогнозы ухудшаются. Нужно не меньше степени + 2 точек данных, а для надёжной подгонки — гораздо больше.
- Почему я не могу подогнать логарифмическую, степенную или экспоненциальную модель к своим данным?
- Логарифм определён только для положительных чисел. Логарифмическая и степенная модели требуют, чтобы все x были больше 0, а экспоненциальная и степенная — чтобы все y были больше 0, потому что подгонка идёт через ln y или ln x. Сдвигайте данные (например, отсчитывайте время от 1, а не от 0), только если это имеет смысл в вашей задаче.
- Что означают AIC и AICc?
- AIC уравновешивает точность и сложность: это −2·ln L плюс удвоенное число параметров (с учётом дисперсии ошибки). AICc добавляет поправку, которая важна, когда n мало по сравнению с числом параметров. Меньше — лучше, и важны только разницы. Значения здесь вычисляются по определению, которое использует R, поэтому совпадают с AIC в R для той же модели.
- Можно ли использовать уравнение для прогноза за пределами данных?
- Только с большой осторожностью. Каждая кривая здесь — эмпирическое описание измеренного диапазона. Полиномы могут резко уходить сразу за пределы данных, а экспонента может взлететь. Окно прогноза предупреждает, если новое x лежит вне наблюдаемого диапазона.