我创建了非线性函数的最佳拟合。它似乎工作正常:为最佳拟合非线性曲线绘制新值
#define a function
fncTtr <- function(n,d) (d/n)*((sqrt(1+2*(n/d))-1))
#fit
dFit <- nls(dData$ttr~fncTtr(dData$n,d),data=dData,start=list(d=25),trace=T)
summary(dFit)
plot(dData$ttr~dData$n,main="Fitted d value",pch=19,)
xl <- seq(min(dData$n),max(dData$n), (max(dData$n) - min(dData$n))/1000)
lines(xl,predict(dFit,newdata=xl,col=blue)
我的意见的阴谋出来正确。我有问题要在我的情节中展示最佳拟合曲线。我创建了1000个值的xl自变量,我想用最合适的方式定义新值。当我称之为“线”过程中,我得到错误信息:
错误xy.coords(X,Y):“X”和“Y”长度不同 如果我只尝试执行预测功能:
a <-predict(dFit,newdata=xl)
str(a)
我可以看到XL拥有1000个组件,而是 “一个” 只有16个组件。我不应该有一个相同数量的值吗?使用
数据:
n ttr d
1 35 0.6951 27.739
2 36 0.6925 28.072
3 37 0.6905 28.507
4 38 0.6887 28.946
5 39 0.6790 28.003
6 40 0.6703 27.247
7 41 0.6566 25.735
8 42 0.6605 26.981
9 43 0.6567 27.016
10 44 0.6466 26.026
11 45 0.6531 27.667
12 46 0.6461 27.128
13 47 0.6336 25.751
14 48 0.6225 24.636
15 49 0.6214 24.992
16 50 0.6248 26.011
有没有可能包含您的数据或数据的样本,以便我们可以尝试你的代码,看看问题出在哪里从何而来? – plannapus 2013-03-02 09:54:09
我已附上数据 – user963386 2013-03-02 09:58:46
我应该补充一点,我是R新手。我已经对“d值”(在数据中)进行了一些估计。该程序的目的是优化“d值” 。 – user963386 2013-03-02 10:05:36