[R] Extracting Coefficients and Such from mle2 Output

David Winsemius dwinsemius at comcast.net
Sun Feb 1 16:43:57 CET 2009


As Ben Bolker's reply hints, our difficulty was that because we were  
insufficiently knowledgeable regarding working with S4 objects such  
as  "a" and summary(a) object. Both mle2 and summary(a) produce S4  
objects which need a different set of extraction technology. Although  
I did not know it last night, I have now looked at the help page for  
"slot", followed the link to the help page for "@" labeled "slotOp",   
and found that one can use "@" in much the same way one uses "$".

 > str(summary(a))
#Formal class 'summary.mle2' [package "bbmle"] with 3 slots
   ..@ call  : language mle2(minuslogl = LL, fixed = list(xhalf = 6))
   ..@ coef  : num [1, 1:4] 1.93e+01 1.71 1.13e+01 1.86e-29
   .. ..- attr(*, "dimnames")=List of 2
   .. .. ..$ : chr "ymax"
   .. .. ..$ : chr [1:4] "Estimate" "Std. Error" "z value" "Pr(z)"
   ..@ m2logL: num 60.4

# So ....coef in this case is a 1 by 4 matrix and ...

summary(a)@coef["ymax","Std. Error"]

#yields
#[1] 1.711541

So we still have access to any of the components of an S4 object such  
as a or summary(a), if we follow the trail of their respective  
structures
-- 
David Winsemius



On Feb 1, 2009, at 7:50 AM, BooBoo wrote:

> I had asked this question once before about a function in the NADA  
> package, and you provided this neat response:
>
> [Begin quote]
>
> An approach that may yield somewhat more self-documenting code would  
> be to examine either the fit object or the summary object with str  
> and then to access results by extracting named elements. Since I  
> don't have the package in question, let me use the lm object on its  
> help page as an example:
>
> ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
> trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
> group <- gl(2,10,20, labels=c("Ctl","Trt"))
> weight <- c(ctl, trt)
> lm.D9 <- lm(weight ~ group)
>
> str(lm.D9)
> str(summary(lm.D9))
> summary(lm.D9)$coefficients
> summary(lm.D9)$coefficients["groupTrt", "Pr(>|t|)"]
>
> # to get the p-value
> > summary(lm.D9)$coefficients["groupTrt","Pr(>|t|)"]
> [1] 0.2490232
>
> [End quote]
>
> However, this does not seem to work with mle2, and the methods you  
> suggested this time don't allow me access to the "etc" (the standard  
> error and its probability for example). Is there a way to do this  
> similar to what you suggested for lm, where I can at anything  
> reported by mle2?
>
> Tom
>
>
> David Winsemius wrote:
>> On Jan 31, 2009, at 9:13 PM, Tom La Bone wrote:
>>>
>>> The mle2 function (bbmle library) gives an example something like  
>>> the
>>> following in its help page. How do I access the coefficients,  
>>> standard
>>> errors, etc in the summary of "a"?
>> ?coef
>> ?vcov
>> eeep. Further comment on "etc" not possible at this time. Mind  
>> reading equipment malfunction.




More information about the R-help mailing list