我有以下公式,我试图找到coef1,coef2 ... coef5,所有其他变量都是已知的.
d ~ a + 2 * (coef1 * b1 + coef2 * b2 + coef3 * b3 + coef4 * b4 + coef5 * b5)
Run Code Online (Sandbox Code Playgroud)
我一直在使用非线性最小二乘(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))
Run Code Online (Sandbox Code Playgroud)
但是我被告知应该使用线性最小二乘法来解决这个问题.所以我试图使用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())
Run Code Online (Sandbox Code Playgroud)
这两个都返回一个错误,我相信因为数据帧没有任何coef*变量
Error in terms.formula(formula, data = data) : invalid model formula in ExtractVars
Run Code Online (Sandbox Code Playgroud)
有人能指出我如何使用线性最小二乘法解决这个问题吗?
你要
lm(d / 2 ~ offset(a / 2) + b1 + b2 + b3 + b4 + b5, data=df)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3441 次 |
| 最近记录: |