声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1181|回复: 4

[综合讨论] 【求助】公式回归的问题

[复制链接]
发表于 2006-11-30 10:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
目前正在做一个公式的拟合,本来想用matlab的nlinfit函数,但无法确定初始值,改用1stopt后也不行,请大家看看要怎么办,数据如下:
Parameters p1,p2,p3,p4,p5,p6;
Variable x1,x2,x3,x4,x5,y;
Function y=(p1/(x4+p2))*x1+p3*x2+p4*x3+(p5/(x4+p6))*x5;
data;//x1,x2,x3,x4,x5,y
24.6  0.630  10.232  1.0  3.789  6.666
24.6  0.630  4.093   1.0  3.789  6.178
23.0  0.630  15.647  1.0  3.789  6.666
23.0  0.630  21.515  1.0  3.789  6.738
20.0  0.630  23.220  1.0  3.789  6.494
20.0  1.260  26.792  1.0  3.789  6.463
20.0  1.260  26.792  1.0  3.789  6.641
20.0  1.260  32.151  1.0  3.789  6.519
19.1  1.260  13.882  1.0  3.789  6.519
19.1  0.000  22.558  1.0  3.789  5.003
19.1  0.000  13.882  1.0  3.789  5.225
22.5  1.323  41.251  1.0  3.789  6.250
26.7  0.594  16.914  1.5  4.037  5.897
23.0  0.594  16.881  1.5  4.037  6.282
26.6  0.395  16.869  1.5  4.037  6.154
29.8  0.395  15.846  1.5  4.037  6.410
27.3  0.615  16.413  2.0  3.277  5.405
26.1  0.615  17.679  2.0  3.277  5.676

用1stopt1.5试用版给出的解答是
p1=0.04859     p2=-0.36819    p3=0.9808     p4=-0.013658     p5=-7.83245     p6=-8.13435

这个答案离我预想的差的很多,预想的是系数都在0-2之间波动,允许p2,p6为不大于1的负值,
请问大家还有什么好的办法没?谢谢
回复
分享到:

使用道具 举报

发表于 2006-11-30 16:43 | 显示全部楼层

回复

Matlab可以用lsqcurvefit实现多元拟合,你可以试试.
发表于 2006-11-30 22:04 | 显示全部楼层
如果没有范围限制,1stOpt几乎每次都可得最好结果:
oot of Mean Square Error (RMSE): 0.276250222924944
Sum of Square Error (SSE): 1.37365534198946
Correlation Coef. (R): 0.841496864554441
R-Square: 0.708116973054954
Determination Coef. (DC): 0.708081345035083
Chi-Square: 0.222471519225999
F-Statistic: 8.22146840971309

Parameters        Best Estimate
----------        -------------
p1                 0.0522920018082004
p2                 -0.423274352427706
p3                 0.931516529479507
p4                 -0.0115074648739728
p5                 -4.60349262149789
p6                 -5.52105479237094

====== Output Results =====

No        Observed y        Calculated y
1        6.666        6.55769468318984
2        6.178        6.62833901005116
3        6.666        6.35030896372705
4        6.738        6.28278315984658
5        6.494        5.99115143754229
6        6.463        6.53690218658455
7        6.641        6.53690218658455
8        6.519        6.47523368232492
9        6.519        6.60386010969928
10        5.003        5.33031051730852
11        5.225        5.4301492825551
12        6.25        6.65587753890745
13        5.897        6.27713685473589
14        6.282        6.09782328075267
15        6.154        6.08742632506382
16        6.41        6.25460890082909
17        5.405        5.57382417887176
18        5.676        5.51945780771608

“允许p2,p6为不大于1的负值”,这句话有点不懂,既然为负值,就应该小于0,怎么又不大于1?
发表于 2006-11-30 22:50 | 显示全部楼层
用spss把
 楼主| 发表于 2006-12-1 09:58 | 显示全部楼层
“允许p2,p6为不大于1的负值”,这句话有点不懂,既然为负值,就应该小于0,怎么又不大于1?

原来写错了,是允许p2和p6为负值,范围是-1-0。

请问现在有什么软件能限定求解范围的?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-11 12:20 , Processed in 0.066947 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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