Добавление утяжеления для подгонки кривой

#python #dataframe #curve-fitting

Вопрос:

Итак, у меня есть соответствие кривой, и мне интересно, как включить взвешивание на основе стандартной ошибки.

Вот df (определяется как df_altered):

 Temperature Growth_rate Standard_Error Result Final_results Weight  14.0 0.363 0.110 0.000 0.363 9.091 18.0 0.677 0.043 0.767 0.673 23.256 22.0 0.822 0.044 0.975 0.832 22.727 26.0 0.936 0.073 0.975 0.920 13.699 30.0 0.897 0.051 0.767 0.911 19.608  

И вот настройка подгонки кривой (хотя я действительно не знаю, подходит ли это как подгонка кривой):

 import numpy as np import matplotlib.pyplot as plt x = df_altered['Temperature'] y1 = df_altered['Growth_rate'] y2 = df_altered['Final_results']  fig, ax1 = plt.subplots()  ax2 = ax1.twinx() ax1.plot(x, y1, 'r-') ax2.plot(x, y2, 'g-')  ax1.set_xlabel('Temperature (°C)') ax1.set_ylabel('Observed growth rate', color='r') ax2.set_ylabel('Optimised modelled growth rate', color='g')  plt.show()  

Поэтому, по сути, я хотел бы использовать столбцы Weight и Standard_Error в качестве набора параметров для определения взвешивания графиков (чем меньше стандартная ошибка, тем больше взвешивание). Я уже настроил это с помощью popt2:

 popt2, pcov2 = curve_fit(boatman_temperature_function_optimised, xdata = df_altered.Temperature, ydata = df_altered.Growth_rate, p0 = array_of_maxima, sigma=df_altered.Weight, bounds = (array_of_minima, array_of_maxima), absolute_sigma=True)  

Есть какие-нибудь мысли?

Комментарии:

1. Можете ли вы ответить на вопрос, чтобы поместить определение данных в блок кода?

2. Сделав это, теперь должно выглядеть лучше

3. Что вы подразумеваете под «взвешиванием сюжетов»?

4. Таким образом, на основе стандартной ошибки точки данных будут взвешены соответствующим образом. Чем меньше стандартная ошибка, тем больше вес. Поэтому я хотел бы учесть взвешивание и стандартную ошибку для переменных «Скорость роста», «Результат» и «Конечные результаты», в отличие от простого построения переменных. Имеет ли это смысл?

5. Чтобы уточнить, я настроил весовую функцию, которую я хотел бы учесть в графиках: функция def weight_function(вес, температура, стандартная ошибка): если стандартная ошибка gt; 0.00: вес = 1 / стандартная ошибка иначе: вес = 0.00 финал = возврат веса(финал)