/**************************************** Objective: to replicate the variables for the alternative poverty measures (poor1 - poor13) by using the income components, thresholds, and associated parameters used to create those measures. File used: povpu06.sas7bdat (contains only those variables associated with the alternative poverty measurement, and selected demographic and geographic variables) *****************************************/ options pageno=1; * libname NASpuf 'C:\' ; /* Between the single quotes ' ' type the directory path where you saved the alternative poverty public use file. The code above assumes the file was saved in your C drive, and not in any subdirectory. */ proc format; value agefmt 00-17='Under 18 years' 18-64='18 to 64 years' 65-high='65 and over' other='huh?' ; value racefmt 01='1. White alone' 02='2. Black alone' 03='3. AIAN alone' 04='4. Asian alone' 05='5. NH/PI alone' 06-high ='6. two or more' ; value kindfmt 1='in MC family' 2='in mhh fam' 3='in fhh fam' ; value regfmt 1='Northeast' 2='midwest' 3='south' 4='west' ; value typefmt 1='Primary family' 2,5='Unrel. indiv.' 4='USUB' ; value hispx 1='Hispanic or Latino' 0='Not Hispanic or Latino'; value hinstatx 1='Private Health Coverage' 2='Government Health Coverage' 3='Not Covered'; value adwkx 1='At least one worker in family' 0='No workers in family'; run; data one; set NASpuf.povpu06 ; array testpoor{13} testpoor1-testpoor13 ; /* These thresholds are updates from 1999, using the CPI-U for 2006 (201.6) and the CPI-U for the base year 1999 (166.6) */ testnl1=17036 * (201.6 /166.6) * scaleb * geo2 ; /* Thresholds adjusted for inflation using the CPI and also geographically adjusted (CPI-GEO) */ testnl2=17036 * (201.6 /166.6) * scaleb; /* cpi, NO GEO ADJUSTMENT (NGA) */ /* These thresholds used the most recent available 12 quarters of Consumer Expenditure Survey (CE) data */ testnl3=21818 * scaleb * geo2 ; /* ce,geo */ testnl8=21818 * scaleb ; /*ce, NGA */ /* CPI-adjusted thresholds, with medical out-of-pocket expenditures (MOOP) included in the threshold */ testnl4=(mooplin1 + fcsulin1) * geo2; /* cpi-adjusted thresholds allowing for food, clothing, shelter, utilities, and MOOP (fcsum), geo */ testnl6=(mooplin1 + fcsulin1); /* cpi fcsum nga */ /* Thresholds computed using the CE, including MOOP */ testnl5=(mooplin2 + fcsulin2) * geo2; /* ce fcsum geo */ testnl7=(mooplin2 + fcsulin2) ; /* ce fcsum nga */ /********************* income definitions ******************/ testdef001= ftotval; testdef002 = testdef001 -ffica + (fcapgain-fcaploss) - ffedtax - fsttax /* Note: ffedtax and fsttax are net of all credits. */ + f_mv_fs + (fhoussub*12) + fmvfsl + fmvrsl +fengval ; testdef003 = testdef001 -ffica + (fcapgain-fcaploss) - ffedtax -fsttax + f_mv_fs + fmvfsl + fmvrsl +fengval ; /*no houssub in this definition */ testdef004 = testdef003 - combexpc + fmrcap - newmoop; /*exp1 Betson */ testdef005 = testdef003 - combexpc + fmrcap; /*exp3 moopitt */ testdef006 = testdef003 - combexpc + fmrcap - newmoop + mooplin1; /*exp4 cmb cpi nl */ testdef007 = testdef003 - combexpc + fmrcapce - newmoop; /*exp1 betson ce */ testdef008 = testdef003 - combexpc + fmrcapce; /*exp3 moopitt ce */ testdef009 = testdef003 - combexpc + fmrcapce - newmoop + mooplin2 ; /*exp4 cmb ce nl */ /**** compute poverty status ***********/ do i=1 to 13; testpoor(i)=0; end; if ftotval/fpovcut lt 1 then testpoor1=1; /* official measure, computed using income and threshold variables on the CPS ASEC public use file */ if testdef004 lt testnl1 then testpoor2=1; /* msi - cpi */ if testdef004 lt testnl2 then testpoor3=1 ; /* msi - cpi-nga */ if testdef007 lt testnl3 then testpoor4=1; /* msi - ce */ if testdef007 lt testnl8 then testpoor11=1; /* msi-ce-nga */ if testdef005 lt testnl4 then testpoor5=1; /* mit - cpi */ if testdef005 lt testnl6 then testpoor6=1; /* mit - cpi-nga */ if testdef008 lt testnl5 then testpoor7=1; /* mit - ce */ if testdef008 lt testnl7 then testpoor12=1; /* mit-ce-nga */ if testdef006 lt testnl4 then testpoor8=1; /* cmb - cpi*/ if testdef006 lt testnl6 then testpoor9=1; /* cmb - cpi-nga */ if testdef009 lt testnl5 then testpoor10=1 ; /* cmb-ce */ if testdef009 lt testnl7 then testpoor13=1; /* cmb-ce-nga */ label testpoor1='test of variable poor1' testpoor2='test of variable poor2' testpoor3='test of variable poor3' testpoor4='test of variable poor4' testpoor5='test of variable poor5' testpoor6='test of variable poor6' testpoor7='test of variable poor7' testpoor8='test of variable poor8' testpoor9='test of variable poor9' testpoor10='test of variable poor10' testpoor11='test of variable poor11' testpoor12='test of variable poor12' testpoor13='test of variable poor13'; run ; title1 'Poverty on Research File - povpu06.sas7bdat'; title2; title3; proc contents data=NASpuf.povpu06 ; run; title2 'Using ASEC 2007 for estimates of calendar year 2006' ; title3 'Unweighted' ; /********** This first set of tabulations compares the alternative poverty recodes on the file to a calculated poverty recode using income and thresholds available ***********/ proc freq data=one ; tables poor1*testpoor1 poor2*testpoor2 poor3*testpoor3 poor4*testpoor4 poor5*testpoor5 poor6*testpoor6 poor7*testpoor7 poor8*testpoor8 poor9*testpoor9 poor10*testpoor10 poor11*testpoor11 poor12*testpoor12 poor13*testpoor13 ; run; title3 'Weighted - numbers in thousands' ; /********** This second set of tabulations computes weighted estimate by NAS-based alternative definition.***********/ proc freq data=one ; tables poor1-poor13; *tables poor1-poor13*age hisp*poor1-poor13*race poor1-poor13*hinstat poor1-poor13*race poor1-poor13*hisp poor1-poor10*adwk type*poor1-poor13*kind poor1-poor13*gereg ; weight pwgt000 ; format hinstat hinstatx. hisp hispx. gereg regfmt. race racefmt. age agefmt. kind kindfmt. type typefmt.; run ; proc means data=one N mean min max ; var ftotval testdef004-testdef009 testnl1-testnl8 f_mv_fs fhoussub; weight pwgt000 ; run; proc means data=one N mean min max ; var ffica fcapgain fcaploss ffedtax fsttax fmvfsl fmvrsl fengval combexpc fmrcapce newmoop; weight pwgt000 ; run; title3 'first twenty-five observations' ; proc print data=one (obs=25) ; var peridnum h_seq ffpos pppos age ftotval fpovcut testpoor1 poor1 testdef004 testnl1 testpoor2 poor2 ; run ;