楼主: iamwilling
11832 10

[问答] R中多元非线性回归 [推广有奖]

  • 3关注
  • 0粉丝

高中生

72%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
273 点
帖子
20
精华
0
在线时间
27 小时
注册时间
2011-12-19
最后登录
2012-6-12

楼主
iamwilling 发表于 2011-12-21 10:42:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
是对y1=a*e^b*x+c*sin(w*t+u)回归,要求a,b,c,w,u; R程序我是这样编的
m1=nls(y1~a*exp(b*x)+c*sin(w*t+u),start=list(a=1,b=0.1,c=100,w=0.01,u=0.1),trace=T)
但是一直提示奇异梯度,或产生缺省值,请问是不是list(a=1,b=0.1,c=100,w=0.01,u=0.1)的问题的,
要怎样改呢?谢谢
x=c(1:12)y1=c(7098.00,7498.00,7848.00,8254.00,8761.00,8801.12,8951.32,9325.03,9683.90,10200.00,11000.00,12360.74)

二维码

扫码加我 拉你入群

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

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

关键词:多元非线性回归 非线性回归 线性回归 非线性 Start start 程序

沙发
qoiqpwqr 发表于 2011-12-21 10:59:53
t是什么?

藤椅
iamwilling 发表于 2011-12-21 11:06:14
qoiqpwqr 发表于 2011-12-21 10:59
t是什么?
m1=nls(y1~a*exp(b*x)+c*sin(w*x+u),start=list(a=1,b=0.1,c=100,w=0.01,u=0.1),trace=T)
,额,是x。崩溃掉,这样改后还不行

板凳
qoiqpwqr 发表于 2011-12-21 11:50:10
试一下(a=1,b=0.8,c=100,w=0.01,u=0.1),就可以了
初始值的选取很重要
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
aspenroad + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

报纸
iamwilling 发表于 2011-12-21 12:21:59
qoiqpwqr 发表于 2011-12-21 11:50
试一下(a=1,b=0.8,c=100,w=0.01,u=0.1),就可以了
初始值的选取很重要
谢谢,那请问 m1=nls(y1~a*x+b+K/(1+exp(c-v*x)),start=list( )这里边初始值应该选什么,选初值有什么技巧吗?   这里是对y1=a*x+b+K/(1+e^(c-v*x))   的回归,求a,b,K ,c,v  

地板
qoiqpwqr 发表于 2011-12-21 12:31:19
iamwilling 发表于 2011-12-21 12:21
谢谢,那请问 m1=nls(y1~a*x+b+K/(1+exp(c-v*x)),start=list( )这里边初始值应该选什么,选初值有什么技巧 ...
如果你的模型里面的参数有些实际意义的话,可以根据实际情况来选初值。不然的话,就大概试几个吧。

7
iamwilling 发表于 2011-12-21 12:52:12
qoiqpwqr 发表于 2011-12-21 12:31
如果你的模型里面的参数有些实际意义的话,可以根据实际情况来选初值。不然的话,就大概试几个吧。
  m1=nls(y1~a*x+b+K/(1+exp(c-v*x)),start=list(a=1,b=100,K=100,c=100,v=1),trace=T)
前面的回归语言有错码,我毫无头绪地试了几个,无果。。。

8
李婷婷123 发表于 2011-12-21 12:55:52

9
楚韵荆风 学生认证  发表于 2011-12-21 19:53:03
先编一个最优函数,然后在用optim()函数也可以得到参数估计
共享是一种彼此的快乐

10
iamwilling 发表于 2011-12-21 20:42:29
qoiqpwqr 发表于 2011-12-21 12:31
如果你的模型里面的参数有些实际意义的话,可以根据实际情况来选初值。不然的话,就大概试几个吧。
m1=nls(y1~a*x+b+K/(1+exp(c-v*x)),start=list(a=1,b=100,K=100,c=100,v=1),trace=T)
这个初值我试了很多个还不行,可以帮忙试一下吗?非常感谢你~~~

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

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