我有以下公式,我试图在其中找到 coef1、coef2...coef5 并且所有其他变量都是已知的。
d ~ a + 2 * (coef1 * b1 + coef2 * b2 + coef3 * b3 + coef4 * b4 + coef5 * b5)
我一直在使用非线性最小二乘法(nls)解决这个问题,没有问题。
nlsfit <- nls(d ~ a + 2 * (coef1 * b1 + coef2 * b2 + coef3 * b3 + coef4 * b4 + coef5 * b5), data=df, start=list(coef1=0, coef2=0, coef3=0, coef4=0, coef5=0))
但是有人告诉我,这应该使用线性最小二乘法来解决。所以我尝试使用 lm 函数和 glm
lmfit <- lm(d ~ a + 2 * (coef1 * b1 + coef2 * b2 + coef3 * b3 + coef4 * b4 + coef5 * b5), data=df)
glmfit <- glm(d ~ a + 2 * (coef1 * b1 + coef2 * b2 + coef3 * b3 + coef4 * b4 + coef5 * b5), data=df, family=binomial())
我相信这两个都返回一个错误,因为数据框没有任何 coef* 变量
Error in terms.formula(formula, data = data) : invalid model formula in ExtractVars
谁能指出我如何使用线性最小二乘法解决这个问题的正确方向?