clear
input str20 cntry bindirect blbindirect ulbindirect bdirect blbdirect ulbdirect
Austria 0.002 -0.002 0.005 0.008 -0.016 0.032
Germany 0.006 0.000 0.012 0.040 0.017 0.063
Sweden 0.001 -0.005 0.007 0.054 0.031 0.076
Netherlands 0.000 -0.006 0.006 0.039 0.017 0.061
Spain 0.005 0.002 0.009 0.016 -0.001 0.033
Italy 0.000 -0.005 0.005 0.029 0.011 0.047
France 0.001 -0.003 0.006 0.043 0.025 0.061
Denmark 0.001 0.000 0.003 0.015 0.001 0.029
Greece 0.000 -0.003 0.003 0.041 0.026 0.057
Switzerland 0.002 -0.002 0.006 0.003 -0.020 0.026
Belgium 0.000 -0.003 0.004 0.033 0.016 0.050
"Czech Republic" 0.004 -0.001 0.010 0.073 0.031 0.115
Poland -0.004 -0.010 0.002 0.034 -0.003 0.071
end
// Reshape to long format
reshape long b blb ulb, j(fx "indirect" "direct") i(cntry) string
// Encode variables
encode cntry, gen(country)
encode fx, gen(effect)
label define effect 1 "Direct effect" 2 "Indirect effect", modify
// Sort by biggest direct effect size
egen order_ = rank(b) if effect == 1, unique
labmask order_, val(country) decode
bysort country (order_): replace order_ = order_[1] // Copy value to all cases
// xrescale makes sure that x-axis fits both by() plots
twoway (dot b order_, horizontal by(effect, legend(off) note(" ") xrescale)) ///
(rspike blb ulb order_, horizontal by(effect)) ///
, ylabel(1 (1) 13, val) xscale(alt) ///
ytitle(" ") xline(0)
Showing posts with label Survey of Health Aging and Retirement in Europe. Show all posts
Showing posts with label Survey of Health Aging and Retirement in Europe. Show all posts
Apr 13, 2016
Random graphs (72): Dot plots with the by() option
Apr 4, 2016
Random graphs (71): Proportions with confidence intervals
use sharew5_rel1-0-0_it.dta, clear
// Prepare variables
recode it004_ (1 = 1 "Yes") (5 = 0 "No") (-1 -2 . = .), generate(internetuser)
label var internetuser "Internet use in last 7 days"
decode country, gen(cntry)
// Define stuff
tempname foo
postfile `foo' str25 cntry perc perc_ll perc_ul using "C:\Windows\Temp\test.dta", replace
levelsof cntry, local(levels)
// Calculate proportions by country
foreach country of local levels {
capture proportion internetuser if cntry == "`country'"
matrix fcoefs = r(table)
local fperc = fcoefs[1,2] * 100
local fperc_ll = fcoefs[5,2] * 100
local fperc_ul = fcoefs[6,2] * 100
di "`country'" _skip(2) `fperc_ll' _skip(2) `fperc' _skip(2) `fperc_ul'
if "`fperc'" != "" { // Make sure that the loop doesn't break if empty
post `foo' ("`country'") (`fperc') (`fperc_ll') (`fperc_ul')
}
}
postclose `foo'
// Use posted data set
use "C:\Windows\Temp\test.dta", clear
// Sort countries by size
egen order_ = rank(perc), unique
labmask order_, value(cntry)
// Plot
twoway (dot perc order_, horizontal) ///
(rspike perc_ll perc_ul order_, horizontal), ///
ylabel(1/15, val) legend(off) xscale(range(20 80) alt) ///
ytitle("") xtitle("% Internet users (in last 7 days)") ///
xlabel(20(10)80, grid) ///
note(" " "{it:Source:} SHARE wave 5, doi:10.6103/SHARE.w5.100", span)
Mar 30, 2016
Random graphs (69): ICC's with confidence intervals
use sharew1_rel2-6-0_gv_isced.dta, clear
// Reshape data into long format
reshape long iscedy_c, i(mergeid) j(child)
// Fix variable of interest
recode iscedy_c (-7 = .a "not yet coded (temporary)") ///
(-2 = .b "refusal") ///
(-1 = .c "don't know") ///
(95 = .d "still in school") ///
(97 = .e "other") ///
( . = .f "missing") ///
, gen(years)
label var years "Years of education"
// Israel doesn't provide a ISCED-to-years conversion, thus it's dropped here
drop if country == 25
// Fix country variable
decode country, gen(cntry)
// Calculate ICC's per country
tempname foo
postfile `foo' str100 commandline_str str20 cntry icc icclb iccub N N_groups using "C:\Windows\Temp\test.dta", replace
levelsof cntry, local(country)
foreach x of local country {
*di "`x'"
qui mixed years || mergeid: if cntry == "`x'", reml
qui estat icc
matrix groups = e(N_g)
scalar n_g = groups[1,1]
matrix cis = r(ci2)
scalar icclb = cis[1,1]
scalar iccub = cis[1,2]
post `foo' (e(cmdline)) ("`x'") (r(icc2)) (icclb) (iccub) (e(N)) (n_g)
matrix stuff1 = (r(icc2), icclb, iccub, e(N), n_g)
if "`x'" == "Austria" matrix table1 = stuff1
else matrix table1 = (table1\stuff1)
}
postclose `foo'
matrix rownames table1 = `country'
matrix colnames table1 = "ICC" "CI lower" "CI upper" "Children" "Families"
esttab matrix(table1, fmt(2 2 2 0 0))
use "C:\Windows\Temp\test.dta", clear
egen order_ = rank(-icc), unique
labmask order_, value(cntry)
twoway (rcap icc icc order_, horizontal) ///
(rspike icclb iccub order_, horizontal) ///
, ylabel(1/11, val) legend(off) ytitle("") xscale(alt) ///
xtitle("Sibling correlations in educational attainment") ///
note(" " "{it:Source:} SHARE wave 1, doi:10.6103/SHARE.w1.260", span)
erase "C:\Windows\Temp\test.dta"
Mar 29, 2016
Random graphs (68): Bar graph
use sharew1_rel2-6-0_ch.dta, clear
recode ch001_ (0/4 = 0 "Less than five children") ///
(5/17 = 100 "Five children and more") ///
(-1 = .a "Refusal") ///
(-2 = .b "Don't know") ///
, gen(largefamilies)
graph bar largefamilies if country != 25, over(country, sort(largefamilies)) ///
horizontal ytitle("% with five and more children") ///
note(" " "{it:Source:} SHARE wave 1, doi:10.6103/SHARE.w1.260", span) ///
yalternate
Subscribe to:
Posts (Atom)




