The SPP Procedure

PARMS Statement

  • PARMS value-list </ PARMSDATA=SAS-data-set>;

The PARMS statement specifies initial values for the parameters in the MODEL statement. Alternatively, the PARMS statement can request a grid search over several values of these parameters. The PARMS statement is optional and must follow the associated MODEL statement.

Table 105.3: PARMS Statement Options

Option

Description

Component Options

PARMSDATA=

Specifies an input data set that contains initial values for the model parameters


Specification of parameter values in the PARMS statement is ordered, but the order is unrelated to the order in which you specify covariates in the MODEL statement. In particular, you must specify the initial parameter values by starting with the intercept parameter. Depending on the terms you specify in the model, you must continue sequentially by specifying the initial values for each of the monomials in a polynomial, and finally specify the coefficients that correspond to plain covariate terms in the model. If you have no initial value for one or more of the model parameters, then you can specify missing values as initial values. You can specify the value-list in any of following forms:

m

a single value

$\Argument{m}_1, \Argument{m}_2,\  \ldots ,\  \Argument{m}_ n$

several values

m to n

a sequence in which m equals the starting value, n equals the ending value, and the increment equals 1

m to n by i

a sequence in which m equals the starting value, n equals the ending value, and i equals the increment

$\Argument{m}_1, \Argument{m}_2$ to $\Argument{m}_3$

mixed values and sequences

For example, suppose you are fitting an intensity model that consists of a polynomial of first degree in each of the coordinates x and y and a term with the covariate variable Elevation. You want to specify an initial value of –3.5 for the intercept, and an initial value of –5 for the covariate Elevation. In the PARMS statement, you specify initial values for the Intercept parameter and the parameter of the Elevation variable, and no initial values for the parameters of the polynomial terms x, xy, and y. The following SAS statements implement these specifications:

proc spp data=sashelp.bei plots(equate) = intensity;
   process trees = (x,y /area=(0,0,1000,500) event=Trees);
   trend grad = field(x,y,gradient);
   trend elev = field(x,y,elevation);
   model trees = elev / grid(50,25) poly(1);
   parms (-3.5) (.) (-5);
run;

If you specify more than one set of initial values, a grid of initial values sets is created. PROC SPP searches among the specified sets for the set that yields the lowest objective function value. Then, the procedure uses the initial values in the selected set for the optimization.

The results from the PARMS statement are the values of the parameters on the specified grid.

You can specify the following option after a slash (/) in the PARMS statement:

PARMSDATA=SAS-data-set
PDATA=SAS-data-set

specifies the SAS data set from which to read model parameter values. The data set should contain the values in the sequence that is required by the PARMS statement in either of the following two ways:

  • Specify one single column under the variable Estimate (Est) that contains all the parameter values.

  • Use one column for each parameter, and place the n columns under the Parm1Parmn variables.

For example, the following two data sets are equivalent ways to specify initial values for a model that requires four parameters:

data parData1;
   input Estimate @@;
   datalines;
0.5 -2 0.03 -3.4
;
 data parData2;
   input Parm1 Parm2 Parm3 Parm4 Parm5 Parm6 Parm7;
   datalines;
0.5 -2 0.3 . . 1 -5
0.5 -2 0.1 . . 0.1 -5
;

You can specify more than one set of initial values in the SAS-data-set. PROC SPP seeks among the specified sets for the one that gives the lowest objective function value. Then, the procedure uses the initial values in the selected set for the fitting optimization.

You can either explicitly specify initial parameter values in the PARMS statement or use the PDATA= option, but you cannot use both at the same time.