楼主: nkunku
14368 10

初学者请教R的非线性拟合 [推广有奖]

  • 7关注
  • 74粉丝

已卖:1874份资源

院士

36%

还不是VIP/贵宾

-

威望
1
论坛币
191898 个
通用积分
221.3314
学术水平
212 点
热心指数
240 点
信用等级
161 点
经验
10900 点
帖子
3320
精华
0
在线时间
3438 小时
注册时间
2010-4-23
最后登录
2025-12-28

楼主
nkunku 发表于 2010-5-13 14:21:16 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有一组数据:
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”
我就不知该怎么办了。
为此求教各位。
谢谢了!
二维码

扫码加我 拉你入群

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

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

关键词:初学者 非线性 Alpha 非线性回归 线性回归 请教 初学者 拟合 非线性

沙发
nkunku 发表于 2010-5-13 19:23:09
自己顶一下

藤椅
xflovespeed 发表于 2010-5-13 23:00:01
帮你顶一下,等高人来

板凳
wngbaq 发表于 2010-5-15 13:24:40
这种情况一般是nls所用的非线性最小二乘算法(Levenberg-Marquardt (LM) algorithm )不收敛,可以试一下
别的优化方法,比如遗传算法, R有个软件包 gafit,可以看看能不能直接用.
不行的话,就直接编程,先写一个目标函数,找些优化算法来试一下
心慈行孝,何需努力看经;意恶损人,空读如来一藏.

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

地板
dingd 发表于 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

7
nkunku 发表于 2010-5-18 06:58:20
回6楼:用其他的软件来解这个问题也是很容易的。我不就是想用R来解一下嘛。

8
dingd 发表于 2010-5-18 16:02:16
对一般简单的拟合问题(如此题),很多现成软件R、S-Plus、Matlab,甚至Excel等都可以做,但复杂一点的恐怕就很困难了,大都要求合适的初值。以此题为例,数据不变,若公式变为下,能得出正确结果的软件,除了1stOpt,其它的不是说不行,但是非常困难。
y=p1*(exp(-p2*x)*x^p3-exp(p4*exp(-p5*(x-p6)^p7)))

用1stOpt得出的最小残差平方和(RSS)为:60.80819415,R^2 = 0.99610935842
用其它的比较试试?

9
gssdzc 在职认证  发表于 2010-5-18 16:07:50
ding。。。。。。。。。。。。

10
waveland 发表于 2012-6-20 23:13:59
请教1stOp需要编程吗?会不会很难?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 16:45