R中非线性回归的初始参数

时间:2020-04-01 20:38:05

标签: r regression non-linear-regression

我想学习如何在R中进行非线性回归。我设法学习了nls函数的基础知识,但是我们如何知道使用良好的初始参数对非线性回归至关重要。我试图弄清楚selfStartgetInitial函数是如何工作的,但是失败了。该文档非常稀缺,不是很有用。我想通过简单的模拟数据学习这些功能。我从逻辑模型中模拟了数据:

n<-100 #Number of observations
d<-10000 #our parameters
b<--2 
e<-50 


set.seed(n)
X<-rnorm(n, -e/b, 2) #Thanks to it we'll have many observations near the point where logistic function grows the faster
Y<-d/(1+exp(b*X+e))+rnorm(n, 0, 200) #I simulate data

现在我想使用函数f(x)= d /(1 + exp(b * x + e))进行回归,但是我不知道如何使用selfStart或{{1} }。你可以帮帮我吗?但请不要告诉我有关getInitial的信息。我知道这是一个功能,注定要在logistic回归中找到初始参数,但似乎它只能在具有一个解释变量的回归中起作用,我想学习如何使用多个解释变量进行logistic回归,甚至如何使用我定义的mysefl函数进行一般非线性回归。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我不知道为什么在R中良好的初始参数演算失败。我的答案是提供一种找到足够好的初始参数的方法。

请注意,存在一种不需要初始参数的非迭代方法。 pp.37-46:https://fr.scribd.com/doc/14674814/Regressions-et-equations-integrales

中对此原理进行了说明

简化版本如下所示。

如果结果不足,则可以将其用作常规非线性回归软件(例如R)中的初始参数。

enter image description here

一个数字示例如下所示。通常,分数要高得多。在这里,此值故意较低,以便在进行代码编辑和检查时更容易进行检查。

enter image description here