Here we post the Stata code and results for the talk “What’s behind Oregon’s rising rural child poverty? Changing economies and families.” delivered at the 2017 Oregon Parenting Education Collaborative Conference.
Analysis for the OPEC 2017 Conference
David Rothwell
October 19; Bend OR
Abstract. The rural child poverty rate in Oregon rose from 19% (2000) to 27% (2014). Changes in the economy, family structure, and social policy contribute to child poverty. In comparison to urban places, rural family structures have changed more rapidly (Lichter & Schafft, 2016). Further, rural Oregon communities have transformed away from extractive economies (e.g. timber). These social and economic changes have a strong impact on family relations. We use repeated cross-sectional data from the U.S. Census and American community survey 1980-2015 (n=533,596) to describe and explain how the changing economy and family have contributed to the rise in Oregon’s rural child poverty rate.
Description of the sample
Data is from the ACS at the IPUMS USA
Data notes
Work family codes WFF refers to a method by Waldfogel (2009) which groups children into households by the amount of parents present in the home and the number of parents employed. The five categories include: Two parents both working, One parent working, Two parents one working, One parent not working, Two parents not working.
The WFF variable has 7.85% missing data. The number of missing increases over time, from a low in 1980 of 5.98% to a high in 2015 of 11.19%. This occurs because children are living in households headed by people that are not parents, such as grandparents, aunts, uncles, and other adults.
Rural identification We use the metro variable and assume that only those identifiable nonmetro areas are rural. For rural area 1990, we use the metaread variable to assign respondents to rural (non-metro status).
Poverty across all years
. quietly svyset [pweight=perwt]
. tabout povstat wff yr [aw=perwt] using sens1.txt, c(col) f(3) c lab(%) ///
ptotal(none) svy oneway replace
Survey results being calculated
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
. .................
Table output written to: sens1.txt
%
povstat
0 0.864
1 0.136
waldfogel five family structure: numparents and work
two parents both work 0.415
single parent who works 0.146
two parents, 1 works 0.320
single parent not work 0.072
two parent neither works 0.047
RECODE of year (Census year)
1980 0.131
1990 0.141
2000 0.170
2005 0.177
2010 0.187
2015 0.195
Child poverty across all years
. tabout povstat if age<18 using sens2.txt, ///
c(col) f(3) clab(%) ptotal(none) svy replace
Survey results being calculated
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
. .....
Table output written to: sens2.txt
povstat %
0 0.824
1 0.176
Research question 1: What is the child poverty rate in Oregon over time?
. tabout yr if age<18 using sens3.txt, ///
c(mean povstat) f(3) clab(%) ptotal(none) svy sum replace
Survey results being calculated
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
. .........
Table output written to: sens3.txt
RECODE of year (Census year) %
1980 0.127
1990 0.159
2000 0.152
2005 0.197
2010 0.191
2015 0.223
Figure 1: Child poverty rate in Oregon over time
. use ACS1980_2015_s2, clear
. tabstat povstat [w=perwt] if age<18, by(yr) save
(analytic weights assumed)
Summary for variables: povstat
by categories of: yr (RECODE of year (Census year))
yr | mean
-------+----------
1980 | .1272064
1990 | .1590949
2000 | .1518539
2005 | .196506
2010 | .1910055
2015 | .2226117
-------+----------
Total | .1764346
------------------
. tabstatmat povmat
povmat[7,1]
povstat
1980:mean .12720643
1990:mean .15909493
2000:mean .15185385
2005:mean .19650604
2010:mean .19100546
2015:mean .22261172
Total:mean .17643462
. gen orpov = .
(863,654 missing values generated)
. replace orpov = povmat[6,1] if year==2015
(196,487 real changes made)
. replace orpov = povmat[5,1] if year==2010
(187,051 real changes made)
. replace orpov = povmat[4,1] if year==2005
(35,485 real changes made)
. replace orpov = povmat[3,1] if year==2000
(171,666 real changes made)
. replace orpov = povmat[2,1] if year==1990
(140,984 real changes made)
. replace orpov = povmat[1,1] if year==1980
(131,981 real changes made)
. collapse (mean) povstat [w=perwt] if age<18, by(year rrmetro or pov)
(analytic weights assumed)
. twoway (line orpov year, lpattern(dash_dot)), title("Child Pove rty in Oregon") ///
note("Source: Census ACS from IPUMS.org") ytitle("Poverty rate") ///
legend( order(1 "rural" 2 "urban" 3 "Oregon") rows(1)) xlabel(1980(5)2015) ///
ylabel(.1(.05).3)
. graph save fig1opec, replace
(file fig1opec.gph saved)
. graph export fig1opec.png, replace
(file fig1opec.png written in PNG format)
Research question 2: What is the child poverty rate in rural Oregon over time?
. twoway (line povstat year if rrmetro==1) (line povstat year if rrmetro==0) ///
(line orpov year, lpattern(dash_dot)), title("Child Poverty in Oregon") ///
note("Source: Census ACS from IPUMS.org") ytitle("Poverty rate") ///
legend( order(1 "rural" 2 "metro" 3 "Oregon") rows(1)) xlabel(1980(5)2015)
. graph save fig2opec, replace
(file fig2opec.gph saved)
. graph export fig2opec.png, replace
(file fig2opec.png written in PNG format)
Research question 3: What is the distribution of child poverty in rural Oregon
over time?
. use ACS1980_2015_s2, clear
. bysort rrmetro: tabstat povstat [w=perwt] if age<18, by(yr) ------------------------------------------------------------------------------------------ -> rrmetro = 0 (analytic weights assumed) Summary for variables: povstat by categories of: yr (RECODE of year (Census year)) yr | mean -------+---------- 1980 | .1187548 1990 | .1421516 2000 | .1405495 2005 | .185134 2010 | .1795117 2015 | .2122366 -------+---------- Total | .1662067 ------------------ ------------------------------------------------------------------------------------------ -> rrmetro = 1 (analytic weights assumed) Summary for variables: povstat by categories of: yr (RECODE of year (Census year)) yr | mean -------+---------- 1980 | .1415216 1990 | .1886461 2000 | .1831441 2005 | .2287697 2010 | .2263143 2015 | .2563507 -------+---------- Total | .1961558 ------------------ ------------------------------------------------------------------------------------------ -> rrmetro = 8 (analytic weights assumed) Summary for variables: povstat by categories of: yr (RECODE of year (Census year)) yr | mean -------+---------- 1980 | .1350975 2000 | .165318 2005 | .2129021 2010 | .2013138 2015 | .2404916 -------+---------- Total | .2046406 ------------------
. bysort year: fre povstatc [w=perwt] if age<18 & rrmetro==1
(frequency weights assumed)
------------------------------------------------------------------------------------------
-> year = 1980
povstatc
--------------------------------------------------------------------------
| Freq. Percent Valid Cum.
-----------------------------+--------------------------------------------
Valid 1 deep poor 1/50 | 13280 5.30 5.35 5.35
2 poor 50/99 | 21320 8.51 8.59 13.94
3 low-income 100/199 | 58660 23.42 23.64 37.58
4 middle inc 200/399 | 115260 46.01 46.45 84.03
5 upper inc 400/max | 39640 15.82 15.97 100.00
Total | 248160 99.07 100.00
Missing . | 2340 0.93
Total | 250500 100.00
--------------------------------------------------------------------------
------------------------------------------------------------------------------------------
-> year = 1990
povstatc
--------------------------------------------------------------------------
| Freq. Percent Valid Cum.
-----------------------------+--------------------------------------------
Valid 1 deep poor 1/50 | 20613 7.86 7.95 7.95
2 poor 50/99 | 27478 10.48 10.60 18.54
3 low-income 100/199 | 67146 25.60 25.89 44.43
4 middle inc 200/399 | 105426 40.19 40.65 85.08
5 upper inc 400/max | 38685 14.75 14.92 100.00
Total | 259348 98.88 100.00
Missing . | 2940 1.12
Total | 262288 100.00
--------------------------------------------------------------------------
------------------------------------------------------------------------------------------
-> year = 2000
povstatc
--------------------------------------------------------------------------
| Freq. Percent Valid Cum.
-----------------------------+--------------------------------------------
Valid 1 deep poor 1/50 | 14236 7.97 8.09 8.09
2 poor 50/99 | 17657 9.89 10.03 18.12
3 low-income 100/199 | 49714 27.83 28.25 46.37
4 middle inc 200/399 | 65432 36.63 37.18 83.55
5 upper inc 400/max | 28959 16.21 16.45 100.00
Total | 175998 98.53 100.00
Missing . | 2625 1.47
Total | 178623 100.00
--------------------------------------------------------------------------
------------------------------------------------------------------------------------------
-> year = 2005
povstatc
--------------------------------------------------------------------------
| Freq. Percent Valid Cum.
-----------------------------+--------------------------------------------
Valid 1 deep poor 1/50 | 15107 8.74 8.88 8.88
2 poor 50/99 | 21805 12.62 12.81 21.69
3 low-income 100/199 | 52978 30.65 31.13 52.82
4 middle inc 200/399 | 56437 32.66 33.16 85.98
5 upper inc 400/max | 23866 13.81 14.02 100.00
Total | 170193 98.48 100.00
Missing . | 2631 1.52
Total | 172824 100.00
--------------------------------------------------------------------------
------------------------------------------------------------------------------------------
-> year = 2010
povstatc
--------------------------------------------------------------------------
| Freq. Percent Valid Cum.
-----------------------------+--------------------------------------------
Valid 1 deep poor 1/50 | 19236 10.89 11.00 11.00
2 poor 50/99 | 19760 11.19 11.30 22.30
3 low-income 100/199 | 47917 27.13 27.40 49.70
4 middle inc 200/399 | 58547 33.14 33.48 83.19
5 upper inc 400/max | 29403 16.65 16.81 100.00
Total | 174863 98.99 100.00
Missing . | 1781 1.01
Total | 176644 100.00
--------------------------------------------------------------------------
------------------------------------------------------------------------------------------
-> year = 2015
povstatc
--------------------------------------------------------------------------
| Freq. Percent Valid Cum.
-----------------------------+--------------------------------------------
Valid 1 deep poor 1/50 | 13738 11.71 11.86 11.86
2 poor 50/99 | 15853 13.51 13.69 25.55
3 low-income 100/199 | 32936 28.07 28.44 53.99
4 middle inc 200/399 | 39238 33.44 33.88 87.87
5 upper inc 400/max | 14049 11.97 12.13 100.00
Total | 115814 98.70 100.00
Missing . | 1527 1.30
Total | 117341 100.00
--------------------------------------------------------------------------
. catplot povstatc year [w=perwt] if age<18 & rrmetro==1, percen t(year) asyvars ///
title("Distribution of rural child poverty in Oregon over time") stack
(frequency weights assumed)
. graph save fig3opec, replace
(file fig3opec.gph saved)
. graph export fig3opec.png, replace
(file fig3opec.png written in PNG format)
Changes in income distribution
. tabstat ftotinc_adj [aw=hhwt], by(year) stat(p1 p5 p10 p25 p50 p75 p90 p95 p99) ///
save
Summary for variables: ftotinc_adj
by categories of: year (Census year)
year | p1 p5 p10 p25 p50 p75 p90 p95 p99
-------+----------------------------------------------------------------------------------
--------
1980 | 0 8864.75 14705.75 30208 55769.75 82865.5 115802.3 145346.5 221250
1990 | 0 8601 13908 29448.36 54623.67 84363 122269.6 153720 274554.9
2000 | 0 8418 15180 32430 59064 96434.4 144210 191820 416346
2005 | 0 6832 12322 28060 54900 92720 140304.9 183000 406382
2010 | 0 6912 13073.4 28395.36 55721.52 94620.96 143142.1 188089.6 360050.4
2015 | 0 6112 12000 26000 53161 92186 142862 193222 380437
-------+----------------------------------------------------------------------------------
--------
Total | 0 7564 13289.75 29028 55401 90822.9 136201.5 178282.2 361428
------------------------------------------------------------------------------------------
--------
. matrix b2015 = r(Stat6)
. matrix b1980 = r(Stat1)
. matrix dtime = b2015-b1980
. svmat dtime, names(oregonincd)
. tabstat ftotinc_adj [aw=hhwt] if rrmetro==1, by(year) stat(p1 p 5 p10 p25 p50 p75 ///
p90 p95 p99) save
Summary for variables: ftotinc_adj
by categories of: year (Census year)
year | p1 p5 p10 p25 p50 p75 p90 p95 p99
-------+----------------------------------------------------------------------------------
--------
1980 | 0 8540.25 14174.75 28600.25 51669.25 76744.25 105964 132764.8 221250
1990 | 0 8097.75 12810 26535 49100.73 76237.8 108579.4 135420 227018.8
2000 | 0 8280 13800 27876 50094 81420 118680 154560 333960
2005 | 244 8296 13176 27267 48800 76494 111020 143960 274500
2010 | 0 7041.6 12493.44 25920 49062.24 82939.68 121076.6 155364.5 321579.7
2015 | 0 6297 11013 23978 45753 77052 109603 138435 285900
-------+----------------------------------------------------------------------------------
--------
Total | 0 7947.69 12965.25 26800 49410 78246 111966.8 142912.8 259860
------------------------------------------------------------------------------------------
--------
. matrix b2015nm = r(Stat6)
. matrix b1980nm = r(Stat1)
. matrix dtimenm = b2015nm-b1980nm
. svmat dtimenm, names(oregonincdnm)
. tabstat ftotinc_adj [aw=hhwt] if rrmetro==0, by(year) stat(p1 p 5 p10 p25 p50 p75 ///
p90 p95 p99) save
Summary for variables: ftotinc_adj
by categories of: year (Census year)
year | p1 p5 p10 p25 p50 p75 p90 p95 p99
-------+----------------------------------------------------------------------------------
--------
1980 | 191.75 8894.25 14764.75 31476.5 57923.25 86405.5 120905.8 150479.5 221250
1990 | 0 8945.04 14735.16 31659 57279 89121 129198 162870 311100
2000 | 0 8832 16284 34486.2 62100 101154 153180 205868.4 424626
2005 | 0 6575.8 12322 29280 58743 98942 149816 198860 421144
2010 | 0 7009.2 13235.4 29530.44 58320 99537.12 152039.2 200333.5 370272.6
2015 | 0 6410 12285 27190 56500 98200 152630 206000 393480
-------+----------------------------------------------------------------------------------
--------
Total | 0 7686 13725 30297.24 58560 96049.8 144914 191296 389848
------------------------------------------------------------------------------------------
--------
. matrix b2015m = r(Stat6)
. matrix b1980m = r(Stat1)
. matrix dtimem = b2015m-b1980m
. svmat dtimem, names(oregonincdm)
. matrix yearw = (01\05\10\25\50\75\90\95\99)
. svmat yearw
. tostring yearw, generate(percentilec)
percentilec generated as str2
. gen pcent = ""
(863,654 missing values generated)
. replace pcent = percentilec if yearw>5
variable pcent was str1 now str2
(863,652 real changes made)
. replace pcent = "01" if yearw == 1
(1 real change made)
. replace pcent = "05" if yearw == 5
(1 real change made)
. graph bar oregonincd1 if oregonincd1!=., over(pcent)
. graph bar oregonincdnm1 if oregonincdnm1!=., over(pcent) ylabe l(0(50000)200000) ///
subtitle("nonmetro") ytitle("Change in dollars")
. graph bar oregonincdm1 if oregonincdm1!=., over(pcent) ylabel( 0(50000)200000) ///
subtitle("metro") ytitle("Change in dollars")
. graph combine fig4bopec.gph fig4copec.gph, ///
title("Change in real hh income 1980-2015 percentiles")
. graph save fig4opec, replace
(file fig4opec.gph saved)
. graph export fig4opec.png, replace
(file fig4opec.png written in PNG format)
Focus on rural Oregon
. quietly svyset [pweight=perwt]
. keep if rrmetro ==1 //keep only rural
(634,023 observations deleted)
What is family–work structure of all children in 2015?
Using the Waldfogel (2009) five category
. tabout wff yr using sens4.txt, ///
c(col) f(3) clab(%) ptotal(none) svy replace
Survey results being calculated
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
. ......
Table output written to: sens4.txt
RECODE of year (Census year)
waldfogel five family structure: numparents and work 1980 1990 2000 2005 2010 2015 Total
% % % % % % %
two parents both work 0.333 0.444 0.446 0.423 0.427 0.385 0.409
single parent who works 0.093 0.111 0.136 0.153 0.152 0.157 0.129
two parents, 1 works 0.440 0.328 0.294 0.288 0.273 0.296 0.328
single parent not work 0.061 0.065 0.066 0.070 0.088 0.101 0.072
two parent neither works 0.073 0.052 0.059 0.066 0.060 0.061 0.062
What is rural family–work structure of children in 2015?
Using the Waldfogel (2009) five category
. catplot wff [aw=perwt] if age<18 & year==1980, percent asyvars vertical ///
ytitle("Percent") ///
title("Family-work structure demographics 1980") ///
subtitle("") ///
note("Source: IPUMS ACS") ///
ysize(3) blabel(bar, format(%9.1f)) bargap(5)
. graph save fig5aopec, replace
(file fig5aopec.gph saved)
. catplot wff [aw=perwt] if age<18 & year==2015, percent asyvar s vertical ///
ytitle("Percent") ///
title("Family-work structure demographics 2015") ///
subtitle("") ///
note("Source: IPUMS ACS") ///
ysize(3) blabel(bar, format(%9.1f)) bargap(5)
. graph save fig5bopec, replace
(file fig5bopec.gph saved)
. gr combine fig5aopec.gph fig5bopec.gph
. graph export fig5opec.png, replace
(file fig5opec.png written in PNG format)
What is rural family–work structure of children across poverty in 1980?
Using the Waldfogel (2009) five category
. catplot povstatcate wff [aw=perwt] if age<18 & year==1980 , pe rcent(povstatcate) ///
asyvars vertical ///
ytitle("Percent") ylabel(0(20)60) ///
title("Family-work structure across poverty levels 1980") ///
subtitle("") ///
note("Source: IPUMS ACS") ///
ysize(3) blabel(bar, format(%9.1f))
. graph save fig6aopec, replace
(file fig6aopec.gph saved)
What is rural family–work structure of children across poverty in 2015?
Using the Waldfogel (2009) five category
. catplot povstatcate wff [aw=perwt] if age<18 & year==2015, pe rcent(povstatcate) ///
asyvars vertical ///
ytitle("Percent") ///
title("Family-work structure across poverty levels 2015") ///
subtitle("") ///
note("Source: IPUMS ACS") ///
ysize(3) blabel(bar, format(%9.1f))
. graph save fig6bopec, replace
(file fig6bopec.gph saved)
. graph combine fig6aopec.gph fig6bopec.gph
. graph export fig6opec.png, replace
(file fig6opec.png written in PNG format)
What is rural poverty rates across family–work structure over time?
. tabout wff year if age<18 using sens6.txt, ///
c(mean povstat) f(3) clab(%) ptotal(none) svy sum replace
Survey results being calculated
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
. ...........
Table output written to: sens6.txt
Census year
waldfogel five family structure: numparents and work 1980 1990 2000 2005 2010 2015 Total
% % % % % % %
two parents both work 0.043 0.061 0.072 0.099 0.075 0.107 0.072
single parent who works 0.264 0.315 0.275 0.374 0.342 0.313 0.316
two parents, 1 works 0.089 0.178 0.191 0.244 0.222 0.269 0.176
single parent not work 0.644 0.770 0.656 0.600 0.711 0.775 0.694
two parent neither works 0.269 0.516 0.398 0.523 0.699 0.591 0.457
Figure 7: Child poverty rates by WFF for 1980 and 2015.
. graph bar (mean) povstat [aw=perwt] if age<18 & yr!=1 &yr!=2 & yr!=3 & yr!=4, over(wff, label(angle(forty_five) labsize(small))) by(yr)
Prelim analysis of hh income over time
The End
. quietly log close