[R] NextMethod in boxcox

Bert Gunter gunter.berton at gene.com
Sat Feb 15 02:07:26 CET 2014


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 <gleynes+r at 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.berton at 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 <gleynes+r at 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.berton at 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 <gleynes+r at 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 at 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.
>> >
>> >
>
>




More information about the R-help mailing list