2016-05-09 4 views
0

nlxb fitting()関数がpredict()関数で機能しない理由を理解できなかったので、この質問をしています。私はこの問題を解決するために周りを見ていないが、これまでのところ、運されています:(nlmrtパッケージからnlxbで予測できますか?

私はグループのデータにdplyrを使用してnlmrtパッケージからnlxbを使用して、各グループに合わせてdoを使用しています。

ここ

は私の試みです

set.seed(12345) 
set =rep(rep(c("1","2","3","4"),each=21),times=1) 
time=rep(c(10,seq(100,900,100),seq(1000,10000,1000),20000),times=1) 
value <- replicate(1,c(replicate(4,sort(10^runif(21,-6,-3),decreasing=FALSE)))) 
data_rep <- data.frame(time, value,set) 

> head(data_rep) 
    # time  value set 
    #1  10 1.007882e-06 1 
    #2 100 1.269423e-06 1 
    #3 200 2.864973e-06 1 
    #4 300 3.155843e-06 1 
    #5 400 3.442633e-06 1 
    #6 500 9.446831e-06 1 
    *  *  *   * 

library(dplyr) 
library(nlmrt) 

    d_step <- 1 
    f <- 1e9 
    d <- 32  
    formula = value~Ps*(1-exp(-2*f*time*exp(-d)))*1/(sqrt(2*pi*sigma))*exp(-(d-d_ave)^2/(2*sigma))*d_step 

     dffit = data_rep %>% group_by(set) %>% 
     do(fit = nlxb(formula , 
        data = ., 
        start=c(d_ave=44,sigma=12,Ps=0.5), 
        control=nls.lm.control(maxiter = 100), 
        trace=TRUE)) 

------------------------------------------- -------------

最終的に2つのポイントがあります。

1)まず、各グループのフィッティング係数をdffitパイプラインに引き継ぐ方法。

2)新しいx値に基づいて予測を行う。例えば

range <- data.frame(x=seq(1e-5,20000,length.out=10000))

は私がnlxbとソリューションを好むだろうnlsr-minpack-lmnls-lm-failed-with-good-resultsに比べてスムーズに作業しているnlxbので(フィット、data.frame(X =レンジ)

Error in UseMethod("predict") : 
    no applicable method for 'predict' applied to an object of class "nlmrt" 

を予測する。しかし、あなたが持っている場合よりよい解決策をお知らせください。

答えて

0

coefまたはpredictの方法はありませんクラスのオブジェクトであるが、nlmrtパッケージではが実行され、nlmrt、次にnlsが実行され、"nls"オブジェクトが結果となり、そのオブジェクトがすべてのクラスメソッドで使用できるようになります。

また、nls.lm.controlはnlsLMパッケージに含まれているため、ここでは使用しないでください。代わりにlistを使用してください。

+0

お気軽にお問い合わせください。私は 'wrapnls'を確認した後であなたに知らせます。 – Alexander

+0

'wrapnls'をチェックしましたが、フィッティングが収束せず、特異な勾配エラーが発生しました。あなたは私の最新の投稿を見ましたか?[nls-nlxb-and-wrapnls](http://stackoverflow.com/questions/37133471/failed-to-do-fitting- nls-nlxb-and-wrapnlsを使用したいくつかの試み) – Alexander

関連する問題