* Kuvio väestörakenteesta (65+ vs 15-): Tilastokeskuksen ennuste ja toteutuneet * Import data from StatFin, preprocess * ==================================== * StatFin projections until -2070 import delimited "https://pxdata.stat.fi:443/PxWeb/sq/2b729b5b-4c18-472f-a0f1-81f9eec15650", clear local dlab = v1[1] label data "`dlab'" drop in 1 list in 1 rename v1 year * Source varnames are a mess. Use them as var labels instead foreach v of varlist v* { local vlab = `v'[1] label var `v' "`vlab'" } drop in 1 list in 1 destring year v*, replace rename v2 pop rename v3 e_pop_2021 rename v9 e_pop_2007 rename v10 pop_0_14 rename v11 e_pop_0_14_2021 rename v17 e_pop_0_14_2007 rename v18 pop_15_64 rename v19 e_pop_15_64_2021 rename v25 e_pop_15_64_2007 rename v26 pop_65plus rename v27 e_pop_65plus_2021 rename v33 e_pop_65plus_2007 drop v* sort year order year desc * Add 2021-2022 realized * ======================= /* Problem: StatFin projections data not updated with later realizations Hotfix: add 2021-22 realizations from StatFin / Väestörakenne / 11rc -- Väestö iän ja sukupuolen mukaan https://pxdata.stat.fi:443/PxWeb/sq/4be16226-68be-438d-964a-c5f8d70c9e11 */ replace pop = 5548241 if year==2021 replace pop_0_14 = 851794 if year==2021 replace pop_15_64 = 3417411 if year==2021 replace pop_65plus= 1279036 if year==2021 replace pop = 5563970 if year==2022 replace pop_0_14 = 840328 if year==2022 replace pop_15_64 = 3429131 if year==2022 replace pop_65plus= 1294511 if year==2022 * Calculate % - shares foreach v of varlist pop_* { gen s_`v' = 100*`v'/pop } foreach str in "_2007" "_2021" { foreach age in "0_14" "15_64" "65plus" { gen s_pop_`age'`str' = 100*e_pop_`age'`str'/e_pop`str' } } * Make basic scatterplot * ====================== * custom overlay labels gen slab = s_pop_65plus replace slab = . if mod(year,10)!=0 gen slab_2007 = s_pop_65plus_2007 replace slab_2007 = . if mod(year,10)!=0 gen slab_2021 = s_pop_65plus_2021 replace slab_2021 = . if mod(year,10)!=0 & year!=2023 replace slab_2007=. if year==2010 local opts "mlabpos(2) mlab(year)" twoway /// (scatter slab s_pop_0_14, /// `opts' msym(S) mcolor(black%30) mlabcolor(black) yaxis(1 2)) /// (scatter slab_2007 s_pop_0_14_2007, /// `opts' msym(o) mcolor(blue%50) mlabcolor(blue)) /// (scatter slab_2021 s_pop_0_14_2021, /// `opts' msym(o) mcolor(red%50) mlabcolor(red)) /// (scatter s_pop_65plus_2007 s_pop_0_14_2007, msym(oh) mcolor(blue)) /// (scatter s_pop_65plus_2021 s_pop_0_14_2021, msym(oh) mcolor(red)) /// (scatter s_pop_65plus s_pop_0_14, msym(Sh) mcolor(black)) /// , /// subtitle("Suomen väestörakenteen kehitys") /// ytitle("Yli 64-vuotiaat (%)") xtitle("Alle 15-vuotiaat (%)") /// ymticks(15(1)35, axis(1)) ymticks(15(1)35, axis(2)) /// aspect(1) /// legend(pos(3) cols(1) subtitle("") /// order(6 "Toteutunut" 4 "Ennuste 2007" 5 "Ennuste 2021")) /// note("Tilastokeskus: Väestöennuste https://stat.fi/tilasto/vaenn", size(*0.65)) graph export "demo_2021-70.png", width(1600) replace