Python экспоненциальная / линейная подгонка кривой


Этот вопрос касается не столько программирования, сколько математики, но мне хотелось бы услышать некоторые мнения.

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

Я работаю с логарифмом этой кривой, поэтому я использую линейные регрессии для подгонки. Я использовал метод наименьших квадратов, но наклон прямой линии существенно изменяется (примерно на 20%) в зависимости от выбранного мной интервала времени.

Я слышал о 2 других методах, которые могли бы помочь:

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

Я хотел бы избежать фазы проб и ошибок. У тебя есть какие-нибудь идеи?

Edit: код является сделано с помощью python

1 2

1 ответ:

Если в логарифмическом пространстве распадающаяся часть данных не выглядит линейной, то это не простой распад. На самом деле данные больше похожи на сумму экспоненциального спада и постоянного фона. Поэтому попробуйте такую модель, как a*exp(-b*x)+c. Кривая на рисунке является правой стороной гауссова пика (хвосты падают более или менее экспоненциально) с постоянным смещением. Fit (зеленая линия) - это функция, как указано выше.

подгонка смоделированных данных