Documentation Example 5 for PROC SURVEYREG
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: SVREX5 */
/* TITLE: Documentation Example 5 for PROC SURVEYREG */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: regression, survey sampling */
/* KEYS: stratification, regression estimator */
/* KEYS: unequal weighting, linear model */
/* PROCS: SURVEYREG */
/* DATA: */
/* */
/* SUPPORT: sasaba */
/* REF: PROC SURVEYREG, Example 5 */
/* */
/* MISC: Regression Estimator for Stratified Sample */
/* */
/****************************************************************/
data Farms;
input State $ Region FarmArea CornYield Weight;
datalines;
Iowa 1 100 54 33.333
Iowa 1 83 25 33.333
Iowa 1 25 10 33.333
Iowa 2 120 83 10.000
Iowa 2 50 35 10.000
Iowa 2 110 65 10.000
Iowa 2 60 35 10.000
Iowa 2 45 20 10.000
Iowa 3 23 5 5.000
Iowa 3 10 8 5.000
Iowa 3 350 125 5.000
Nebraska 1 130 20 5.000
Nebraska 1 245 25 5.000
Nebraska 1 150 33 5.000
Nebraska 1 263 50 5.000
Nebraska 1 320 47 5.000
Nebraska 1 204 25 5.000
Nebraska 2 80 11 20.000
Nebraska 2 48 8 20.000
;
data FarmsByState;
set Farms;
if State='Iowa' then do;
FarmAreaIA=FarmArea;
FarmAreaNE=0;
end;
else do;
FarmAreaIA=0;
FarmAreaNE=FarmArea;
end;
run;
data StratumTotals;
input State $ Region _TOTAL_;
datalines;
Iowa 1 100
Iowa 2 50
Iowa 3 15
Nebraska 1 30
Nebraska 2 40
;
title1 'Estimate Corn Yield from Farm Size';
title2 'Model I: Same Intercept and Slope';
proc surveyreg data=Farms total=StratumTotals;
strata State Region / list;
class State Region;
model CornYield = FarmArea State*Region /solution;
weight Weight;
estimate 'Estimate of CornYield under Model I'
INTERCEPT 235 FarmArea 21950
State*Region 100 50 15 30 40 /e;
run;
title1 'Estimate Corn Yield from Farm Size';
title2 'Model II: Same Intercept, Different Slopes';
proc surveyreg data=FarmsByState total=StratumTotals;
strata State Region;
class State Region;
model CornYield = FarmAreaIA FarmAreaNE
state*region /solution;
weight Weight;
estimate 'Total of CornYield under Model II'
INTERCEPT 235 FarmAreaIA 13200 FarmAreaNE 8750
State*Region 100 50 15 30 40 /e;
run;
title1 'Estimate Corn Yield from Farm Size';
title2 'Model III: Different Intercepts and Slopes';
proc surveyreg data=FarmsByState total=StratumTotals;
strata State Region;
class State Region;
model CornYield = state FarmAreaIA FarmAreaNE
State*Region /noint solution;
weight Weight;
estimate 'Total CornYield in Iowa under Model III'
State 165 0 FarmAreaIA 13200 FarmAreaNE 0
State*region 100 50 15 0 0 /e;
estimate 'Total CornYield in Nebraska under Model III'
State 0 70 FarmAreaIA 0 FarmAreaNE 8750
State*Region 0 0 0 30 40 /e;
estimate 'Total CornYield in both states under Model III'
State 165 70 FarmAreaIA 13200 FarmAreaNE 8750
State*Region 100 50 15 30 40 /e;
run;