// Open Allbus 1984-2016
use age iscd975 isei* sex using "ZA4586_v1-0-0.dta", clear
// Age
recode age (-32 = .)
label var age "Age"
// Education
recode iscd975 (-32 = .) ///
(1 2 = 0 "Low") ///
(3 4 = 1 "Medium") ///
(5 = 2 "High"), gen(educ)
label var educ "Education"
// ISEI
generate isei = isei88 if inrange(isei88, 16, 90)
replace isei = isei08 if missing(isei) & inrange(isei08, 16, 90)
replace isei = isei68 if missing(isei) & inrange(isei68, 16, 90)
replace isei = isei88a if missing(isei) & inrange(isei88a, 16, 90)
replace isei = isei08a if missing(isei) & inrange(isei08a, 16, 90)
replace isei = isei68a if missing(isei) & inrange(isei68a, 16, 90)
label var isei "ISEI"
// Sex
recode sex (1 = 0 "Male") (2 = 1 "Female"), gen(female)
label var female "Sex"
// Listwise deletion
capture drop touse
mark touse
markout touse age educ sex isei
// Create dummies of categorical variables for descriptives table
foreach x of varlist educ female { // Plug in categorical variables here
qui tab `x', gen(`x'x) // Create dummy variables
foreach var of varlist `x'x* {
local lab `: var label `var''
*di "`lab'" // Display label
*di strpos("`lab'", "==")
local i = strpos("`lab'", "==") + 2
local lab `: di substr("`lab'", `i', .)'
label var `var' "\dumm `lab'" // Add \dumm to label
}
}
// Add this to Latex code to indent dummy variables
// % Indent for tables
// \newcommand*{\dumm}{\hspace*{0.5cm}}%
// Calculate descriptives and save them internally
eststo clear
estpost tabstat isei educx* age femalex* if touse, by(female) ///
statistics(mean sd min max) ///
columns(statistics)
// Format number of cases for table caption
local n: display %9.0gc e(N)
// Create table
esttab using "table1.tex", cells("mean(fmt(2) label(Prop./Mean)) sd(fmt(2) label(\emph{SD}) keep(isei age))") ///
refcat(educx1 "Education:" ///
femalex1 "Sex:", nolabel) ///
coeflabel(isei "Occupational status (ISEI)") ///
unstack ///
order(Total:* Male:* ) ///
nogap eqlabels(, span prefix(\multicolumn{@span}{c}{) suffix(}) erepeat(\cline{@span})) nonumber replace label ///
title("Descriptive statistics, \emph{N}~=~`n' \label{tab1}") ///
stats(N, fmt(%9.0gc) label(\emph{N})) ///
booktabs
drop educx* femalex* // Remove dummy variables created for table
Showing posts with label mark. Show all posts
Showing posts with label mark. Show all posts
Oct 18, 2019
Descriptive statistics table using -esttab-
Sep 10, 2016
Latex tables using -esttab-
// Table 1
eststo clear
bysort male country: eststo: estpost summarize hwhrs phwhrs gap ///
workhours pworkhours ///
genderroles femaleemployment ///
married higherincome phigherincome ///
age preschool schoolage ///
retired pretired, listwise
esttab using test.tex, main(mean) aux(sd) label nodepvar nostar nonote nonumbers ///
b(%9.2f) varwidth(35) compress booktabs ///
title("Descriptive statistics: Means and standard deviations by gender and country") ///
mgroups("Women" "Men", pattern(1 0 0 1 0 0) ///
prefix(\multicolumn{@span}{c}{) suffix(}) ///
span erepeat(\cmidrule(lr){@span})) replace
// Table 2
eststo clear
levelsof country, local(country)
foreach i of local country {
capture drop touse
mark touse
markout touse hwhrs workhours pworkhours phwhrs ///
genderroles femaleemployment ///
i.relativeincome pretired retired ///
age preschool schoolage married
eststo: regress hwhrs workhours pworkhours phwhrs ///
if female == 1 & country == `i' & touse
eststo: regress hwhrs workhours pworkhours phwhrs ///
genderroles femaleemployment ///
i.relativeincome pretired retired ///
age preschool schoolage married ///
if female == 1 & country == `i' & touse
}
esttab using test.tex, se ar2 label varwidth(35) b(%9.2f) compress nodepvars order(_cons) booktabs ///
mtitles("Germany" "Germany" "USA" "USA" "Finland" "Finland") ///
title("Determinants of weekly housework hours of women in West Germany, USA, and Finland. OLS coefficients") ///
append
Labels:
estpost,
esttab,
International Social Survey Program,
mark
Mar 31, 2013
Random graphs (13): Interaction plots using -marginsplot-
estimates use m2 // Open estimates saved via -estimates save-
xtcloglog // Show results
// Set esample() as explained in the help-file to -estimates save-:
mark miss_mod1
markout miss_mod1 fail2 female age1519 age2529 age3034 ///
hatlev1d loggdp hatfield_main
estimates esample: if miss_mod1
// Calculate predicted probabilities:
margins female#hatlev1d, pred(pu0)
// Simple default marginsplot:
marginsplot, xtitle("Gender") ytitle("Predicted probability") ///
caption("{it:Source:} EU-LFS 2009 AHM", span) ///
title("") name(sexXeduc1, replace)
// As a bar graph:
marginsplot, xtitle("") ytitle("Predicted probability") title("") ///
recast(bar) /// // Draw bar graph instead of default
xdimension(female hatlev1d) ///
/* Get both interacting variables onto x-axis */ ///
caption("{it:Source:} EU-LFS 2009 AHM", span) ///
name(sexXeduc2, replace)
// As a bar graph that better separates the different variable combinations:
marginsplot, xtitle("") ytitle("Predicted probability") ///
recast(bar) ///
xdimension(female) ///
bydimension(hatlev1d, ///
elabels(1 "Low education" ///
2 "Medium education" ///
3 "High education")) ///
/* Use -bydimension- to better structure the x-axis */ ///
name(sexXeduc3, replace)
// As a proper-looking graph:
marginsplot, xtitle("") ytitle("Predicted probability") ///
recast(bar) ///
xdimension(female) ///
bydimension(hatlev1d, elabels(1 "Low education" ///
2 "Medium education" ///
3 "High education")) ///
byopts(row(1) /// All plots in one row
noiyaxes /// // Don't display individual y-axes
imargin(zero) /// // No margin between by() dimensions
title("") /// // Suppress title
caption("{it:Note:} Error bars are 95 % CI's" ///
"{it:Source:} EU-LFS 2009 AHM", span)) ///
/* Caption here to suppress displaying it three times */ ///
plotregion(lwidth(none)) ///
/* Removes lines around separate by dimension plots */
subtitle(, pos(6)) /// // Place label of by dimensions below plot
plotopts(fcolor(gs14) lcolor(b)) ///
/* Options of the recast() type can go here as well */ ///
name(sexXeduc4, replace)
Subscribe to:
Posts (Atom)






