I've tried others initial solutions and the adjustement was done to power model in ggplot - geom_smooth. But, with "nls" I can't do the confidence interval with ggplot - geom_smooth? I read that with "nls" we have to force "se=FALSE". Is this true? How can I draw confidence interval in the plot? I've done this:> ggplot(data,aes(x = idade,y = v_mt)) ++ geom_point(alpha=2/10, shape=21,fill="darkgray", colour="black", size=3) + + geom_smooth(method = 'nls', formula = y ~ a * x^b, start = list(a=1,b=2),se=FALSE)>And then I don't have the confidence interval. If I do:> ggplot(data,aes(x = idade,y = v_mt)) ++ geom_point(alpha=2/10, shape=21,fill="darkgray", colour="black", size=3) + + geom_smooth(method = 'nls', formula = y ~ a * x^b, start = list(a=1,b=2)) Error in pred$fit : $ operator is invalid for atomic vectors>Return error... Ty, Catarina Silva -----Original Message----- From: Jeff Newmiller [mailto:jdnewmil at dcn.davis.CA.us] Sent: s?bado, 7 de Novembro de 2015 01:09 To: bolseiro.raiz.csilva at portucelsoporcel.com; R mailling list Subject: Re: [R] [GGplot] Geom_smooth with formula "power"? Does [1] help? [1] http://stackoverflow.com/questions/10528631/add-exp-power-trend-line-to-a-ggplot --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity. On November 6, 2015 2:41:18 AM PST, Catarina Silva <bolseiro.raiz.csilva at portucelsoporcel.com> wrote:>Hi, > >It's possible to use ggplot and geom_smooth to adjust a power curve to >the data? > >Initially i have done the adjustement with nls and the formula 'a*x^b', >but resulted the singular matrix error for start solution. >Alternatively I used the log transformation and i had correct results, >but I can't draw a power curve on the graphic. > >Someone know how to solve this problem? > > > >Ty, > > > >Catarina Silva > > >Imprima no nosso papel - Cuide do ambiente >-------------------------- >Print on our paper - Care for the environment. >-------------------------- >http://backoffice.portucelsoporcel.net/dynamic-media/files/utilizar_papel_e_promover_o_desenvolvimento_da_floresta.pdf > >______________________________________________ >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code.Imprima no nosso papel - Cuide do ambiente -------------------------- Print on our paper - Care for the environment. -------------------------- http://backoffice.portucelsoporcel.net/dynamic-media/files/utilizar_papel_e_promover_o_desenvolvimento_da_floresta.pdf
> On Nov 9, 2015, at 7:19 AM, Catarina Silva <bolseiro.raiz.csilva at portucelsoporcel.com> wrote: > > I've tried others initial solutions and the adjustement was done to power model in ggplot - geom_smooth. > But, with "nls" I can't do the confidence interval with ggplot - geom_smooth? I read that with "nls" we have to force "se=FALSE". Is this true?Well, sort of. Setting `se = FALSE` prevents the ggplot2 functions from trying to force nls and nls.predict to do something that is not in their design.> How can I draw confidence interval in the plot? > > I've done this: >> ggplot(data,aes(x = idade,y = v_mt)) + > + geom_point(alpha=2/10, shape=21,fill="darkgray", colour="black", size=3) + > + geom_smooth(method = 'nls', formula = y ~ a * x^b, start = list(a=1,b=2),se=FALSE) >> > And then I don't have the confidence interval. > > If I do: >> ggplot(data,aes(x = idade,y = v_mt)) + > + geom_point(alpha=2/10, shape=21,fill="darkgray", colour="black", size=3) + > + geom_smooth(method = 'nls', formula = y ~ a * x^b, start = list(a=1,b=2)) > Error in pred$fit : $ operator is invalid for atomic vectors >> > > Return error? >Read the help page for nls. The ?se.fit' parameter is set to FALSE and efforts to make it TRUE will be ignored. So `predict.nls` simply does not return std-error estimates in the typical manner of other predict.* functions. I believe this is because the authors of `nls` did not think there was a clear answer to the question of what confidence bounds should be returned. If you want to add confidence bounds to an nls, then you need to decide what bounds to add, and then use the ggplot2 line-drawing functions to overlay them on your own. I found posts in Rhelp that pointed me to the ?nls2' package, but when I tried to run the code I got messages saying that the `as.lm` function could not be found. http://markmail.org/message/7kvolf5zzpqyb7l2?q=list:org%2Er-project%2Er-help+as%2Elm+is+a+linear+model+between+the+response+variable+and+the+gradient> require(nls2)Loading required package: nls2 Loading required package: proto> fm <- nls(demand ~ SSasympOrig(Time, A, lrc), data = BOD) > predict(as.lm(fm), interval = "confidence")Error in predict(as.lm(fm), interval = "confidence") : could not find function "as.lm"> getAnywhere(as.lm)no object named ?as.lm? was found I also found a couple of posts on R-bloggers pointing me to the ?propagate' package which has two different methods for constructing confidence intervals. http://rmazing.wordpress.com/2013/08/14/predictnls-part-1-monte-carlo-simulation-confidence-intervals-for-nls-models/ http://rmazing.wordpress.com/2013/08/26/predictnls-part-2-taylor-approximation-confidence-intervals-for-nls-models/ ? David.> Ty, > Catarina Silva > > -----Original Message----- > From: Jeff Newmiller [mailto:jdnewmil at dcn.davis.CA.us] > Sent: s?bado, 7 de Novembro de 2015 01:09 > To: bolseiro.raiz.csilva at portucelsoporcel.com; R mailling list > Subject: Re: [R] [GGplot] Geom_smooth with formula "power"? > > Does [1] help? > > [1] http://stackoverflow.com/questions/10528631/add-exp-power-trend-line-to-a-ggplot > --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > --------------------------------------------------------------------------- > Sent from my phone. Please excuse my brevity. > > On November 6, 2015 2:41:18 AM PST, Catarina Silva <bolseiro.raiz.csilva at portucelsoporcel.com> wrote: >> Hi, >> >> It's possible to use ggplot and geom_smooth to adjust a power curve to >> the data? >> >> Initially i have done the adjustement with nls and the formula 'a*x^b', >> but resulted the singular matrix error for start solution. >> Alternatively I used the log transformation and i had correct results, >> but I can't draw a power curve on the graphic. >> >> Someone know how to solve this problem? >> >>David Winsemius Alameda, CA, USA
See section 8.4-8.5 of MASS 4th Ed. (the book) and the use of profile.nls() and friends for profiling the log likelihhood surface. Warning: standard F,t approximations may be poor if the log likelihood is not nearly enough quadratic. The whole issue of what df to use is also contentious/unresolved. -- Bert Bert Gunter "Data is not information. Information is not knowledge. And knowledge is certainly not wisdom." -- Clifford Stoll On Tue, Nov 10, 2015 at 9:47 AM, David Winsemius <dwinsemius at comcast.net> wrote:> >> On Nov 9, 2015, at 7:19 AM, Catarina Silva <bolseiro.raiz.csilva at portucelsoporcel.com> wrote: >> >> I've tried others initial solutions and the adjustement was done to power model in ggplot - geom_smooth. >> But, with "nls" I can't do the confidence interval with ggplot - geom_smooth? I read that with "nls" we have to force "se=FALSE". Is this true? > > Well, sort of. Setting `se = FALSE` prevents the ggplot2 functions from trying to force nls and nls.predict to do something that is not in their design. > >> How can I draw confidence interval in the plot? >> >> I've done this: >>> ggplot(data,aes(x = idade,y = v_mt)) + >> + geom_point(alpha=2/10, shape=21,fill="darkgray", colour="black", size=3) + >> + geom_smooth(method = 'nls', formula = y ~ a * x^b, start = list(a=1,b=2),se=FALSE) >>> >> And then I don't have the confidence interval. >> >> If I do: >>> ggplot(data,aes(x = idade,y = v_mt)) + >> + geom_point(alpha=2/10, shape=21,fill="darkgray", colour="black", size=3) + >> + geom_smooth(method = 'nls', formula = y ~ a * x^b, start = list(a=1,b=2)) >> Error in pred$fit : $ operator is invalid for atomic vectors >>> >> >> Return error? >> > Read the help page for nls. The ?se.fit' parameter is set to FALSE and efforts to make it TRUE will be ignored. So `predict.nls` simply does not return std-error estimates in the typical manner of other predict.* functions. I believe this is because the authors of `nls` did not think there was a clear answer to the question of what confidence bounds should be returned. > > If you want to add confidence bounds to an nls, then you need to decide what bounds to add, and then use the ggplot2 line-drawing functions to overlay them on your own. I found posts in Rhelp that pointed me to the ?nls2' package, but when I tried to run the code I got messages saying that the `as.lm` function could not be found. > > http://markmail.org/message/7kvolf5zzpqyb7l2?q=list:org%2Er-project%2Er-help+as%2Elm+is+a+linear+model+between+the+response+variable+and+the+gradient > >> require(nls2) > Loading required package: nls2 > Loading required package: proto >> fm <- nls(demand ~ SSasympOrig(Time, A, lrc), data = BOD) >> predict(as.lm(fm), interval = "confidence") > Error in predict(as.lm(fm), interval = "confidence") : > could not find function "as.lm" >> getAnywhere(as.lm) > no object named ?as.lm? was found > > > I also found a couple of posts on R-bloggers pointing me to the ?propagate' package which has two different methods for constructing confidence intervals. > > http://rmazing.wordpress.com/2013/08/14/predictnls-part-1-monte-carlo-simulation-confidence-intervals-for-nls-models/ > http://rmazing.wordpress.com/2013/08/26/predictnls-part-2-taylor-approximation-confidence-intervals-for-nls-models/ > > > > ? > David. > >> Ty, >> Catarina Silva >> >> -----Original Message----- >> From: Jeff Newmiller [mailto:jdnewmil at dcn.davis.CA.us] >> Sent: s?bado, 7 de Novembro de 2015 01:09 >> To: bolseiro.raiz.csilva at portucelsoporcel.com; R mailling list >> Subject: Re: [R] [GGplot] Geom_smooth with formula "power"? >> >> Does [1] help? >> >> [1] http://stackoverflow.com/questions/10528631/add-exp-power-trend-line-to-a-ggplot >> --------------------------------------------------------------------------- >> Jeff Newmiller The ..... ..... Go Live... >> DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... >> Live: OO#.. Dead: OO#.. Playing >> Research Engineer (Solar/Batteries O.O#. #.O#. with >> /Software/Embedded Controllers) .OO#. .OO#. rocks...1k >> --------------------------------------------------------------------------- >> Sent from my phone. Please excuse my brevity. >> >> On November 6, 2015 2:41:18 AM PST, Catarina Silva <bolseiro.raiz.csilva at portucelsoporcel.com> wrote: >>> Hi, >>> >>> It's possible to use ggplot and geom_smooth to adjust a power curve to >>> the data? >>> >>> Initially i have done the adjustement with nls and the formula 'a*x^b', >>> but resulted the singular matrix error for start solution. >>> Alternatively I used the log transformation and i had correct results, >>> but I can't draw a power curve on the graphic. >>> >>> Someone know how to solve this problem? >>> >>> > > David Winsemius > Alameda, CA, USA > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.