It is sometimes useful to specify priors and supports by using the PDATA= option. This example illustrates how to create a PDATA= data set which contains the priors and support points for use in a subsequent PROC ENTROPY step. In order to have a model to estimate in PROC ENTROPY, you must first have data to analyze. The following DATA step generates the data used in this analysis:
title "Using a PDATA= data set"; data a; array x[4]; do t = 1 to 100; ys = -5; do k = 1 to 4; x[k] = rannor( 55372 ) ; ys = ys + x[k] * k; end; ys = ys + rannor( 55372 ); output; end; run;
Next you fit this data with some arbitrary parameter support points and priors by using the following PROC ENTROPY statements:
proc entropy data = a gme primal; priors x1 -10(2) 30(1) x2 -20(3) 30(2) x3 -15(4) 30(4) x4 -25(3) 30(2) intercept -13(4) 30(2) ; model ys = x1 x2 x3 x4 / esupports=(-25 0 25); run;
These statements produce the output shown in Output 13.4.1.
Output 13.4.1: Output From PROC ENTROPY
Using a PDATA= data set |
GME Variable Estimates | ||||
---|---|---|---|---|
Variable | Estimate | Approx Std Err | t Value | Approx Pr > |t| |
x1 | 1.195688 | 0.1078 | 11.09 | <.0001 |
x2 | 1.844903 | 0.1018 | 18.12 | <.0001 |
x3 | 3.268396 | 0.1136 | 28.77 | <.0001 |
x4 | 3.908194 | 0.0934 | 41.83 | <.0001 |
intercept | -4.94319 | 0.1005 | -49.21 | <.0001 |
You can estimate the same model by first creating a PDATA= data set, which includes the same information as the PRIORS statement in the preceding PROC ENTROPY step.
A data set that defines the supports and priors for the model parameters is shown in the following statements:
data test; length Variable $ 12 Equation $ 12; input Variable $ Equation $ Nsupport Support Prior ; datalines; Intercept . 2 -13 0.66667 Intercept . 2 30 0.33333 x1 . 2 -10 0.66667 x1 . 2 30 0.33333 x2 . 2 -20 0.60000 x2 . 2 30 0.40000 x3 . 2 -15 0.50000 x3 . 2 30 0.50000 x4 . 2 -25 0.60000 x4 . 2 30 0.40000 ;
The following statements reestimate the model by using these support points.
proc entropy data=a gme primal pdata=test; model ys = x1 x2 x3 x4 / esupports=(-25 0 25); run;
These statements produce the output shown in Output 13.4.2.
Output 13.4.2: Output From PROC ENTROPY with PDATA= option
Using a PDATA= data set |
GME Variable Estimates | ||||
---|---|---|---|---|
Variable | Estimate | Approx Std Err | t Value | Approx Pr > |t| |
x1 | 1.195686 | 0.1078 | 11.09 | <.0001 |
x2 | 1.844902 | 0.1018 | 18.12 | <.0001 |
x3 | 3.268395 | 0.1136 | 28.77 | <.0001 |
x4 | 3.908194 | 0.0934 | 41.83 | <.0001 |
Intercept | -4.94319 | 0.1005 | -49.21 | <.0001 |
These results are identical to the ones produced by the previous PROC ENTROPY step.