设置基于R的nls参数,因此0是任何系数的选项

设置基于R的nls参数,因此0是任何系数的选项,r,regression,nls,R,Regression,Nls,我尝试使用nls在R中对数据进行非线性回归,并使用AIC对几个不同的模型进行比较,以确定最佳拟合模型 例如,我拟合一个简单的指数方程(模型1): Y~a*exp(b*X) 或具有截距的指数方程(模型2): Y~a*exp(b*X)+c 很明显,如果c=0,模型2=1 在我的数据集中,对于绝大多数变量,模型2给出的AIC高于模型1。这是因为NLS总是试图用c=/=0来拟合模型2 我有没有办法使NLS可以将系数设置为0(本例中的c系数),如果这可以生成最佳拟合模型 这样,我需要运行的模型数量将显著减

我尝试使用nls在R中对数据进行非线性回归,并使用AIC对几个不同的模型进行比较,以确定最佳拟合模型

例如,我拟合一个简单的指数方程(模型1):

Y~a*exp(b*X)

或具有截距的指数方程(模型2):

Y~a*exp(b*X)+c

很明显,如果c=0,模型2=1

在我的数据集中,对于绝大多数变量,模型2给出的AIC高于模型1。这是因为NLS总是试图用c=/=0来拟合模型2

我有没有办法使NLS可以将系数设置为0(本例中的c系数),如果这可以生成最佳拟合模型


这样,我需要运行的模型数量将显著减少。

nls中没有此类隐式约束。如果带有c的模型具有更高的AIC,这是因为它不足以比没有c的模型更好,从而保证额外的参数。如果你要问的是如何使用c的公式,但将c固定在0,那么只需从起始值中省略c,然后全局设置它:c我同意你的看法。在某些情况下,添加C参数可以改善拟合,而在其他情况下,它会恶化拟合。如果我可以设置一个约束,使C可以为0,那么我只需要运行模型2,而不是两个模型来查看哪一个更适合,对吗?没有这样的约束。你所声称的,即。c不能为0,这是完全错误的。我知道默认情况下没有这样的约束,但是,我要澄清的是,是否没有办法包含该约束?如果您使用nls的端口算法,那么您可以指定一个下限。看到了吗?nls