pulest {unknown}R Documentation

Pulse Estimation


This function accomplishes the third step of the algorithm in Yang, Liu and Wang (2004). It estimates all parameters in the model.


pulest(x, y, data, baseline=list(nb=~x, rk=cubic(x)), 
       puloc, start, type = c("dblexp", "user"), 
       params=list(infrate="common", decrate="mixed", amplitude="mixed"), 
       pulse.usr=list(shape, parlist, devlist), 
       weights = NULL, correlation = NULL, control=pul.control(IDF=1))


x a vector of observation time points.
y a vector of hormone concentrations.
data a data frame containing the variables occurring in the x and y arguments. If this option is not specified, the variables should be on the search list. Missing values are not allowed.
baseline a list specifies the model space for the baseline function. nb is a one-sided formula specifying the basis of the null space. rk is an expression specifying the reproducing kernel of the orthogonal complementary space to the null space. The default options of nb and rk correspond to the cubic spline. If baseline=0, the baseline function is fixed at its initial input.
start a list of initial values. It includes two components: fixed, a vector of starting values for the common and fixed parameters specified in the argument params or in the component parlist of the argument pulse.usr (note that the order is very important: the initial values for common parameters appear before those for fixed parameters); Inif, initial baseline estimates evaluated at x.
type a character string specifies a predefined type of the pulse shape functions. If type="dblexp", a double exponential function will be used as the pulse shape function. If type="user", the user can input the shape function and parameters in the argument pulse.usr.
params when type="dblexp", params is a list of three components, infrate, decrate and amplitude, which correspondingly specifies models to be assumed for the pulse infussion rate, pulse decay rate and pulse amplitude parameters. Current possible options are “common” for infrate; “common”, “fixed” and “mixed” for pulse decrate; “common”, “fixed”, “mixed” and “random” for amplitude. Here “common” means that a common parameter is assumed in all pulses; “fixed” means that different deterministic parameters are assumed for all pulses; “random” means that the parameters are assumed to be from a normal distribution with mean 0; “mixed” means that the paramters are assumed to be from a normal distribution with a unknown constant mean. Current program assumes that all random parameters are independent.
pulse.usr when type="user", pulse.usr is a list of three components, shape, parlist, and devlist, which correspondingly specify the pulse shape, pulse parameters, and first derivatives of the pulse shape function with respect to the parameters. shape is a formula. parlist is a list of character vectors with four components: common, random, fixed, and p. The component common specifies fixed parameters used in the pulse formula which are common for all pulses; the component random specifies random parameters in the pulse formula; and the component fixed specifies fixed parameters which are different for each pulse. Current program assumes that all random parameters are independent. The fourth component p is used to specify the parameter name of the pulse locations. devlist is a list of the derivatives in the order of the common, random parameters and fixed parameters. For each type of parameters, the order should be consistent with the order of the parameters supplied in textt{palist}.
weights an optional varFunc object or one-sided formula describing the heteroscedasticity structure. See the documentation on varClasses in the nlme package for a description of the available varFunc classes. Defaults to NULL, corresponding to homoscesdatic errors.
correlation an optional corStruct object describing the correlation structure. See the documentation of corClasses in the nlme package for a description of the available corStruct classes. Defaults to NULL, corresponding to no correlations.
control a list of control values for the estimation algorithm to replace the default values returned by the function pulest.control.


pulest estimates all parameters using the double-penalized log-likelihood and the approximate profile-likelihood (Yang, Liu and Wang, 2004).


a list which contains

tbl a summary matrix of the fit with columns corresponding to the number of pulses (NP), BIC, RIC, AIC, GCV, total degrees of freedom (DF), degrees of freedom of the baseline function (df(base)), smoothing parameters in log10 scale (nlaht), and residual sum of squares (RSS).
coef estimated parameters.
Var Covariance matrix of the estimated parameters.
baseFitted estimates of the baseline function.
nlmeFitted estimates of the hormone secretion with baseline subtracted.
nlmeObj nlme object of the nlme function if it is used.
gnlsObj gnls object of the gnls function if it is used.
callxObj object returned from the inside function NLMEcallx or GNLScallx.
nlme whether nlme is used in the fitting.


Yu-Chieh Yang, Anna Liu, Yuedong Wang


Pinheiro, J. and Bates, D. M. (2000), Mixed-effects Models in S and S-plus, Springer, New York.

Yang, Y. (2002), Detecting Change Points and Hormone Pulses Using Partial Spline Models, Ph.D. Thesis, University of California-Santa Barbara, Dept. of Statistics and Applied Probability.

Yang, Y. and Liu, A. and Wang, Y., (2004), Detecting Pulsatile Hormone Secretions Using Nonlinear Mixed Effects Partial Spline Models. Available at www.pstat.ucsb.edu/faculty/yuedong/research.

Wang, Y. and Ke, C. (2002), ASSIST: A Suite of S-plus functions Implementing Spline smoothing Techniques. Available at cran.us.r-project.org/src/contrib/PACKAGES.html. Manual for the ASSIST package is available at www.pstat.ucsb.edu/faculty/yuedong/software.

See Also

baseini, nlme, pul.control, puldec, ssr, summary.pulest


fit.cmm <- pulest(time, conc, data=acth, type=c("dblexp"),
    puloc=pl5, start=list(fixed=fix.ini, Inif=bl1),
    params=list(infrate="common", decrate="mixed", amplitude="mixed"),
    control =list(pul=list(IDF=1)))

[Package Contents]