*** Felix Weiss & Gerrit Bauer *** Mannheimer Zentrum fuer Europäische Sozialforschung *** 26.11.2007 *** constructing version 4 of ESEC Classes from 3 digit ISCO *** Using ESS dataset here, but these procedures can be applied to any data. *** All variable names and values refer to ESS round 1 *** Based on http://www.iser.essex.ac.uk/esec/guide/docs/Appendix6.sps *** *** (SPSS-Job-File of Harrison/Rose) ***LAST REVISION 27 SEPTEMBER 2006*** Downloaded from www.iser.essex.ac.uk on 26.11.2007*** set mem 200m cd U:\ESEC\Daten\ESS\Syntaxtest // Wechsel in das entsprechende Verzeichnis use ess1e06.dta, clear /* jbspv: Supervisory Function iscoco: Occupation isco_3: 3-digit isco (generated below) emplrel: Employment Relation (2 + 3 = SE) emplno: Number of Employees respondent has */ *Generating 3-digit isco gen isco4=iscoco gen isco8803= int(isco4/10) ta isco8803 replace isco8803=iscoco if iscoco>10000 gen ess=1 **Stage 1 - derive employment status categories*** ***need to know whether employed (1) or self-employed (2). Family workers (3) here treated as employees. Variable name in ESS is emplrel** ***Self-employed are split three ways. First take the continuous variable for how many employees people have (in ESS 'emplno') and collapse into categorical variable as below*** gen empnum=. replace empnum=0 if emplno==0 replace empnum=1 if emplno>=1&emplno<10 replace empnum=2 if emplno>=10&emplno<=6000 replace empnum=9 if emplno>=77777&emplno<=99999 tab empnum, m **now combine basic employment situation (*emplrel*) with supervision variable also to give five statuses** **In ESS this question is called jbspv (yes=1, no=2)** gen empstat=. replace empstat=1 if emplrel==2 & empnum==2 replace empstat=2 if emplrel==2 & empnum==1 replace empstat=3 if emplrel==2 & (empnum==0 | empnum==9) replace empstat=4 if (jbspv==1 & emplrel==1) | (jbspv==1 & emplrel==3) replace empstat=5 if (jbspv>=2 & emplrel==1) | (jbspv>=2 & emplrel==3) lab var empstat "ESeC employment status variable" lab def empstat /// 1 "Self-employed 10+ employees" /// 2 "Self-employed <10 employees" /// 3 " Self-employed no employees" /// 4 "Supervisors" /// 5 "Employees" lab val empstat empstat tab empstat, m **Stage 2 - creation of 'euroesec' (international comparative version of ESeC based on ISCO minor groups)** ***Missing ISCO data (66666 to 99999) copied across, in preparation for household class*** ***blocks of syntax for each employment status variable*** **Each ends with frequency check for errors*** **self-employed 10+ employees. Defaults to 1 unless otherwise in matrix** gen euroesec=isco8803 recode euroesec 344 345=2 011 516=3 621=5 if empstat==1 replace euroesec=1 if euroesec==isco8803 & empstat==1 **Small employers <10. Defaults to 4 unless otherwise in matrix** recode euroesec /// 010 110 111 114 200 210 211 212 213 214 220 221 222 231 235 240 241 242=1 /// 223 230 232 233 234 243 244 245 246 247 310 311 312 314 320 321 322 323 334 342 344 345 348=2 /// 011 516=3 /// 600 610 611 612 613 614 615 621 920 921=5 if empstat==2 replace euroesec=4 if euroesec==isco8803 & empstat==2 **Self-employed with no employees. Defaults to 4 unless otherwise in matrix** recode euroesec /// 010 110 111 114 200 210 211 212 213 214 220 221 222 231 235 240 241 242=1 /// 223 230 232 233 234 243 244 245 246 247 310 311 312 314 320 321 322 323 334 342 344 345 348=2 /// 011 516=3 /// 600 610 611 612 613 614 615 621 920 921=5 if empstat==3 replace euroesec=4 if euroesec==isco8803 & empstat==3 ***'Supervisors'*** recode euroesec /// 010 100 110 111 114 120 121 123 200 210 211 212 213 214 220 221 222 231 235 240 241 242=1 /// 011 122 130 131 223 230 232 233 234 243 244 245 246 247 300 310 311 312 313 314 320 321 322 323 330 331 332 333 334 340 /// 341 342 343 344 345 346 347 348 400 410 411 412 419 420 521=2 /// 621=5 66666=66666 77777=77777 88888=88888 99999=99999 else=6 /// if empstat==4 **Employees** recode euroesec /// 010 100 110 111 114 120 121 123 200 210 211 212 213 214 220 221 222 231 235 240 241 242=1 /// 122 130 131 223 230 232 233 234 243 244 245 246 247 310 311 312 314 320 321 322 323 334 /// 342 344 345 348 521=2 /// 011 300 330 331 332 333 340 341 343 346 347 400 410 411 412 419 420=3 /// 621=5 /// 313 315 730 731=6 /// 413 421 422 500 510 511 513 514 516 520 522 911=7 /// 600 610 611 612 613 614 615 700 710 711 712 713 714 720 721 722 723 724 732 733 734 740 741 742 743 744 /// 825 831 834=8 /// 414 512 800 810 811 812 813 814 815 816 817 820 821 822 823 824 826 827 828 829 830 832 833 /// 900 910 912 913 914 915 916 920 921 930 931 932 933=9 if empstat==5 **Final block to sweep up missing employment statuses. ** **Allocations here on the basis of modal ESS employment status (so-called 'simplified class')** recode euroesec /// 010 100 110 111 114 120 121 123 200 210 211 212 213 214 220 221 222 231 235 240 241 242=1 /// 122 223 230 232 233 234 243 244 245 246 247 310 311 312 314 320 321 322 323 334 342 344 345 348 521=2 /// 011 300 330 331 332 333 340 341 343 346 347 400 410 411 412 419 420=3 /// 130 131 911=4 /// 600 610 611 612 613 621=5 /// 313 315 730 731=6 /// 413 421 422 500 510 511 513 514 516 520 522=7 /// 614 615 700 710 711 712 713 714 720 721 722 723 724 732 733 734 740 741 742 743 744 825 831 834=8 /// 414 512 800 810 811 811 812 813 814 815 816 817 820 821 822 823 824 826 827 828 829 830 832 833 /// 900 910 912 913 914 915 916 920 921 930 931 932 933=9 if empstat==. tab euroesec lab var euroesec "European ESeC" lab def euroesec /// 1 "Large employers, higher mgrs/professionals" /// 2 "Lower mgrs/professionals, higher supervisory/technicians" /// 3 "Intermediate occupations" /// 4 "Small employers and self-employed (non-agriculture)" /// 5 "Small employers and self-employed (agriculture)" /// 6 "Lower supervisors and technicians" /// 7 "Lower sales and service" /// 8 "Lower technical" /// 9 "Routine" /// 66666 "Not applicable" /// 77777 "Refusal" /// 88888 "DK" /// 99999 "No answer" lab value euroesec euroesec tab euroesec, m * If using ESS round 1, I do the following * Final adjustment for incomplete data in Norwegian sample * self-employed have no isco codes, so reallocate classes 1 and 4 to est size replace euroesec=1 if (cntry=="NO" & empstat==1) & (euroesec==77777/99999) replace euroesec=4 if (cntry=="NO" & empstat==2) & (euroesec==77777/99999) replace euroesec=4 if (cntry=="NO" & empstat==3) & (euroesec==77777/99999) tab euroesec, m