【发布时间】:2016-03-18 15:09:05
【问题描述】:
我正在尝试建立一个非线性模型,如the manual for gmn in R 中所述。所需的模型形式是
y = b0*x0^g0 + b1*x1^g1 + ...
对我来说,这似乎是最简单的非线性模型形式,但出于某种原因(如果我错了,请纠正我!)我必须编写一个自定义非线性函数以使其适合 R。非常好!
df=read.csv("d:/mydataframe.csv")
require(gnm)
mypower = function(x){
list(predictors = list(beta=1,gamma=1),
variables = list(substitute(x)),
term = function(predlabels,varlabels) {
paste(predlabels[1],"*(",varlabels[1],"**",predlabels[2],")")
}
)
}
class(mypower) <- "nonlin"
现在当我尝试
fit <- gnm(formula=y ~ mypower(x1), data=df)
我从模型中得到了 beta 和 gamma 的拟合值。但是当我尝试
fit <- gnm(formula=y ~ mypower(x1)+mypower(x2), data=df)
我得到了错误
Algorithm failed - no model could be estimated.
那么,问题 1:我该如何解决这个问题?
另外,当 - 尝试匹配所有 xs - 我尝试
fit <- gnm(formula=PedalCycles ~ mypower(.), data=df)
我明白了
Error in eval(expr, envir, enclos) : object '.' not found
这是指定所有 x 的总和的正确方法吗?
【问题讨论】:
标签: r regression non-linear-regression