[R] Unable to retrieve residual sum of squares from nls output

Gabor Grothendieck ggrothendieck at gmail.com
Fri Aug 13 23:36:15 CEST 2010


On Fri, Aug 13, 2010 at 5:32 PM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:
> On Fri, Aug 13, 2010 at 5:21 PM, Dennis Fisher <fisher at plessthan.com> wrote:
>> Colleagues,
>>
>> I am using "nls" successfully (2.11.1, OS X) but I am having difficulties retrieving part of the output - residual sum of squares.  I have assigned the output to FIT:
>>> > FIT
>>> Nonlinear regression model
>>>   model:  NEWY ~ PMESOR + PAMPLITUDE * cos(2 * pi * (NEWX - POFFSET)/PERIOD)
>>>    data:  parent.frame()
>>>     PMESOR PAMPLITUDE    POFFSET
>>>    1153.02   -1183.09      24.58
>>>  residual sum-of-squares: 1815056
>>>
>>> Number of iterations to convergence: 8
>>> Achieved convergence tolerance: 1.643e-08
>>
>> As you can see, the object contains "residual sum-of-squares: 1815056".  However, I can't figure out how to grab that value.   The tried using "str":
>>> > str(FIT)
>>> List of 6
>>>  $ m          :List of 16
>>>   ..$ resid     :function ()
>>>   ..$ fitted    :function ()
>>>   ..$ formula   :function ()
>>>   ..$ deviance  :function ()
>>>   ..$ lhs       :function ()
>>>   ..$ gradient  :function ()
>>>   ..$ conv      :function ()
>>>   ..$ incr      :function ()
>>>   ..$ setVarying:function (vary = rep(TRUE, length(useParams)))
>>>   ..$ setPars   :function (newPars)
>>>   ..$ getPars   :function ()
>>>   ..$ getAllPars:function ()
>>>   ..$ getEnv    :function ()
>>>   ..$ trace     :function ()
>>>   ..$ Rmat      :function ()
>>>   ..$ predict   :function (newdata = list(), qr = FALSE)
>>>   ..- attr(*, "class")= chr "nlsModel"
>>>  $ convInfo   :List of 5
>>>   ..$ isConv     : logi TRUE
>>>   ..$ finIter    : int 8
>>>   ..$ finTol     : num 1.64e-08
>>>   ..$ stopCode   : int 0
>>>   ..$ stopMessage: chr "converged"
>>>  $ data       : language parent.frame()
>>>  $ call       : language nls(formula = NEWY ~ PMESOR + PAMPLITUDE * cos(2 * pi * (NEWX -      POFFSET)/PERIOD), start = list(PMESOR = MESOR, PAMPLITUDE = AMPLITUDE,  ...
>>>  $ dataClasses: Named chr "numeric"
>>>   ..- attr(*, "names")= chr "NEWX"
>>>  $ control    :List of 2
>>>   ..$ maxiter : num 1000
>>>   ..$ warnOnly: logi TRUE
>>>  - attr(*, "class")= chr "nls"
>>
>> However, none of these elements appears to contain the residual sum of squares.
>> Help!  Thanks.
>
>
> Try:
>
>   sum(resid(FIT)^2)
>
> or
>
>   FIT$m$deviance()

or deviance(FIT)



More information about the R-help mailing list