我正在使用包minpack.lm
来表示数据集中的非线性方程。我以为我理解了脚本,但是我在运行以下脚本时遇到了一个非常烦人的错误。
library(minpack.lm);
x<-c(0,2,4,5,6,7,8,10,12,18,20);x<-x/20;
y<-c(0,0.0014,0.41165,0.6258,0.357,0.46657,0.1803,0.05844,0.10185,0.0085,0.000933)
med<-cbind(x,y)
med=data.frame(med)
windows()
fm=function(x,beta1,beta2){(x^(beta1-1))*((1-x)^(beta2-1))}
plot(y~x,data=med)
m5=nlsLM(y~fm(x,beta1,beta2),data=med,start=list(beta1=0.1,beta2=1),trace=TRUE)
summary(m5)
b=coef(m5)
curve(fm(x,beta1=b["beta1"],beta2=b["beta2"]),add=TRUE)
错误是这样的:
“numericDeriv中的错误(表单[[3L]],名称(ind),env):缺少 评估模型时产生的值或无穷大“
我不明白为什么会发生这种情况......你们能帮助我吗?
我有一个额外的问题......我需要在x轴中引入特定x值中的特定字,例如在x = 0.1中我需要引入“阶段1”并且在x = 0.2“阶段2”中是什么这样做的最佳选择?