//NNNNNNV JOB (ALA03),'NNNNNNN NNN NN',CLASS=H,MSGCLASS=H /*ROUTE PRINT U5704 //********************************************************************** //* JOB NAME: PDS.SASRPW(RPWJOBCV) //********************************************************************** //* //* 00120008 //SO1 EXEC SAS,REGION=6000K,TIME=60 00110008 //WORK DD SPACE=(CYL,(4000)),UNIT=(SYSDA,3) 00200000 //SYSOUT DD DUMMY 00250000 //* \/\/\/ 00140000 //* \/\/\/ ENTER JOB-3 OUTPUT FOR SINGLE AP OR PQ. 00140000 //*NFLATE DD DSN=HSQRAN.BRPWD01.INFLATE1.FY2000Q1.EOY,DISP=SHR 00140000 //*NFLATE DD DSN=HSQRAN.BRPWD01.INFLATE1.FY2000Q2,DISP=SHR 00140000 //*NFLATE DD DSN=HSQRAN.BRPWD01.INFLATE1.FY2000Q3.EOY,DISP=SHR 00140000 //INFLATE DD DSN=HSQRAN.BRPWD01.INFLATE1.FY2000Q4,DISP=SHR 00140000 //MNUALFRM DD DSN=HSQRAN.BRPWD01.MANUALS.FRMQ199,DISP=SHR 00140000 //* \/\/\/ 00140000 //* \/\/\/ ENTER RPW CODE AND 2-PAGE TITLE FILES. 00140000 //RPWLABEL DD DSN=HSISMN.RPW.FY2000.CATEGORY.DIR,DISP=SHR 00140000 //TWOPAGE DD DSN=HSQRAN.BRPWD01.TPLABEL.FY2000.WTOTALS,DISP=SHR 00140000 //*WOPAGE DD DSN=HSISMN.RPW.ADJ.CNTL2000(SUMDIR),DISP=SHR 00140000 //*WOPAGE DD DSN=HSQRAN.BRPWD01.TPLABEL.OCT97.WTOTALS,DISP=SHR 00140000 //*PWLABEL DD DSN=HSQRAN.BRPWD01.RPWLABEL.JAN99,DISP=SHR 00140000 //* 00140000 //*AMPERRS DD DSN=NNNNNN.BRPWD01.SAMPERRS.FY2000Q5,DISP=SHR 00140000 //SAMPERRS DD DSN=NNNNNN.BRPWD01.SAMPERRS.FY2000Q5, 00140000 // DISP=(NEW,CATLG),DCB=(RECFM=FB,LRECL=120,BLKSIZE=4800), 00140000 // UNIT=SYSDA,SPACE=(CYL,(20,20),RLSE) 00140000 //* 00140000 //* 00140000 //SYSIN DD * 00250000 00260000 00260000 **********************************************************************; * \/\/\/\/\/\/\/\/\/ UPDATE PARAMETERS \/\/\/\/\/\/\/\/\/\/\/ *; %LET PQ = 5 ; * 0,1,2,3,4,5 (0,5 FOR GFY 1,4) *;00260000 %LET FY = 00 ; * *;00260000 %LET VER ='GFY Q5-00' ; * VERSION OF BRPW RUN (EOY, UPDT01,ETC)*;00260000 %LET NAPP = 0 ; * P-POST,BPM: NZERO/NAUTO COUNT PQ1-00*;00260000 %LET NABPM = 0 ; * P-POST,BPM: RUN PDS.SAS4C(NAUTONEW) *;00260000 %LET SRS1 ='M&PCS ' ; * IDENTIFY NON-RATIO DESIGN-1 *;00260000 %LET SRS2 ='PI-SB ' ; * IDENTIFY NON-RATIO DESIGN-2 OR REPEAT*;00260000 %LET XAIC223 = 1.00920754 ; * PI-SB ADJUSTMENT - BEFORE 223/PQ3-99 *;00260000 %LET F4Q0_121 =0.77545690 ; * PQ0 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q0_125 =0.78430060 ; * PQ0 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q0_130 =0.78202499 ; * PQ0 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q0_131 =0.70408392 ; * PQ0 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q0_132 =0.0 ; * PQ0 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q0_135 =0.80912095 ; * PQ0 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q0_223 =0.83276683 ; * PQ0 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q0_237 =0.75362319 ; * PQ0 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q0_999 =0.75362319 ; * PQ0 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q5_121 =1.24007143 ; * PQ5 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q5_125 =1.23452084 ; * PQ5 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q5_130 =1.23000886 ; * PQ5 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q5_131 =1.26031301 ; * PQ5 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q5_132 =0.0 ; * PQ5 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q5_135 =1.19149022 ; * PQ5 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q5_223 =1.20563287 ; * PQ5 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q5_237 =1.27867761 ; * PQ5 GFY FACTOR (N/A IF PFY) *;00260000 %LET F4Q5_999 =1.20430108 ; * PQ5 GFY FACTOR (N/A IF PFY) *;00260000 * \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ *; **********************************************************************; 00260000 ***************** 00260000 * READ GFY FACS * 00260000 *****************; 00260000 DATA F4; 00260000 AIC =121; PQ =0; F4 =&F4Q0_121; OUTPUT; 00260000 AIC =125; PQ =0; F4 =&F4Q0_125; OUTPUT; 00260000 AIC =130; PQ =0; F4 =&F4Q0_130; OUTPUT; 00260000 AIC =131; PQ =0; F4 =&F4Q0_131; OUTPUT; 00260000 AIC =223; PQ =0; F4 =&F4Q0_223; OUTPUT; 00260000 AIC =237; PQ =0; F4 =&F4Q0_237; OUTPUT; 00260000 AIC =132; PQ =0; F4 =&F4Q0_132; OUTPUT; 00260000 AIC =135; PQ =0; F4 =&F4Q0_135; OUTPUT; 00260000 AIC =999; PQ =0; F4 =&F4Q0_999; OUTPUT; 00260000 AIC =. ; PQ =0; F4 =&F4Q0_999; OUTPUT; 00260000 AIC =121; PQ =5; F4 =&F4Q5_121; OUTPUT; 002600 AIC =125; PQ =5; F4 =&F4Q5_125; OUTPUT; 002600 AIC =130; PQ =5; F4 =&F4Q5_130; OUTPUT; 002600 AIC =131; PQ =5; F4 =&F4Q5_131; OUTPUT; 002600 AIC =132; PQ =5; F4 =&F4Q5_132; OUTPUT; 002600 AIC =135; PQ =5; F4 =&F4Q5_135; OUTPUT; 002600 AIC =223; PQ =5; F4 =&F4Q5_223; OUTPUT; 002600 AIC =237; PQ =5; F4 =&F4Q5_237; OUTPUT; 002600 AIC =999; PQ =5; F4 =&F4Q5_999; OUTPUT; 002600 AIC =. ; PQ =5; F4 =&F4Q5_999; OUTPUT; 002600 ********************** 00260000 * READ INFLATED DATA * 00260000 **********************; 00260000 DATA RPW0; INFILE INFLATE; 00260000 INPUT @3 CLASS $2. @5 SYS $6. @11 AP 2. @13 PQ 1. @16 RDATE 6. @22 FINNO 6. @28 VIP $5. @29 VIP2 $1. @30 VIP3 $1. @32 VIP5 $1. @28 VIP1 $1. @33 RPWCODE 5. @38 RP 12.2 @50 RW 12.2 @62 P 12. @86 W 14.2 @100 NRESP 1. @101 MIGRATE 1. @102 EFLAG 4. /* @106 DISCOUNT $1. */ /* PRDCL DISCOUNT */ @106 OVERWRIT $1. @107 STRATUM 3.1 @110 BLOWUP 8.3 @118 AIC 3. @121 F1 10.8 @131 F2 15.8 @146 F3 15.8 @161 RPHAT 12.2 @173 RWHAT 12.2 @185 PHAT 12.2 @209 WHAT 14.2 ; *********** * PFY-GFY * ***********; IF PQ=1 & &PQ=0 THEN PQ=0; IF PQ=4 & &PQ=5 THEN PQ=5; *************** 00260000 * TEMP FILTER * 00260000 ***************; 00260000 IF ^((&PQ=0 OR &PQ=1) & &FY=00 & AIC=123 & VIP='44444'); 00260000 *************** 00260000 *************** 00260000 ***************; 00260000 *; 00260000 *; 00260000 *; 00260000 ********** 00260000 * FILTER * 00260000 **********; 00260000 IF FINNO^=0; /* REMOVE FINNO=0 (PLACEHOLDER FOR EMPTY VIPS) */ 00260000 IF EFLAG=0; 00260000 IF NRESP=0; 00260000 IF CLASS='1C' & (RPWCODE=1100 OR RPWCODE=1120 OR 00260000 RPWCODE=1220) THEN DELETE; 00260000 IF CLASS='SA' & (RPWCODE=3130) THEN DELETE; 00260000 IF SYS='M&PCS' & (RPWCODE=7510 OR RPWCODE=7530) THEN DELETE; 00260000 IF ^(CLASS='SB' & SYS='M&PCS'); 00260000 IF CLASS='SB' & '1'<=VIP3<='2' THEN DELETE; 00260000 ********* 00260000 * OTHER * 00260000 *********; 00260000 IF SYS='PRDCL' & &FY=00 & (&PQ=0 OR &PQ=1) THEN DO; 00260000 IF RPWCODE=2004 THEN DO; /* REGULAR */ 00260000 XR=0.9630003487; XP=0.9225042064; XW=0.9740449414; 00260000 RP= RP*XR; RPHAT=RPHAT*XR; RW=RW*XR; RWHAT=RWHAT*XR; 00260000 P = P *XP; PHAT= PHAT*XP; 00260000 W = W *XW; WHAT= WHAT*XW; 00260000 END; 00260000 ELSE IF RPWCODE=2005 THEN DO; /* NPROFIT */ 00260000 XR=1.239488610; XP=1.382528850; XW=1.197587082; 00260000 RP= RP*XR; RPHAT=RPHAT*XR; RW=RW*XR; RWHAT=RWHAT*XR; 00260000 P = P *XP; PHAT= PHAT*XP; 00260000 W = W *XW; WHAT= WHAT*XW; 00260000 END; 00260000 ELSE IF RPWCODE=2006 THEN DO; /* CLASSRM */ 00260000 XR=1.008186733; XP=1.008587506; XW=1.004239163; 00260000 RP= RP*XR; RPHAT=RPHAT*XR; RW=RW*XR; RWHAT=RWHAT*XR; 00260000 P = P *XP; PHAT= PHAT*XP; 00260000 W = W *XW; WHAT= WHAT*XW; 00260000 END; 00260000 END; 00260000 ********* 00260000 * OTHER * 00260000 *********; 00260000 IF SYS='PRDCL' & &FY=99 & (&PQ=4 OR &PQ=5) THEN DO; 00260000 IF RPWCODE=2004 THEN DO; /* REGULAR */ 00260000 XR=0.96528903; XP=0.94498066; XW=0.96744665; 00260000 RP= RP*XR; RPHAT=RPHAT*XR; RW=RW*XR; RWHAT=RWHAT*XR; 00260000 P = P *XP; PHAT= PHAT*XP; 00260000 W = W *XW; WHAT= WHAT*XW; 00260000 END; 00260000 ELSE IF RPWCODE=2005 THEN DO; /* NPROFIT */ 00260000 XR=1.22868900; XP=1.26459476; XW=1.26339487; 00260000 RP= RP*XR; RPHAT=RPHAT*XR; RW=RW*XR; RWHAT=RWHAT*XR; 00260000 P = P *XP; PHAT= PHAT*XP; 00260000 W = W *XW; WHAT= WHAT*XW; 00260000 END; 00260000 ELSE IF RPWCODE=2006 THEN DO; /* CLASSRM */ 00260000 XR=1.02031965; XP=1.01629464; XW=1.01589358; 00260000 RP= RP*XR; RPHAT=RPHAT*XR; RW=RW*XR; RWHAT=RWHAT*XR; 00260000 P = P *XP; PHAT= PHAT*XP; 00260000 W = W *XW; WHAT= WHAT*XW; 00260000 END; 00260000 END; 00260000 IF SYS='PI-SB' THEN DO; 00260000 IF AIC=. OR AIC=999 THEN AIC=.; /* STANDARDIZE */ 00260000 IF &FY=98 OR (&FY=99 & PQ<=2) THEN BLOWUP=&XAIC223; 00260000 END; 00260000 *; *; *; IF DISCOUNT='Y' THEN DO; 00260000 P=0; PHAT=0; 00260000 END; 00260000 ***************** * F1 ADJUSTMENT * *****************; XAICI=RPHAT+RWHAT; 00260000 RI=(RP+RW)*F1; 002 PI=P*F1; 002 WI=W*F1; 002 KEEP PQ SYS CLASS AIC STRATUM FINNO RPWCODE BLOWUP F2 00260000 XAICI RI PI WI VIP VIP2 MIGRATE; 00260000 ********************** 00260000 * CREATE 0-VOL SITES * 002 **********************; 002 DATA MNUALFRM; INFILE MNUALFRM; 002 INPUT @1 FINNO 6. 002 @8 SYS $6. 002 @14 STRATUM 3. 002 @93 BLOWUP 8. 002 @101 PNR $1. ; /* PERM NEG-RPT = '*' */ 002 PROC SORT DATA=RPW0; BY SYS STRATUM FINNO; 002 PROC SORT DATA=MNUALFRM; BY SYS STRATUM FINNO; 002 DATA RPW0; MERGE RPW0(IN=A) MNUALFRM(IN=B); BY SYS STRATUM FINNO; 002 IF FIRST.STRATUM THEN DO; 002 HOLDCLAS=CLASS; 002 HOLDAIC =AIC; 002 HOLDF2 =F2; 002 END; 002 IF A=1 THEN OUTPUT; 002 ELSE IF A=0 THEN DO; 002 CLASS=HOLDCLAS; AIC=HOLDAIC; F2=HOLDF2; 00260000 PQ=&PQ; 00260000 XAICI=0; RI=0; PI=0; WI=0; 00260000 OUTPUT; 002 END; 002 RETAIN PQ HOLDCLAS HOLDAIC HOLDF2; 002 DROP HOLDCLAS HOLDAIC HOLDF2; 002 ************** * GFY M4 FAC * * FOR PQ 0,5; **************; PROC SORT DATA=RPW0; BY PQ AIC; 002 PROC SORT DATA=F4; BY PQ AIC; 002 DATA RPW0; MERGE RPW0(IN=A) F4(IN=B); BY PQ AIC; 002 IF A=1; 002 IF 1<=PQ<=4 THEN F4=1; 002 IF F4=. THEN ABORT; 002 RI =RI*F4; 002 PI =PI*F4; 002 WI =WI*F4; 002 XAICI=XAICI*F4; 002 KEEP PQ SYS CLASS AIC STRATUM FINNO RPWCODE BLOWUP F2 00260000 XAICI RI PI WI VIP MIGRATE; 00260000 PROC DELETE DATA=F4; 002 ****************** * MERGE LINE NOS * ******************; DATA TITLE1; INFILE TWOPAGE; INPUT @1 LINENO 4.1 @5 LNAME $35.; IF LINENO^=.; DATA TITLE2; INFILE RPWLABEL; INPUT @1 RPWCODE 5. @9 LINENO 3.; PROC SORT DATA=TITLE1; BY LINENO; PROC SORT DATA=TITLE2; BY LINENO; DATA TITLES; MERGE TITLE1(IN=A) TITLE2(IN=B); BY LINENO; IF A=1; IF RPWCODE^=.; PROC SORT DATA=RPW0; BY RPWCODE; PROC SORT DATA=TITLES; BY RPWCODE; DATA RPW0; MERGE RPW0(IN=A) TITLES; BY RPWCODE; IF A=1; 00260000 ********** * FILTER * /* REMOVE SINGLE PIECE */ **********; IF LINENO=5 OR LINENO=25 OR LINENO=95 THEN DELETE; **************** * PRINT TITLE1 * ****************; PROC PRINT DATA=TITLE1; ID LINENO; VAR LNAME; TITLE1 "*** BRPW - BULK MAIL RPW SYSTEM *** PQ&PQ-&FY &VER"; TITLE3 'RCV-050: TWO-PAGE REPORT KEY'; TITLE4 ' '; PROC DELETE DATA=TITLE2; PROC DELETE DATA=TITLES; DATA RPW0; SET RPW0; 00260 ************ 00260000 * APPLY F2 * * BY PQ; 00260000 ************; 00260000 RJ=RI*F2; 00260000 PJ=PI*F2; 00260000 WJ=WI*F2; 00260000 *************** 00260000 * COMBINE APS * * DESCENDING AIC AND LINENO SORTS (TO RID '.'); 00260000 ***************; 00260000 PROC SORT DATA=RPW0; BY SYS CLASS DESCENDING AIC STRATUM FINNO DESCENDING LINENO; PROC SUMMARY DATA=RPW0; BY SYS CLASS DESCENDING AIC STRATUM FINNO DESCENDING LINENO; ID BLOWUP F2 LNAME PQ MIGRATE; VAR RJ PJ WJ XAICI; OUTPUT OUT=RPW1 SUM=; PROC DELETE DATA=RPW0; 00260000 ******************** 00260000 * CREATE ZERO RECS * /* FOR VIP=44444 & EMPTY LINENO BY SITE */ 002 ********************; 000 PROC SORT DATA=RPW1; /* DESCENDING SORTS TO RID EMPTY VALUES */ 000 BY SYS CLASS DESCENDING LINENO DESCENDING AIC; 000 DATA LINE; SET RPW1; 000 BY SYS CLASS DESCENDING LINENO; 000 IF FIRST.LINENO; 000 IF LINENO^=.; /* ALL LINENOS (NON-ZERO - ANY STRATUM)*/ 000 A=SYS; 000 B=CLASS; 000 HOLDAIC=AIC; 000 KEEP A B LINENO LNAME HOLDAIC; 000 PROC SORT DATA=RPW1; BY SYS CLASS FINNO; 000 DATA SITE; SET RPW1; BY SYS CLASS FINNO; 000 IF FIRST.FINNO; 000 KEEP SYS CLASS FINNO STRATUM BLOWUP F2 PQ; DATA LINESITE; SET SITE; BY SYS CLASS FINNO; 000 DO K=1 TO N; 000 SET LINE NOBS=N POINT=K; 000 IF SYS=A & CLASS=B THEN OUTPUT; 000 END; 000 DROP A B; 000 PROC SORT DATA=RPW1; BY SYS CLASS FINNO LINENO; 000 PROC SORT DATA=LINESITE; BY SYS CLASS FINNO LINENO; 000 DATA RPW1; MERGE RPW1(IN=A) LINESITE(IN=B); 000 BY SYS CLASS FINNO LINENO; 000 IF AIC=. THEN AIC=HOLDAIC; 000 IF LINENO^=.; 000 IF A=0 THEN DO; 000 RJ=0; 000 PJ=0; 000 WJ=0; 000 XAICI=0; 000 END; 000 *************** 00260000 * CREATE TOTS * *VAR(TOT) - DO NOT SUM DOMAIN LINENO VARIANCES; 002 ***************; 000 DATA RPWT; SET RPW1; AUXVAR=' '; *LEV-1; IF 010<=LINENO<=015 THEN DO; LINENO=015.5; OUTPUT; END; IF 030<=LINENO<=035 THEN DO; LINENO=035.5; OUTPUT; END; IF 075<=LINENO<=085 THEN DO; LINENO=085.5; OUTPUT; END; IF 100<=LINENO<=105 THEN DO; LINENO=105.5; OUTPUT; END; IF 115<=LINENO<=120 THEN DO; LINENO=120.5; OUTPUT; END; SET RPW1; AUXVAR=' '; *LEV-2; IF 095<=LINENO<=110 THEN DO; LINENO=110.5; OUTPUT; END; IF 115<=LINENO<=125 THEN DO; LINENO=125.5; OUTPUT; END; SET RPW1; AUXVAR='Y'; *LEV-3; IF 005<=LINENO<=045 THEN DO; LINENO=045.5; OUTPUT; END; IF 050<=LINENO<=055 THEN DO; LINENO=055.5; OUTPUT; END; IF 070<=LINENO<=090 THEN DO; LINENO=090.5; OUTPUT; END; IF 095<=LINENO<=130 THEN DO; LINENO=130.5; OUTPUT; END; IF 135<=LINENO<=155 THEN DO; LINENO=155.5; OUTPUT; END; IF 180<=LINENO<=180 THEN DO; LINENO=220.5; OUTPUT; END; SET RPW1; AUXVAR=' '; *LEV-4; IF 005<=LINENO<=165 THEN DO; LINENO=165.5; OUTPUT; END; SET RPW1; AUXVAR=' '; *LEV-5; IF 005<=LINENO<=220 THEN DO; LINENO=220.6; OUTPUT; LINENO=268.7; OUTPUT; LINENO=270.5; OUTPUT; END; IF LINENO=. THEN DO; LINENO=000.5; OUTPUT; END; ******************* * OVERWRITE JOINT * /* FOR JOINT AIC 125/130 TOTAL */ *******************; IF LINENO=130.5 & SYS='PI-SA' THEN AIC=125130; DROP LNAME; PROC SORT DATA=RPWT; BY SYS CLASS AIC STRATUM FINNO LINENO; PROC SUMMARY DATA=RPWT;BY SYS CLASS AIC STRATUM FINNO LINENO; ID BLOWUP F2 PQ MIGRATE AUXVAR; VAR RJ PJ WJ XAICI; OUTPUT OUT=RPWT SUM=; PROC SORT DATA=RPWT; BY LINENO; DATA RPWT; MERGE RPWT(IN=A) TITLE1; BY LINENO; IF A=1; PROC DELETE DATA=TITLE1; ******************** 00260000 * RECONSTRUCT $AIC * * STEP REQUIRED FOR MORE THAN 1 PQ PERIOD; 00260000 ********************; 00260000 DATA AUXVAR; SET RPWT; 00260000 IF AUXVAR='Y'; 00260000 PROC SORT DATA=AUXVAR; BY SYS CLASS AIC STRATUM; 00260000 PROC SUMMARY DATA=AUXVAR; BY SYS CLASS AIC STRATUM; 00260000 VAR XAICI; OUTPUT OUT=XAICH SUM=XAICH; 00260000 ****************************************************** 00260000 * ASSIGN NUM: Y =VAR OF INTEREST (R-P-W BY LINENO) * 00260000 * COMPUTE DOM: X =TOT REVENUE VAR (ACROSS LINENOS) * 00260000 * ADD TOTALS: MAIL CAT TOTALS (AFTER DOM COMPUTED).* 00260000 ******************************************************; 00260000 PROC SORT DATA=AUXVAR; BY SYS CLASS AIC STRATUM FINNO; PROC SUMMARY DATA=AUXVAR; BY SYS CLASS AIC STRATUM FINNO; ID BLOWUP F2 MIGRATE; VAR RJ; OUTPUT OUT=DOM SUM=XI; PROC DELETE DATA=AUXVAR; 00260000 DATA RPW1; SET RPW1 RPWT; * ADDED HERE AFTER DOM COMPUTED; 002 PROC DELETE DATA=RPWT; PROC SORT DATA=RPW1; BY SYS CLASS AIC STRATUM FINNO; DATA RPW1; MERGE RPW1 DOM; BY SYS CLASS AIC STRATUM FINNO; YIR=RJ; YYIR=RJ**2; XYIR=XI*RJ; YIP=PJ; YYIP=PJ**2; XYIP=XI*PJ; YIW=WJ; YYIW=WJ**2; XYIW=XI*WJ; DROP XI; *********************** 000 * H SUMS: YH YYH XYH * 000 ***********************; 000 PROC SORT DATA=RPW1; BY SYS CLASS AIC STRATUM LINENO; PROC SUMMARY DATA=RPW1; BY SYS CLASS AIC STRATUM LINENO; ID LNAME BLOWUP PQ; VAR YIR YYIR XYIR YIP YYIP XYIP YIW YYIW XYIW; OUTPUT OUT=YH SUM=YH_R YYH_R XYH_R YH_P YYH_P XYH_P YH_W YYH_W XYH_W ; ******************************************* 000 * 1. STRATUM SUMS: XH XXH * 000 * 2. STRATUM SAMP SIZE (ACTUAL RESP ONLY) * 000 * 3. STRATUM POP SIZE * 000 *******************************************; 000 DATA XHSUMS; SET DOM; BY SYS CLASS AIC STRATUM FINNO; IF FIRST.STRATUM THEN DO; XH=0; XXH=0; END; IF FIRST.FINNO THEN DO; XH=XH+XI; XXH=XXH+XI*XI; END; IF LAST.STRATUM THEN OUTPUT; RETAIN XH XXH; KEEP SYS CLASS AIC STRATUM XH XXH; PROC SORT DATA=DOM; BY SYS STRATUM FINNO; DATA XHKOUNTS; SET DOM; BY SYS STRATUM FINNO; IF FIRST.STRATUM THEN NHSAMPX=0; IF FIRST.FINNO & ^(FINNO=. OR FINNO=0) THEN NHSAMPX=NHSAMPX+1; IF LAST.STRATUM THEN OUTPUT; /* ORIG POP SIZE */ RETAIN NHSAMPX; KEEP SYS STRATUM BLOWUP NHSAMPX F2; ***************** * ADJ STRATUM-1 * /* COUNT AUTO SITES (LESS MIGRATES) */ *****************; PROC SORT DATA=DOM; BY STRATUM FINNO; DATA AUTO; SET DOM; BY STRATUM FINNO; IF STRATUM=1 & FIRST.FINNO; AUTO=1; PROC SUMMARY; VAR AUTO; OUTPUT OUT=AUTO SUM=; PROC SORT DATA=DOM; BY SYS FINNO; DATA MIGS; SET DOM; BY SYS FINNO; IF FIRST.FINNO; MIGS=0; IF STRATUM>1 & MIGRATE=1 THEN MIGS=1; PROC SUMMARY; BY SYS; VAR MIGS; OUTPUT OUT=MIGS SUM=; DATA S1ADJ; SET MIGS; DO K=1 TO N; SET AUTO NOBS=N POINT=K; OUTPUT; END; KEEP SYS AUTO MIGS; DATA XHKOUNTS; MERGE XHKOUNTS S1ADJ; BY SYS; IF STRATUM=1 THEN NHSAMPX=AUTO-MIGS; /* OVERLAY */ NHPOP=INT(0.5 + BLOWUP*F2*NHSAMPX); ******************* * ADD NAUTO COUNT * *******************; IF SYS='PI-SB' THEN NHPOP=INT(0.5+F2*NHSAMPX+&NAPP); IF SYS='PI-BPM' THEN NHPOP=INT(0.5+F2*NHSAMPX+&NABPM); KEEP SYS STRATUM BLOWUP NHSAMPX NHPOP; PROC DELETE DATA=DOM; PROC SORT DATA=XHSUMS; BY SYS STRATUM; DATA XH; MERGE XHKOUNTS XHSUMS; BY SYS STRATUM; PROC DELETE DATA=XHKOUNTS; PROC DELETE DATA=XHSUMS; ********************************************************** 00260000 * COMPUTE VAR FOR COMBINED RATIO ESTIMATOR OF TOTAL * 00260000 * * 0026000 **********************************************************; 00260000 PROC SORT DATA=XH; BY SYS CLASS AIC STRATUM; DATA RPWH; MERGE YH XH XAICH; BY SYS CLASS AIC STRATUM; IF SYS=&SRS1 THEN DESIGN='SRS';00 ELSE IF SYS=&SRS2 & (&FY=99 & &PQ<=2 OR &FY=98) THEN DESIGN='SRS';00 ELSE DESIGN='CR ';00 IF NHPOP^=0 THEN F =NHSAMPX/NHPOP; /* ACTUAL (RESPONDENTS) */ XHATH =XH *BLOWUP; 002 YHATH_R =YH_R*BLOWUP; YHATH_P =YH_P*BLOWUP; YHATH_W =YH_W*BLOWUP; S2XH =0; VARXH =0; S2YH_R =0; VARYH_R =0; SXYH_R =0; COVXYH_R =0; S2YH_P =0; VARYH_P =0; SXYH_P =0; COVXYH_P =0; S2YH_W =0; VARYH_W =0; SXYH_W =0; COVXYH_W =0; IF (NHSAMPX-1) ^=0 THEN DO; S2XH =(XXH - XH*XH/NHSAMPX)/(NHSAMPX-1); S2YH_R =(YYH_R - YH_R**2/NHSAMPX)/(NHSAMPX-1); S2YH_P =(YYH_P - YH_P**2/NHSAMPX)/(NHSAMPX-1); S2YH_W =(YYH_W - YH_W**2/NHSAMPX)/(NHSAMPX-1); SXYH_R =(XYH_R - XH*YH_R/NHSAMPX)/(NHSAMPX-1); SXYH_P =(XYH_P - XH*YH_P/NHSAMPX)/(NHSAMPX-1); SXYH_W =(XYH_W - XH*YH_W/NHSAMPX)/(NHSAMPX-1); VARXH =(NHPOP**2)*(1-F)*S2XH/NHSAMPX; VARYH_R =(NHPOP**2)*(1-F)*S2YH_R/NHSAMPX; VARYH_P =(NHPOP**2)*(1-F)*S2YH_P/NHSAMPX; VARYH_W =(NHPOP**2)*(1-F)*S2YH_W/NHSAMPX; COVXYH_R =(NHPOP**2)*(1-F)*SXYH_R/NHSAMPX; COVXYH_P =(NHPOP**2)*(1-F)*SXYH_P/NHSAMPX; COVXYH_W =(NHPOP**2)*(1-F)*SXYH_W/NHSAMPX; END; IF (S2XH*S2YH_R)^=0 THEN RHOH_R=SXYH_R/(S2XH*S2YH_R)**0.5; IF (S2XH*S2YH_P)^=0 THEN RHOH_P=SXYH_P/(S2XH*S2YH_P)**0.5; IF (S2XH*S2YH_W)^=0 THEN RHOH_W=SXYH_W/(S2XH*S2YH_W)**0.5; ********** 00 * FILTER * 00 **********; 00 IF LINENO^=.; 00 PROC DELETE DATA=YH; 00 PROC DELETE DATA=XH; 00 PROC DELETE DATA=XAICH; 00 ******************* 00 * COLLAPSE STRATA * 00 *******************; 00 PROC SORT DATA=RPWH; BY SYS CLASS AIC LINENO; PROC SUMMARY DATA=RPWH; BY SYS CLASS AIC LINENO; 00 ID DESIGN LNAME PQ; VAR YHATH_R XHATH XAICH VARXH VARYH_R COVXYH_R YHATH_P VARYH_P COVXYH_P YHATH_W VARYH_W COVXYH_W; OUTPUT OUT=FIN SUM=YHAT_R XHAT XAIC VARX VARY_R COVXY_R YHAT_P VARY_P COVXY_P 00 YHAT_W VARY_W COVXY_W ; 00 DATA FIN; SET FIN; 00 IF DESIGN='CR ' THEN DO; 00 IF XHAT ^=0 THEN DO; 00 RATIO_R =YHAT_R/XHAT; 00 RATIO_P =YHAT_P/XHAT; 00 RATIO_W =YHAT_W/XHAT; 00 CVX =VARX**0.5/XHAT; 00 END; 00 _R =XAIC*RATIO_R; 00 _P =XAIC*RATIO_P; 00 _W =XAIC*RATIO_W; 00 IF (YHAT_R*XHAT) ^=0 THEN DO; VAR_R =_R**2*(VARY_R/YHAT_R**2 + VARX/XHAT**2 - 2*COVXY_R/(YHAT_R*XHAT)); IF COVXY_R>=0 THEN CVXY_R=(COVXY_R/(YHAT_R*XHAT))**0.5; 00 END; 00 IF (YHAT_P*XHAT) ^=0 THEN DO; VAR_P =_P**2*(VARY_P/YHAT_P**2 + VARX/XHAT**2 - 2*COVXY_P/(YHAT_P*XHAT)); IF COVXY_P>=0 THEN CVXY_P=(COVXY_P/(YHAT_P*XHAT))**0.5; 00 END; 00 IF (YHAT_W*XHAT) ^=0 THEN DO; VAR_W = _W**2*(VARY_W/YHAT_W**2 + VARX/XHAT**2 - 2*COVXY_W/(YHAT_W*XHAT)); IF COVXY_W>=0 THEN CVXY_W=(COVXY_W/(YHAT_W*XHAT))**0.5; 00 END; 00 ************** 00 * VAR LO-BND * 00 **************; 00 IF VAR_R ^=. THEN VAR_R =MAX(0,VAR_R); 00 IF VAR_P ^=. THEN VAR_P =MAX(0,VAR_P); 00 IF VAR_W ^=. THEN VAR_W =MAX(0,VAR_W); 00 SE_R =VAR_R**0.5; 00 SE_P =VAR_P**0.5; 00 SE_W =VAR_W**0.5; 00 IF _R ^=0 THEN CV_R =SE_R/_R; 00 IF _P ^=0 THEN CV_P =SE_P/_P; 00 IF _W ^=0 THEN CV_W =SE_W/_W; 00 IF YHAT_R ^=0 THEN CVY_R =VARY_R**0.5/YHAT_R; 00 IF YHAT_P ^=0 THEN CVY_P =VARY_P**0.5/YHAT_P; 00 IF YHAT_W ^=0 THEN CVY_W =VARY_W**0.5/YHAT_W; 00 END; 00 ************ * SRS ONLY * ************; ELSE IF DESIGN='SRS' THEN DO; RATIO_R =.; CVXY_R=.; CVXHAT =.; 00 RATIO_P =.; CVXY_P=.; 00 RATIO_W =.; CVXY_W=.; 00 _R =YHAT_R; VAR_R =VARY_R; SE_R =VAR_R**0.5; _P =YHAT_P; VAR_P =VARY_P; SE_P =VAR_P**0.5; _W =YHAT_W; VAR_W =VARY_W; SE_W =VAR_W**0.5; IF _R ^=0 THEN DO; 00 CV_R =SE_R/_R; CVY_R =VARY_R**0.5/_R; END; 00 IF _P ^=0 THEN DO; 00 CV_P =SE_P/_P; CVY_P =VARY_P**0.5/_P; END; 00 IF _R ^=0 THEN DO; 00 CV_W =SE_W/_W; CVY_W =VARY_W**0.5/_W; END; 00 END; ******************* * PFY SUMMARY RPT * *******************; PROC PRINT D LABEL DATA=FIN; BY SYS CLASS AIC; PAGEBY AIC; ID LINENO; VAR LNAME _R CV_R _P CV_P _W CV_W; LABEL LNAME = 'CATEGORY' _R = 'REV' _P = 'VOL' _W = 'LBS' CV_R = 'CV_R' CV_P = 'CV_P' CV_W = 'CV_W' ; FORMAT _R _P _W COMMA14. CV_R CV_P CV_W 7.4; TITLE3 'RCV-200: COMB-RATIO ESTIMATE OF TOTAL AND SAMP-ERROR'; TITLE4 '(STRATIFIED R-SAMPLE DESIGN IF NO AIC CONTROL)'; TITLE6 '*** PANEL SUMMARY ***'; TITLE8 ' '; ********** * OUTPUT * **********; PROC SORT DATA=FIN; BY LINENO SYS; DATA _NULL_; SET FIN; FILE SAMPERRS; PUT @1 PQ 1. @2 LINENO 5.1 @7 SYS $6. @15 _R 14. @30 SE_R 14. @45 _P 14. @60 SE_P 14. @75 _W 14. @90 SE_W 14. ; *; *; *; ******************** * 2-PG SUMMARY RPT * ********************; PROC SORT DATA=FIN; BY LINENO; PROC SUMMARY DATA=FIN; BY LINENO; ID LNAME; VAR _R _P _W VAR_R VAR_P VAR_W; OUTPUT OUT=TPG SUM=; DATA TPG; SET TPG; IF _R^=0 THEN CV_R=(VAR_R**0.5)/_R; IF _P^=0 THEN CV_P=(VAR_P**0.5)/_P; IF _W^=0 THEN CV_W=(VAR_W**0.5)/_W; PROC PRINT LABEL DATA=TPG; BY LINENO; ID LINENO; VAR LNAME _R CV_R _P CV_P _W CV_W; LABEL LNAME = 'CATEGORY' _R = 'REV' _P = 'VOL' _W = 'LBS' CV_R = 'CV_R' CV_P = 'CV_P' CV_W = 'CV_W' ; FORMAT _R _P _W COMMA14. CV_R CV_P CV_W 7.4; TITLE3 'RCV-200T: COMB-RATIO ESTIMATE OF TOTAL AND SAMP-ERROR'; TITLE4 '(STRATIFIED R-SAMPLE DESIGN IF NO AIC CONTROL)'; TITLE6 '*** 2-PAGE SUMMARY ***'; TITLE7 ' '; PROC DELETE DATA=TPG; /*