我正在学习 R,目前将其用于非线性回归(我也在学习)。我有两组数据(在不同机器上操作的持续时间),我能够为每组数据找到一个很好的非线性回归。现在,我想找到最小化两个残差平方和之和的最佳回归。
这是我所拥有的:
A <- c(1:5)
B <- c(100, 51, 32, 24, 19)
C <- c(150, 80, 58, 39, 29)
df <- data.frame (A,B,C)
f <- B ~ k1/A + k2
g <- C ~ k1/A + k2
n <- nls(f, data = df, start = list(k1=10, k2=10))
p <- nls(g, data = df, start = list(k1=10, k2=10))
n
#Nonlinear regression model
# model: B ~ k1/A + k2
# data: df
# k1 k2
#101.595 -1.195
# residual sum-of-squares: 2.619
#Number of iterations to convergence: 1
#Achieved convergence tolerance: 2.568e-07
p
#Nonlinear regression model
# model: C ~ k1/A + k2
# data: df
# k1 k2
#148.044 3.593
# residual sum-of-squares: 54.19
#Number of iterations to convergence: 1
#Achieved convergence tolerance: 1.803e-07
k1 和 k2 常数对于两组(B 和 C)来说(当然)是不同的,我想知道我如何才能找到一个特定的 k1 和一个特定的 k2 来为这两个数据集产生“最佳”解决方案。
希望我的解释可以理解。否则,我试图找到的有时(至少在这里)称为全局非线性回归。
编辑:我也想知道如何告诉 R 避免特定参数的负值。在这种情况下,我希望 k2 是积极的。