[R] nonlinear model: pseudo-design matrix
Spencer Graves
spencer.graves at pdf.com
Fri Feb 17 23:32:19 CET 2006
Hi, Murray:
I just got 54 hits from RSiteSearch("numerical differentiation"), the
first of which mentioned a function "numericDeriv" WITH a warning
(http://finzi.psych.upenn.edu/R/Rhelp02a/archive/55462.html).
hope this helps.
spencer graves
###################
Hi Spencer,
I will try some of the ways you suggest and thank you for the
suggestions. I still think that performing a score test is a sensible
thing to do in my situation, though.
Murray
Spencer Graves wrote:
> Hi, Murray:
>
> When I have problems with nonconvergence of nls, I often
> move the problem to "optim(..., hessian=TRUE)". Even if the larger
> model is overparameterized and the hessian is singular, I optim usually
> returns an answer from which I can then compute 2*log(likelihood ratio).
> Moreover, the hessian will help me diagnose the problem. If it were my
> problem today, I'd try the following:
>
> (1) If there are substantial differences in the diagonal elements
> of the hessian, it suggests the scaling should be adjusted. Not too
> long ago, someone else suggested that this could be done within optim
> via the argument control = list(parscale=...). I have yet to try that,
> but I think it should work fine.
>
> (2) If the diagonal elements of the hessian do not differ by more
> than a couple orders of magnitude, then I'd try eigen(fit$hessian,
> symmetric=TRUE). The relative magnitudes of the eigenvalues will expose
> the effective numer of paramaters that can be estimated, and the
> eigenvectors associated with the smallest eigenvalues can help one
> diagnose the problem.
>
> hope this helps.
> spencer graves
>
> Murray Jorgensen wrote:
>
>> Hi Spencer,
>>
>> you were the only one to reply. Yes I am aware of the intrinsic /
>> parameter effects distinction and the advantages of LR tests and
>> profiling over Wald tests based on the local curvature of the
>> loglikelihood surface at the larger of two models being compared. My
>> situation is that I am comparing two nested models both of which have
>> uncomfortably many parameters for the amount of data available. I am
>> able to fit the smaller of the two models but not the larger. In this
>> situation neither the the Wald nor the LR test is available to me but
>> the score test (a.k.a. the Lagrange Multiplier test) is available to
>> me because it is based on the loglikelihood gradient at the smaller
>> model.
>>
>> I have been able to carry out the test by extracting
>>
>> X <- smaller.nls$m$gradient()
>>
>> and obtaining the extra columns of X for the parameters in larger but
>> not in smaller by numerical differentiation. It seems that there
>> should be some way of obtaining the extra columns without recourse to
>> numerical differentiation, though.
>>
>> Cheers, Murray Jorgensen
>>
>> Spencer Graves wrote:
>>
>>> There doubtless is a way to extract the gradient information
>>> you desire, but have you considered profiling instead? Are you
>>> familiar with the distinction between intrinsic and parameter effects
>>> curvature? In brief, part of the nonlinearities involved in
>>> nonlinear least squares are intrinsic to the problem, and part are
>>> due to the how the problem is parameterized. If you change the
>>> parameterization, you change the parameter effects curvature, but the
>>> intrinsic curvature remains unchanged. Roughly 30 years ago, Doug
>>> Bates and Don Watts reanalized a few dozen published nonlinear
>>> regression fits, and found that in all but perhaps one or two, the
>>> parameter effects were dominant and the intrinsic curvature was
>>> negligible. See Bates and Watts (1988) Nonlinear Regression Analysis
>>> and Its Applications (Wiley) or Seber and Wild (1989) Nonlinear
>>> Regression (Wiley).
>>>
>>> Bottom line:
>>>
>>> 1. You will always get more accurate answers from profiling
>>> than from the Wald "pseudodesign matrix" approach. Moreover, often
>>> the differences are dramatic.
>>>
>>> 2. I just did RSiteSearch("profiling with nls"). The first
>>> hit was
>>> "http://finzi.psych.upenn.edu/R/library/stats/html/profile.nls.html".
>>> If this is not satisfactory, please explain why.
>>>
>>> hope this helps.
>>> spencer graves
>>>
>>> Murray Jorgensen wrote:
>>>
>>>> Given a nonlinear model formula and a set of values for all the
>>>> parameters defining a point in parameter space, is there a neat way to
>>>> extract the pseudodesign matrix of the model at the point? That is the
>>>> matrix of partial derivatives of the fitted values w.r.t. the
>>>> parameters
>>>> evaluated at the point.
>>>>
>>>> (I have figured out how to extract the gradient information from an
>>>> nls fitted model using the nlsModel part, but I wish to implement a
>>>> score test, so I need to be able to extract the information at
>>>> points other than the mle.)
>>>>
>>>> Thanks, Murray Jorgensen
>>
>>
>>
>
More information about the R-help
mailing list