Fit an L-shape linear model with the cut point estimated by the profile likelihood method.
## S3 method for class 'formula'llm(formula, data=list(...), epsilon =0.025,...)
Arguments
formula: an object of class "formula": a sympolic description of the model to be fitted. The details of model specificatoin are given under 'Details'.
data: an optional data frame, list or enviroment containing the variables in the model.
epsilon: Step width for the profile likelihood method, default is 0.025
...: additional arguments to be passed to the low level regression fitting functions (see below).
Details
Define a L shape linear funcation that change slope at c0:
when x <c0, y = b1 + b2*x
when x>=c0, y = b1 + b2x + b3(x-x0) = (b1-b3*c0) + (b2+b3)*x
Returns
llm returns an object of class inheriting from "llm" which inherits from the class glm. See later in this section.
An object of class "llm" is a list containing at least the following components:
coefficients: a named vector of coefficients from 'llm'
residuals: the residuals, that is response minus fitted values.
fitted.values: the fitted mean values.
rank: the numeric rank of the fitted linear model.
df.residual: the residual degrees of freedom.
call: the matched call.
terms: the 'terms' object used.
c.max: the maximum likelihood estimate for the threshold parameter(s).
loglik: the log-likelihood with the final values of the coefficients.
References
Liu, S. S. and Chen, B. E. (2020). Continuous threshold models with two-way interactions in survival analysis. Canadian Journal of Statistics. Vol. 48, page 751-772.
#### simulate the data and fit a L-shape model.n =50; p <-2X = matrix(rnorm(n * p), n, p)# no intercept!w = X[,1]; age = X[,2]wc = w -0.2; sigma =0.25y = rnorm(n,-0.1+0.7*w-1.2*ifelse(wc>0, wc,0), sigma)fit=llm(y~w+age)print(fit)print(summary(fit))#### to plot the L-shape function# plot(fit)