[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