全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
755 3
2020-04-07
我手上有两组数据,想用y=ax^b来拟合,在使用R运行的时候,一直报错。求大佬们指点一下,怎么改代码才能算出估计值a 、b

x<-c(2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019)
y<-c(8.6,8.9,9.5,11,15.2,20,26.2,33.27,43.41,62.06,101.72,131.15,170.73,127.67,161.55,271.36,287.47,301.04,378.97,411.75)
cor(x,y)
test=nls(y~a*x^b,start=(list(a=1,b=1)))

二维码

扫码加我 拉你入群

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

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

全部回复
2020-4-7 16:10:14
您这本来是时间序列,x是年份,y是观测值。
2013,2014两年的数据偏离明显,
改成
test=nls(y~a*(x-1999)^b,start=(list(a=1,b=1)))
再试试。
二维码

扫码加我 拉你入群

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

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

2020-4-7 16:26:14
建议你x,y取对数后线性回归
二维码

扫码加我 拉你入群

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

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

2020-4-8 14:20:43
llb_321 发表于 2020-4-7 16:10
您这本来是时间序列,x是年份,y是观测值。
2013,2014两年的数据偏离明显,
改成
问题解决了 谢谢大佬
二维码

扫码加我 拉你入群

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

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

栏目导航
热门文章
推荐文章

说点什么

分享

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