我的回归看起来像这样:
fit <- nls (data$y ~ (data$v1 + data$v2 + data$v3 + data$v4) *(1 + exp(theta1 - theta2*data$v5 - theta3*data$v6)^-1),
data = data,
start = c (theta1 =0, theta2= 0, theta3= 0))
摘要(配合)
在第一部分中,变量遵循线性关系,但它们通过非线性表达式加权(第二部分)。模型运行,但摘要仅显示非线性部分(theta1,theta2和theta3)上的参数信息。有人知道如何获得有关截距和非线性部分系数的信息吗?或者我的配方错了,R不估算这些系数?
答案 0 :(得分:2)
虽然lm
假定您希望系数位于每个数据列的前面,但nls
没有做出这样的假设;你必须告诉它。
fit <- nls (y ~ (b0 + b1 * v1 + b2 * v2 + b3 * v3 + b4 * v4) *
(1 + exp(theta1 - theta2 * v5 - theta3 * v6) ^ -1),
data = data,
start = c (b0 = 0, b1 = 1, b2 = 2, b3 = 3, b4 = 4,
theta1 =0, theta2= 0, theta3= 0))
您可能希望最初将lm
拟合到第一部分,然后将估算的系数用作nls
中的起始值。