However, note that I DID get it WRONG: The method invoked by the NextMethod() call in the boxcox.formula method is boxcox.default, NOT boxcox.lm.
Cheers, Bert Bert Gunter Genentech Nonclinical Biostatistics (650) 467-7374 "Data is not information. Information is not knowledge. And knowledge is certainly not wisdom." H. Gilbert Welch On Fri, Feb 14, 2014 at 5:07 PM, Bert Gunter <bgun...@gene.com> wrote: > Inline. > > Bert Gunter > Genentech Nonclinical Biostatistics > (650) 467-7374 > > "Data is not information. Information is not knowledge. And knowledge > is certainly not wisdom." > H. Gilbert Welch > > > > > On Fri, Feb 14, 2014 at 4:19 PM, Gene Leynes <gleyne...@gmail.com> wrote: >> In searching for NextMethod on http://www.rseek.org/ I found some helpful >> tutorials on S3 and S4 methods. >> >> Between your answer and the tutorials, I think I'm starting to understand. >> The NextMethod is just a dispatcher type of thing that doesn't do anything >> directly. >> >> I think you're saying that when lm is called on a boxcox object then this >> part of the code handles it (maybe I have it backwards though). So, can you >> tell from this what the "next method" would be? I tried doing >> "debug(boxcox.default)" but there is no boxcox.default. > > Study the tutorials. You still don't appear to get it. > > Of course there is a boxcox.default. ?methods > methods(boxcox) > > It is not exported from MASS so must be accessed via ":::" > ?"::" > > -- Bert > >> >> Did you mistakenly say "boxplot" instead of "boxcox" when referring to the >> default method that does the "heavy lifting"? > > Yes. Thanks. >> >> I just want to see the code that calculates the log likelihood values of y >> in boxcox. >> >> Thank you >> >> >> On Fri, Feb 14, 2014 at 4:33 PM, Bert Gunter <gunter.ber...@gene.com> wrote: >>> >>> Well, since this is really a question about understanding how S3 >>> methods work, and this is not the place for a tutorial, I think what >>> you need to do is search out a tutorial that you understand. >>> >>> But very briefly, it does what it says. The "object" argument is >>> supplied to the boxcox generic; lm() takes this (presumably a formula) >>> as an argument and replaces the object argument with the fit, which is >>> of "lm" class . NextMethod() then would call the next method, >>> boxcox.lm on "object" . boxcox.lm does something similar, calling >>> boxplot.default on the (possibly fixed up) fit, as that is the "next" >>> method after boxplot.lm on "object." boxplot.default is where all the >>> work is done. >>> >>> *** If this is wrong in any way, I would appreciate being corrected.*** >>> >>> Others may have useful tutorials that provide greater detail. >>> >>> Cheers, >>> Bert >>> >>> Bert Gunter >>> Genentech Nonclinical Biostatistics >>> (650) 467-7374 >>> >>> "Data is not information. Information is not knowledge. And knowledge >>> is certainly not wisdom." >>> H. Gilbert Welch >>> >>> >>> >>> >>> On Fri, Feb 14, 2014 at 2:00 PM, Gene Leynes <gleyne...@gmail.com> wrote: >>> > Yes I read the help on NextMethod. In fact, since people frequently >>> > respond >>> > with "did you read the help" I mentioned that I had read the help in my >>> > original post. I'm very grateful for the time and effort that people >>> > put >>> > into answering questions, so I always try to answer the question myself >>> > first usually for more than one day. >>> > >>> > I didn't find anything in ?NextMethod that helped me understand how >>> > NextMethod works here: >>> >>> m <- length(lambda) >>> >>> object <- lm(object, y = TRUE, qr = TRUE, ...) >>> >>> result <- NextMethod() >>> > >>> > This part seemed like the the most likely part: >>> >> >>> >> NextMethod invokes the next method (determined by the class vector, >>> >> either >>> >> of the object supplied to the generic, or of the first argument to the >>> >> function containing NextMethod if a method was invoked directly). >>> >> NormallyNextMethod is used with only one argument, generic, but if >>> >> further >>> >> arguments are supplied these modify the call to the next method. >>> > >>> > >>> > But, since NextMethod is called with no arguments, what "class vector" >>> > determines the "next method"? If this is invoking the "next" method, >>> > then >>> > was the "previous" method? How can it be called with no arguments? >>> > >>> > Maybe my problem is that I don't understand the S3 and S4 classes and I >>> > should really read something else, because this help doesn't seem to >>> > stand >>> > on it's own. I've been using R for a long time and this help left me >>> > scratching my head. >>> > >>> > I don't actually care about NextMethod, I was just trying to figure out >>> > how >>> > the boxcox function is calculating the y part of the return values. >>> > Since I >>> > couldn't figure it out from ?boxcox I tried to dig into the code, but I >>> > was >>> > stymied by the code. Does the lm function compute the boxcox >>> > transformation? >>> > >>> > >>> > On Thu, Feb 13, 2014 at 4:59 PM, Bert Gunter <gunter.ber...@gene.com> >>> > wrote: >>> >> >>> >> Have you tried: >>> >> >>> >> ?NextMethod >>> >> >>> >> ? >>> >> >>> >> -- Bert >>> >> >>> >> Bert Gunter >>> >> Genentech Nonclinical Biostatistics >>> >> (650) 467-7374 >>> >> >>> >> "Data is not information. Information is not knowledge. And knowledge >>> >> is certainly not wisdom." >>> >> H. Gilbert Welch >>> >> >>> >> >>> >> >>> >> >>> >> On Thu, Feb 13, 2014 at 2:17 PM, Gene Leynes <gleyne...@gmail.com> >>> >> wrote: >>> >> > I was trying to understand the boxcox function in MASS to get a >>> >> > better >>> >> > understanding of where and how the log-Likelihood values are >>> >> > calculated. >>> >> > >>> >> > By using "debug(boxcox)" I found this code while running the >>> >> > examples: >>> >> > >>> >> >> m <- length(lambda) >>> >> >> object <- lm(object, y = TRUE, qr = TRUE, ...) >>> >> >> result <- NextMethod() >>> >> > >>> >> > >>> >> > Can someone tell me how this is optimizing the values for Lambda? >>> >> > I'm >>> >> > assuming that it has something to do with the qr decomposition that >>> >> > happens >>> >> > in lm? >>> >> > >>> >> > >>> >> > Thank you, >>> >> > >>> >> > Gene >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > Notes and disclaimers: >>> >> > >>> >> > - Yes, I read the help for NextMethod and boxcox. >>> >> > - I don't think my OS / R / MASS versions are relevant but if you >>> >> > must >>> >> > know I happen to be on Windows 8 right now and using R version >>> >> > 3.0.2 >>> >> > (2013-09-25) -- "Frisbee Sailing", Platform: >>> >> > x86_64-w64-mingw32/x64 >>> >> > (64-bit). MASS version is 7.3-29. >>> >> > >>> >> > [[alternative HTML version deleted]] >>> >> > >>> >> > ______________________________________________ >>> >> > R-help@r-project.org mailing list >>> >> > 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. >>> > >>> > >> >> ______________________________________________ R-help@r-project.org mailing list 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.