全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3326 8
2022-04-10
在做回归分析时 需要对参数进行二次处理 如sin(x/a)形式 lm()回归只能求解sinx前的系数 无法求解a的值 应该如何解决
二维码

扫码加我 拉你入群

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

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

全部回复
2022-4-10 15:36:03
如果想要表达的公式为y=ksinx,则仅需要输入lm(y~sinx)即可,但是如果需要表达的公式为y=ksin(x/a),存在两个系数k与a,其中k可以求出,a无法再公式中进行表达,遇到这种情况应该如何处理呢?
二维码

扫码加我 拉你入群

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

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

2022-4-11 08:14:50
这从本质上来讲,就是一个拟合的问题。如果不知道用R来做,可以用其他软件来做吧。
二维码

扫码加我 拉你入群

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

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

2022-4-11 10:39:06
nkunku 发表于 2022-4-11 08:14
这从本质上来讲,就是一个拟合的问题。如果不知道用R来做,可以用其他软件来做吧。
因为后续的分析都是基于R做的 现在只有拟合这一部分出现了问题 所以需要解决这个问题
二维码

扫码加我 拉你入群

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

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

2022-4-11 13:36:58
可以百度一下sin(x)的泰勒展开,变为多项式再回归试试
二维码

扫码加我 拉你入群

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

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

2022-4-12 11:25:36
这不是一个线性问题,lm没法搞定啊。
e = y - k * sin (a * x)
min (sum {e_i ^ 2})非线性函数,自己写个最优求解的目标函数吧,R中也有现成的求解器

上面有人提到用泰勒展开,如果a*x的绝对值较小(泰勒展开需要一定效率,绝对值越小越好呗),可以这么干,如果不是的,那还是按照上面的方式弄吧。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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