NLMOD Procedure
Example 22.1 Segmented Model
(View the complete code for this example.)
Suppose you are interested in fitting a model that consists of two segments that connect in a smooth fashion. For example, the following model states that the mean of Y is a quadratic function in x for values of x less than and that the mean of Y is constant for values of x greater than
:
In this model equation, ,
, and
are the coefficients of the quadratic segment, and c is the plateau of the mean function. The NLMOD procedure can fit such a segmented model even when the join point,
, is unknown.
Suppose you also want to impose conditions on the two segments of the model. First, the curve should be continuous—that is, the quadratic and the plateau section need to meet at . Second, the curve should be smooth—that is, the first derivative of the two segments with respect to x needs to coincide at
.
The continuity condition requires that
The smoothness condition requires that
If you solve for and substitute your result in the expression for c, the two conditions jointly imply that
Although there are five unknowns, the model contains only three independent parameters. Together the continuity and smoothness restrictions completely determine two parameters, given the other three.
The following DATA step creates the data table for this example in your CAS session:
data mylib.A;
input y x @@;
datalines;
.46 1 .47 2 .57 3 .61 4 .62 5 .68 6 .69 7
.78 8 .70 9 .74 10 .77 11 .78 12 .74 13 .80 13
.80 15 .78 16
;
The following PROC NLMOD statements fit this segmented model:
proc nlmod data=mylib.A out=mylib.B;
parms alpha=.45 beta=.05 gamma=-.0025;
x0 = -.5*beta / gamma;
if (x < x0) then
yp = alpha + beta*x + gamma*x*x;
else
yp = alpha + beta*x0 + gamma*x0*x0;
model y ~ residual(yp);
estimate 'join point' -beta/2/gamma;
estimate 'plateau value c' alpha - beta**2/(4*gamma);
predict 'predicted' yp pred=yp;
predict 'response' y pred=y;
predict 'x' x pred=x;
run;
The parameters of the model are ,
, and
, which are represented in the PROC NLMOD statements by the variables
alpha, beta, and gamma, respectively. To model the two segments, a conditional statement assigns the appropriate expression to the mean function, depending on the value of . The ESTIMATE statements compute the values of
and c. The PREDICT statement computes predicted values for plotting and saves them to data table
b.
The results from fitting this model are shown in Output 22.1.1 through Output 22.1.3. The iterative optimization converges after six iterations (Output 22.1.1). Output 22.1.2 shows the estimated parameters. Output 22.1.3 indicates that the join point is 12.7477 and the plateau value is 0.7775.
Output 22.1.1: Nonlinear Least Squares Iterative Phase
| Quadratic Model with Plateau |
| Iteration History | ||||
|---|---|---|---|---|
| Iteration | Evaluations | Objective Function | Change | Maximum Gradient |
| 0 | 5 | 0.0035144531 | 7.184063 | |
| 1 | 2 | 0.0007352716 | 0.00277918 | 2.145337 |
| 2 | 2 | 0.0006292751 | 0.00010600 | 0.032551 |
| 3 | 2 | 0.0006291261 | 0.00000015 | 0.002952 |
| 4 | 2 | 0.0006291244 | 0.00000000 | 0.000238 |
| 5 | 2 | 0.0006291244 | 0.00000000 | 0.000023 |
| 6 | 2 | 0.0006291244 | 0.00000000 | 2.313E-6 |
| Convergence criterion (GCONV=1E-8) satisfied. |
Output 22.1.2: Least Squares Analysis of the Quadratic Model
| Analysis of Variance | |||||
|---|---|---|---|---|---|
| Source | DF | Sum of Squares | Mean Square | F Value | Approx Pr > F |
| Model | 2 | 0.1769 | 0.0884 | 114.22 | <.0001 |
| Error | 13 | 0.0101 | 0.000774 | ||
| Corrected Total | 15 | 0.1869 | |||
| Parameter Estimates | |||||||
|---|---|---|---|---|---|---|---|
| Parameter | Estimate | Standard Error | DF | t Value | Approx Pr > |t| | Approximate 95% Confidence Limits | |
| Lower | Upper | ||||||
| alpha | 0.3921 | 0.0267 | 13 | 14.70 | <.0001 | 0.3345 | 0.4497 |
| beta | 0.0605 | 0.00842 | 13 | 7.18 | <.0001 | 0.0423 | 0.0787 |
| gamma | -0.00237 | 0.000551 | 13 | -4.30 | 0.0009 | -0.00356 | -0.00118 |
Output 22.1.3: Additional Estimates for the Quadratic Model
| Additional Estimates | ||||||||
|---|---|---|---|---|---|---|---|---|
| Label | Estimate | Standard Error | DF | t Value | Approx Pr > |t| | Alpha | Approximate Confidence Limits | |
| Lower | Upper | |||||||
| join point | 12.7477 | 1.2781 | 13 | 9.97 | <.0001 | 0.05 | 9.9864 | 15.5089 |
| plateau value c | 0.7775 | 0.0123 | 13 | 63.11 | <.0001 | 0.05 | 0.7509 | 0.8041 |
The following statements produce a graph, shown in Output 22.1.4, of the observed and predicted values along with reference lines for the join point and plateau estimates:
data B;
set mylib.B;
run;
proc sort data = B;
by x;
run;
proc sgplot data=B noautolegend;
yaxis label='Observed or Predicted';
refline 0.7775 / axis=y label="Plateau" labelpos=min;
refline 12.7477 / axis=x label="Join point" labelpos=min;
scatter y=y x=x;
series y=yp x=x;
run;
Output 22.1.4: Observed and Predicted Values for the Quadratic Model
