Как найти тренд в наборе данных с помощью python

Я пытаюсь найти уравнение кривой, которое является ближайшим приближением тенденции в данных. Я пробовал с кривой подгонки, poly1d, но ни один из них не дает результатов, которые я ищу.

введите здесь описание изображения

На картинке скаттерная часть - это данные, которые у меня есть. Нарисованная от руки линия – это тренд, который хотелось бы получить.

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

Я загрузил данные в гит; файлы набора данных x и y.

https://github.com/tadejales/stackoverflow_question.git


person Kozaki    schedule 24.02.2021    source источник
comment
Отвечает ли это на ваш вопрос? Как добавить линию тренда в точечные (рассеянные) графики python matplotlib ?   -  person doliphin    schedule 24.02.2021
comment
Похоже на степенной закон. Возможно, построение ваших данных с помощью журнала-журнала поможет   -  person John Coleman    schedule 24.02.2021
comment
@doliphin Нет, это не так. Это дает тот же результат, что и scipy.curve_fit. Или, по крайней мере, я не знаю, как его применить.   -  person Kozaki    schedule 25.02.2021


Ответы (1)


Перед использованием готовых программ часто бывает интересно провести краткий осмотр проблемы. В данном случае форма облака точек заставляет задуматься о том, чтобы нарисовать его в логарифмическом масштабе:

введите здесь описание изображения

Тогда из этой грубой подгонки получается:

введите здесь описание изображения

Теперь можно использовать специализированное программное обеспечение, если ожидается лучший результат. Приведенная выше функция и приблизительные численные значения параметров будут полезны для начала вычислений.

person JJacquelin    schedule 25.02.2021