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

glenn andrews ga at aggies.com
Fri Mar 28 00:43:57 CET 2008


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?

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.
>>   
>
>
>



More information about the R-help mailing list