全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
14300 10
2010-05-13
我有一组数据:
x y
2.5 30.5429
5 68.4853
7.5 75.2497
10 82.3349
15 82.3493
20 77.5417
25 69.1983
30 68.8907
35 58.9402
40 51.5611
45 50.2891
50 42.2679
60 39.068
70 35.8668
80 28.8098
90 25.6087
100 19.1952
110 15.3512
120 12.7948
130 11.5235
140 7.67952
150 7.69264
160 4.49278
想非线性回归y=a*(exp(-alpha*x)-exp(-beta*x)),用以下命令:
mmm<-nls(y~a*(exp(-alpha*x)-exp(-beta*x)),data=www,start=list(a=1,alpha=1,beta=1))
运行后,系统老是提示说:
“Error in nlsModel(formula, mf, start, wts) : singular gradient matrix at initial parameter estimates”
我就不知该怎么办了。
为此求教各位。
谢谢了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-5-13 19:23:09
自己顶一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-5-13 23:00:01
帮你顶一下,等高人来
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-5-15 13:24:40
这种情况一般是nls所用的非线性最小二乘算法(Levenberg-Marquardt (LM) algorithm )不收敛,可以试一下
别的优化方法,比如遗传算法, R有个软件包 gafit,可以看看能不能直接用.
不行的话,就直接编程,先写一个目标函数,找些优化算法来试一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-5-16 05:10:32
假如真是这样的话,只能说明nls包开发得还不够好。因为这个问题看起来很简单的,用SAS,SPSS,Origin,1stOpt等,随便设定几个初值,都很快就能得到结果。再说,用“统计建模与R软件”书中的例子来做,也没有发现什么问题啊,都很容易搞定的,唯独这个问题老也弄不会,真是闹心。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-5-17 22:49:09
用1stOpt易如反掌啊:

(RMSE): 3.05252741259952
(RSS): 214.312242907445
(R): 0.993180367654062
(R^2): 0.986407242693458

a        113.893052749556
alpha        0.018027699455073
beta1        0.202835917481394
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群