Returns a list of elements for profiling a nonlinear heteroscedastic model.
# S3 method for nlreg
profile(fitted, offset = "all", hoa = TRUE, precision = 6,
signif = 30, n = 50, omit = 0.5, trace = FALSE, md, vd,
all = FALSE, …)
a fitted nlreg
object such as returned by a call to
nlreg
.
a single named element representing the parameter of interest (a
regression coefficient or a variance parameter), or "all"
if
all parameters are to be profiled, provided that the model formula
contains more than one regression coefficient. The constant term
\(\log(\sigma^2)\) which is included by default
in the variance function is referred to by logs
(see the
weights
argument in nlreg
). The
default is "all"
.
logical value indicating whether higher order statistics should be
included; the default is TRUE
.
numerical value defining the maximum range of values, given by
MLE \(\pm\)
precision
\(*\)s.e., that are profiled. The
default is 6.
the maximum number of output points that are calculated exactly; the default is 30.
the approximate number of output points produced by the spline interpolation; the default is 50.
numerical value defining the range of values, given by
MLE \(\pm\) omit
\(*\)s.e,
which is omitted in the spline interpolation of the higher order
statistics. The purpose is to avoid numerical instabilities around
the maximum likelihood estimate.
if TRUE
, details of the iterations are printed.
a function definition that returns the first two derivatives of the
mean function; used by allProfiles.nlreg
.
a function definition that returns the first two derivatives of the
variance function; used by allProfiles.nlreg
.
logical switch used by allProfiles.nlreg
.
absorbs any additional argument.
a list of elements of class nlreg.profile
or, if
offset = "all"
, of class all.nlreg.profiles
for
profiling a nonlinear heteroscedastic model. The
nlreg.profile
class considers a scalar parameter of interest,
while the all.nlreg.profiles
class ontains the profiles of all
parameters -- regression coefficients and variance parameters.
If trace = TRUE
, the parameter which is currently profiled and
the corresponding value are printed.
The function profile.nlreg
calculates all elements necessary
for profiling a scalar parameter of interest or all model parameters.
The model formula must contain more than one regression coefficient.
A classical profile plot (Bates and Watts, 1988, Section 6.1.2) is a plot of the likelihood root statistic and of the Wald statistic against a range of values for the interest parameter. It provides a means to assess the accuracy of the normal approximation to the distribution of both statistics: the closer the corresponding curves are, the better the approximations. Confidence intervals can easily be read off for any desired level: the confidence bounds identify with the values on the \(x\)-axis at which the curves intersect the horizontal lines representing the standard normal quantiles of the desired level.
Profiling is performed by updating a fitted nonlinear heteroscedastic
model. All statistics are calculated exactly for at maximum
signif
equally spaced points distributed around the
MLE. To save execution time, the iterations start with a
value close to the MLE and proceed in the two directions
MLE \(\pm\) \(\delta\), until the
absolute value of all statistics exceeds the threshold 2.4. The
step size \(\delta\) is defined by the signif
argument. A spline interpolation is used to extend them over the
whole interval of interest. A range of values, defined by the
omit
argument is omitted to avoid numerical instabilities
around the MLE. All results are stored in an object of
class nlreg.profile
or all.nlreg.profiles
depending on
the value assumed by the offset
argument. The
summary
and plot
method
functions must be used to examine the output or represent it
graphically. No print
method is available.
If hoa = TRUE
, profile.nlreg
produces an enhanced
version of the classical profile plots by including the third order
modified likelihood root statistic \(r^*\). More
precisely, it implements two approximations to
Barndorff-Nielsens's (1991) original formulation where the
sample space derivatives are replaced by respectively the
approximations proposed in Skovgaard (1996) and Fraser,
Reid and Wu (1999). The idea is to provide insight into the behaviour
of first order methods, such as detecting possible bias of the estimates
or the influence of the model curvature.
The theory and statistics used are summarized in Brazzale (2000, Chapters 2 and 3). More details of the implementation are given in Brazzale (1999; 2000, Section 6.3.2).
Barndorff-Nielsen, O. E. (1991) Modified signed log likelihood ratio. Biometrika, 78, 557--564.
Bates, D. M. and Watts, D. G. (1988) Nonlinear Regression Analysis and Its Applications. New York: Wiley.
Brazzale, A. R. (2000) Practical Small-Sample Parametric Inference. Ph.D. Thesis N. 2230, Department of Mathematics, Swiss Federal Institute of Technology Lausanne.
Fraser, D.A.S., Reid, N. and Wu, J. (1999). A simple general formula for tail probabilities for frequentist and Bayesian inference. Biometrika, 86, 249--264.
Skovgaard, I. (1996) An explicit large-deviation approximation to one-parameter tests. Bernoulli, 2, 145--165.
# NOT RUN {
data(metsulfuron)
metsulfuron.nl <-
nlreg( formula = log(area) ~ log( b1+(b2-b1) / (1+(dose/b4)^b3) ),
weights = ~ ( 1+dose^exp(g) )^2, data = metsulfuron,
start = c(b1 = 138, b2 = 2470, b3 = 2, b4 = 0.07, g = log(0.3)),
hoa = TRUE )
##
metsulfuron.prof <- profile( metsulfuron.nl, offset = g, trace = TRUE )
plot( metsulfuron.prof, lwd2 = 2 )
#
metsulfuron.prof <- profile( metsulfuron.nl, trace = TRUE )
plot( metsulfuron.prof, nframe = c(2,3), lwd2 = 2 )
# }
Run the code above in your browser using DataLab