[R] [Re: Significance of confidence intervals in the Non-Linear Least Squares Program.]

Peter Dalgaard p.dalgaard at biostat.ku.dk
Fri Mar 28 09:01:47 CET 2008


glenn andrews wrote:
> What should I be looking for in the output of the nls() routine that 
> alerts me to the fact that the Hessian is potentially ill-conditioned?
>
Unreasonably large s.e.'s and large correlations in the 
variance-covariance matrix of estimates (cov2cor(vcov(nlmod)) or 
summary(nlmod, corr=TRUE)).

Notice that the former requires at least some feel for what is the 
natural scale of each parameter, which in turn requires subject-matter 
knowledge.

> Glenn
>
> Peter Dalgaard wrote:
>
>> glenn andrews wrote:
>>
>>> Thanks for the response. I was not very clear in my original request.
>>>
>>> What I am asking is if in a non-linear estimation problem using 
>>> nls(), as the condition number of the Hessian matrix becomes larger, 
>>> will the t-values of one or more of the parameters being estimated 
>>> in general become smaller in absolute value -- that is, are low 
>>> t-values a  sign of an ill-conditioned Hessian?
>>>   
>>
>> In a word: no. Ill-conditioning essentially means that there are one 
>> or more directions in parameter space along which estimation is 
>> unstable. Along such directions you get a large SE, but also a large 
>> variability of the estimate, resulting in t values at least in the 
>> usual "-2  to +2" range. The large variation may swamp a true effect 
>> along said direction, though.
>>
>>> Typical nls() ouput:
>>>
>>> Formula: y ~ (a + b * log(c * x1^d + (1 - c) * x2^d))
>>>
>>> Parameters:
>>>  Estimate Std. Error t value Pr(>|t|) a  0.11918    0.07835   
>>> 1.521   0.1403 b -0.34412    0.27683  -1.243   0.2249 c  0.33757    
>>> 0.13480   2.504   0.0189 *
>>> d -2.94165    2.25287  -1.306   0.2031
>>> Glenn
>>>
>>> Prof Brian Ripley wrote:
>>>
>>>  
>>>
>>>> On Wed, 26 Mar 2008, glenn andrews wrote:
>>>>
>>>>   
>>>>> I am using the non-linear least squares routine in "R" -- nls.  I 
>>>>> have a
>>>>> dataset where the nls routine outputs tight confidence intervals 
>>>>> on the
>>>>> 2 parameters I am solving for.
>>>>>       
>>>>
>>>> nls() does not ouptut confidence intervals, so what precisely did 
>>>> you do?
>>>> I would recommend using confint().
>>>>
>>>> BTW, as in most things in R, nls() is 'a' non-linear least squares 
>>>> routine: there are others in other packages.
>>>>
>>>>   
>>>>> As a check on my results, I used the Python SciPy leastsq module 
>>>>> on the
>>>>> same data set and it yields the same answer as "R" for the
>>>>> coefficients.  However, what was somewhat surprising was the the
>>>>> condition number of the covariance matrix reported by the SciPy 
>>>>> leastsq
>>>>> program = 379.
>>>>>
>>>>> Is it possible to have what appear to be tight confidence 
>>>>> intervals that
>>>>> are reported by nls, while in reality they mean nothing because of 
>>>>> the
>>>>> ill-conditioned covariance matrix?
>>>>>       
>>>>
>>>> The covariance matrix is not relevant to profile-based confidence 
>>>> intervals, and its condition number is scale-dependent whereas the 
>>>> estimation process is very much less so.
>>>>
>>>> This is really off-topic here (it is about misunderstandings about 
>>>> least-squares estimation), so please take it up with your 
>>>> statistical advisor.
>>>>
>>>>     
>>>
>>>
>>> ______________________________________________
>>> 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.
>>>   
>>
>>
>>
>


-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907



More information about the R-help mailing list