Example 2 for PROC ORTHOREG
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: ORTHOREX2 */
/* TITLE: Example 2 for PROC ORTHOREG */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: regression analysis */
/* PROCS: ORTHOREG GLM */
/* DATA: */
/* */
/* SUPPORT: alkolo */
/* REF: PROC ORTHOREG, EXAMPLE 2. */
/* MISC: */
/****************************************************************/
/* Example 2: Wampler Data -------------------------------------*/
data Wampler;
do x=0 to 20;
input e @@;
y1 = 1 + x + x**2 + x**3
+ x**4 + x**5;
y2 = 1 + .1 *x + .01 *x**2 + .001*x**3
+ .0001*x**4 + .00001*x**5;
y3 = y1 + e;
y4 = y1 + 100*e;
y5 = y1 + 10000*e;
output;
end;
datalines;
759 -2048 2048 -2048 2523 -2048 2048 -2048 1838 -2048 2048
-2048 1838 -2048 2048 -2048 2523 -2048 2048 -2048 759
;
%macro WTest;
data ParmEst; if (0); run;
%do i = 1 %to 5;
proc orthoreg data=Wampler outest=ParmEst&i noprint;
model y&i = x x*x x*x*x x*x*x*x x*x*x*x*x;
data ParmEst&i; set ParmEst&i; Dep = "y&i";
data ParmEst; set ParmEst ParmEst&i;
label Col1='x' Col2='x**2' Col3='x**3'
Col4='x**4' Col5='x**5';
run;
%end;
%mend;
%WTest;
data ParmEst; set ParmEst;
if (Dep = 'y1') then
_RMSE_ = _RMSE_ - 0.00000000000000;
else if (Dep = 'y2') then
_RMSE_ = _RMSE_ - 0.00000000000000;
else if (Dep = 'y3') then
_RMSE_ = _RMSE_ - 2360.14502379268;
else if (Dep = 'y4') then
_RMSE_ = _RMSE_ - 236014.502379268;
else if (Dep = 'y5') then
_RMSE_ = _RMSE_ - 23601450.2379268;
if (Dep ^= 'y2') then do;
Intercept = Intercept - 1.00000000000000;
Col1 = Col1 - 1.00000000000000;
Col2 = Col2 - 1.00000000000000;
Col3 = Col3 - 1.00000000000000;
Col4 = Col4 - 1.00000000000000;
Col5 = Col5 - 1.00000000000000;
end;
else do;
Intercept = Intercept - 1.00000000000000;
Col1 = Col1 - 0.100000000000000;
Col2 = Col2 - 0.100000000000000e-1;
Col3 = Col3 - 0.100000000000000e-2;
Col4 = Col4 - 0.100000000000000e-3;
Col5 = Col5 - 0.100000000000000e-4;
end;
run;
proc print data=ParmEst label noobs;
title 'Wampler data: Deviations from Certified Values';
format _RMSE_ Intercept Col1-Col5 e9.;
var Dep _RMSE_ Intercept Col1-Col5;
run;