case.mcempstat() -- Multilevel Socio-Economic Classes employment status case function

Syntax

case.mcempstat(sempl [supvis])

sempl!=0 indicates that a respondent is self-employed
if sempl==0: supvis>0 indicates that a respondent has supervisory status
if sempl!=0: supvis specifies the number of employees

Description

crosswalk case function for use with the Multilevel Socio-Economic Classes translation
tables. The function distinguishes the following cases:

1 = employment status unknown (sempl missing, or supvis
missing, negative, or not specified)
2 = employed, without supervisory status
3 = employed, with supervisory status
4 = self-employed, no employees
5 = self-employed, 1-9 employees
6 = self-employed, 10 or more employees

This uses the same 1-6 case numbering as
case.esec88(), so either function can be used
with the mc. tables. They are not interchangeable, however,
when supvis is missing, negative, or not specified:
case.esec88() still defaults those to supvis=0, while
case.mcempstat() codes them as unknown employment status (case 1);
see below.

Employees with supervisory status are employees who have formal
responsibility for supervising the work of other employees. If the data
does not contain a direct measure of supervisory status, Harrison and Rose
(2006, section 4.7) suggest coding employees as supervisors if they are
supervising at least three people.

Missing data is treated as missing, not silently recoded. Missing or
negative values in supvis are coded as unknown employment status
(case 1), not as supvis=0: the package never assumes that an
unmeasured supervisor is a non-supervisor. If you want that assumption,
make it explicitly by recoding supvis to 0 yourself before calling
this function. If supvis is not specified at all, every observation
is coded as unknown employment status (case 1), because supervisory
status cannot be determined without it.

Unlike ESeC, the Multilevel Socio-Economic Classes schemes have no simplified variant for unknown
employment status: column 1 of every mc. table is ., so
observations coded as case 1 -- whether because sempl is missing or
because supvis is missing, negative, or not specified -- come back
uncoded.

Examples

. crosswalk micro = mc.isco08_to_micro(isco08 case.mcempstat(selfemp nsuperv))

. crosswalk macro = mc.isco88com_to_macro(isco88 case.mcempstat(selfemp nsuperv))

References

Harrison, E., D. Rose. 2006. The European Socio-economic Classification
(ESeC) User Guide. Institute for Social and Economic Research, University
of Essex. Available from
http://www.iser.essex.ac.uk/archives/esec/user-guide.

// parse input
gettoken case 0 : 0
gettoken touse 0 : 0
gettoken sempl 0 : 0
gettoken supvis 0 : 0
if `"`0'"'!="" error 198
unab sempl: `sempl', min(1) max(1)
if `"`supvis'"'!="" {
unab supvis: `supvis', min(1) max(1)
count if `supvis'>=. & `sempl'<. & `touse'
if r(N) noi di as txt "(`supvis': missing values treated as unknown employment status)"
count if `supvis'<0 & `sempl'<. & `touse'
if r(N) noi di as txt "(`supvis': negative values treated as unknown employment status)"
}
else noi di as txt "(supvis not specified; employment status treated as unknown)"
// generate cases; default is 1 (unknown), which is also the outcome when
// sempl is missing or supvis is missing/negative/not specified
replace `case' = 1 if `touse'
if "`supvis'"!="" {
replace `case' = 2 if `sempl'==0 & `touse' & `supvis'>=0 & `supvis'<.
replace `case' = 4 if `sempl'!=0 & `sempl'<. & `touse' & `supvis'>=0 & `supvis'<.
replace `case' = 3 if `supvis'>=1 & `supvis'<. & `case'==2 & `touse'
replace `case' = 5 if `supvis'>=1 & `supvis'<10 & `case'==4 & `touse'
replace `case' = 6 if `supvis'>=10 & `supvis'<. & `case'==4 & `touse'
}