【发布时间】:2017-02-18 09:02:38
【问题描述】:
我有以下数据点:
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.75ymin = 91.85ec50 = 3Ns = 0.2045514
最后,从以下库调用最小化:
from lmfit import minimize,Minimizer,Parameters,Parameter,report_errors,report_fit
我在 python 中为Std 得到的结果是:
110
49.1
52.4
121
299
688
1110
1420
1550
1590
1610
1620
我正在尝试在 R 或 Excel 中复制相同的结果。任何一个都足够了。我遇到的问题是我无法准确地模仿与minimize(最小化最小二乘)和residual 相同的行为。我曾尝试使用minimize 和residual 函数在R 中搜索相应的库;但是,我找不到任何(也不能正确使用它)给我与 Python 相同的结果。
当我绘制xdata、ydata 和minimize(我在上面提供的)的结果时,我在 Python 中得到以下图表。最终,我只想在 R 或 Excel 中重现同样的图表。
如何进行?我不是 Python 专家,因此无法将代码从 Python 正确移植到 R 或 Excel。
【问题讨论】:
-
查看R中的函数'nls'
-
嗨@gabriel-f-geisler-mesevage,我很抱歉!我坚持纠正并消除我的错误假设。如您所料,列出的项目是 fit 函数的初始参数值。
标签: python r excel graph least-squares