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@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 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ R-help@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.