This routine approximates a contour of a function based on the profile
of that function.
Usage
## S3 method for class 'profile'
ellipse(x, which = c(1, 2), level = 0.95, t = sqrt(qchisq(level, 2)),
npoints = 100, ...)
Arguments
x
An object of class profile, e.g. from
profile.glm in the MASS package.
which
Which pair of parameters to use.
level
The ellipse.profile function defaults assume that the profiled
function is -2 times the log likelihood of a regular model.
With this assumption the level argument
specifies the confidence level for an asymptotic confidence region.
t
The square root of the value to be contoured.
npoints
How many points to use in the ellipse.
...
Extra arguments are not used.
Details
This function uses the 4 point approximation to the contour as described
in Appendix 6 of Bates and Watts (1988). It produces the exact contour for
quadratic surfaces, and good approximations for mild deviations from
quadratic. If the surface is multimodal, the algorithm is likely to
produce nonsense.
Value
An npoints x 2 matrix with columns having the chosen parameter names,
which approximates a contour of the function that was profiled.
References
Bates and Watts (1988) Nonlinear Regression Analysis & its Applications
See Also
profile, ellipse.nls
Examples
# Plot an approximate 95% confidence region for the Puromycin
# parameters Vm and K, and overlay the ellipsoidal region
data(Puromycin)
Purboth <- nls(formula = rate ~ ((Vm + delV * (state == "treated"))
* conc)/(K + conc), data = Puromycin,
start = list(Vm = 160, delV = 40, K = 0.05))
Pur.prof <- profile(Purboth)
plot(ellipse(Pur.prof, which = c('Vm', 'K')), type = 'l')
lines(ellipse(Purboth, which = c('Vm', 'K')), lty = 2)
params <- Purboth$m$getPars()
points(params['Vm'],params['K'])