搜索
bottom↓
回复: 16

求4参数Logistic拟合算法!

[复制链接]

出0入0汤圆

发表于 2015-5-11 15:26:33 | 显示全部楼层 |阅读模式
本帖最后由 kingreat 于 2015-5-11 15:31 编辑

最近在做4参数Logistic拟合算法!

研究了有一段时间,还是一知半解的。

搜集了一些资料,如下:


现在想用C语言实现这个算法,知识有限,不知如何开始!求解惑!

补充一下:实际测的5组数据如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出10入23汤圆

发表于 2015-5-11 15:57:44 来自手机 | 显示全部楼层
我做过类似的

出0入0汤圆

 楼主| 发表于 2015-5-11 19:26:56 | 显示全部楼层

第一步:做Logit-Ln线性回归,求A1, A0, x和p的初值。此时x不能为0值,若输入的x有0值,则将其设为一小值(例如:0.00001)。

首选将原方程变形为如下线性形式: ln((y-A0)/A1-y)) = plnx0 - plnx
A1的初值为输入的y的最大值乘以1.1,A0的初值为为y的最小值乘0.5,通过简单的直线拟合即可求出p与x0的初值,请问如何求得,谢谢了。

出10入23汤圆

发表于 2015-5-11 20:19:03 来自手机 | 显示全部楼层
kingreat 发表于 2015-5-11 19:26
第一步:做Logit-Ln线性回归,求A1, A0, x和p的初值。此时x不能为0值,若输入的x有0值,则将其设为一小值 ...

按照你的描述,这个不难求,只是我不确定这个第一步有什么用?我猜测这里第一步求出的x0和p值并非最终的结果,而是之后的迭代运算需要给x0和p一个初值。
我想我可以搞定,但我现在手上没电脑。你所描述的第一步很简单,如果你会最小二乘法直线拟合就成,如果不会恐怕我很难跟你说懂

出0入0汤圆

 楼主| 发表于 2015-5-11 20:23:36 | 显示全部楼层
zouzhichao 发表于 2015-5-11 20:19
按照你的描述,这个不难求,只是我不确定这个第一步有什么用?我猜测这里第一步求出的x0和p值并非最终的 ...


第一步是为了求A1,A0  x0 与 p 的初始值!

通过泰勒级数展开式求得 △A1, △A0, △x, △p,用上一次的初值+△,做为新的初值。

这样反复计算1000次或者更多,直到残缺平法和最小。

原理是这个原理。但是不会求。

出10入23汤圆

发表于 2015-5-11 20:23:41 来自手机 | 显示全部楼层
我两年前写了个帖子专门讲最小二乘法多项式拟合,后来在网友的要求下又搞了指数函数的拟合,你这个要求跟指数函数拟合那个很接近,看你的文档我对我之前的算法又有了新的认识和改进思路

出10入23汤圆

发表于 2015-5-11 20:24:33 来自手机 | 显示全部楼层
我推荐你翻翻那个帖子

出10入23汤圆

发表于 2015-5-11 20:25:35 来自手机 | 显示全部楼层
kingreat 发表于 2015-5-11 20:23
第一步是为了求A1,A0  x0 与 p 的初始值!

通过泰勒级数展开式求得 △A1, △A0, △x, △p,用上一次的 ...

那和我猜测的一样

出10入23汤圆

发表于 2015-5-11 21:00:56 来自手机 | 显示全部楼层
算法考虑外包不?

出10入23汤圆

发表于 2015-5-11 22:19:09 | 显示全部楼层
kingreat 发表于 2015-5-11 20:23
第一步是为了求A1,A0  x0 与 p 的初始值!

通过泰勒级数展开式求得 △A1, △A0, △x, △p,用上一次的 ...

这是第一步的matlab代码:
先运行data_create.m,创建一个数据源文件data.txt
再运行kingreat.m,读取刚刚创建的数据,并拟合,求取P和X0的初值

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出10入23汤圆

发表于 2015-5-11 22:31:23 | 显示全部楼层
贴个运行图片:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2015-5-13 10:20:34 | 显示全部楼层
zouzhichao 发表于 2015-5-11 21:00
算法考虑外包不?

怎么联系你?

出10入23汤圆

发表于 2015-5-13 14:02:58 | 显示全部楼层
初版出来了,还有待改进,贴个图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2015-5-13 14:27:54 | 显示全部楼层
zouzhichao 发表于 2015-5-13 14:02
初版出来了,还有待改进,贴个图

看不到图!

出0入0汤圆

 楼主| 发表于 2015-5-13 14:28:59 | 显示全部楼层

能不能用一楼我给的测试数据做一下拟合。

出10入23汤圆

发表于 2015-5-13 14:42:23 来自手机 | 显示全部楼层
kingreat 发表于 2015-5-13 14:28
能不能用一楼我给的测试数据做一下拟合。

一楼的数据太少了点吧?而且覆盖区域太小,无法给参数预估一个合理的初值,迭代失败率太高了,目前的算法可能做不到,明天给你试一下,如果一定要拟合你图上那个,还要做很多工作

出0入0汤圆

 楼主| 发表于 2015-5-13 15:25:28 | 显示全部楼层
zouzhichao 发表于 2015-5-13 14:42
一楼的数据太少了点吧?而且覆盖区域太小,无法给参数预估一个合理的初值,迭代失败率太高了,目前的算法 ...

我们实际情况就是6组数据。
其中X轴是标准物品浓度,Y轴是光子个数。
我们是做医疗仪器的,利用化学发光原理。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 21:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表