У меня есть следующие пункты данных:Мимические минимизировать функцию из Python в R
xdata
выглядит следующим образом.
1000.00
300.00
100.00
30.00
10.00
3.00
1.00
0.30
0.10
0.03
0.01
0.00
ydata
выглядит следующим образом.
91.8
95.3
100
123
203
620
1210
1520
1510
1520
1590
1620
Я бегу следующие команды в Python:
results = minimize(fit.dataFit,cParams,args=(xdata,np.array(ydata)))
curve = np.array(ydata)+results.residual
Std = [list(i) for i in zip(xdata,ydata, curve)]
Моя основная проблема заключается в невозможности отслеживать поток изменений данных. dataFit
выполняет следующие операции:
y_model = (ymax*xdata/(ec50 + xdata)) + Ns* xdata + ymin return y_model - ydata
где
ymax = 1624.75
ymin = 91.85
ec50 = 3
Ns = 0.2045514
Наконец, минимизируют вызывается из следующей библиотеки:
from lmfit import minimize,Minimizer,Parameters,Parameter,report_errors,report_fit
Результаты, которые я получаю за Std
в питона являются:
110
49.1
52.4
121
299
688
1110
1420
1550
1590
1610
1620
Я пытаюсь повторить те же результаты в R или в Excel. Достаточно одного. Проблема, которую я испытываю, заключается в том, что я не могу точно имитировать то же поведение, что и minimize
(что минимизирует наименьшие квадраты) и residual
. Я попытался найти соответствующие библиотеки в R с функциями minimize
и residual
; однако я не смог найти (и не использовать его правильно), что дало мне те же результаты, что и в Python.
Когда я нахожу график xdata
, ydata
, а результаты minimize
(которые я изложил выше), я получаю следующий график в Python. В конечном счете, я хотел бы воспроизвести этот же график в R или Excel.
Как продолжить? Я не эксперт в Python, поэтому я не могу правильно перенести код с Python на R или Excel.
Заканчивать функцию 'НЛС' в R – gfgm
Hi @ Gabriël-F-Гейслер-mesevage, я извиняюсь! Я исправляю и устраняю свое неправильное предположение. Как вы уже догадались, перечисленные элементы представляют собой начальные значения параметров для функции подгонки. – RanonKahn