/* SAS 9.1 for Windows Diese Datei: heb_mz1996_2004.sas (Juli 2011) SAS-Programm zur Ermittlung des Haupteinkommensbeziehers im Mikrozensus 1996-2004. Quelle: Schimpl-Neimanns, Bernhard; Siegel, Tony (2011): Typisierung des Haupteinkommensbeziehers im Mikrozensus 1996-2004. GESIS-Technical Report Nr. 2011/07. Mannheim: GESIS. URL: http://www.gesis.org/fileadmin/upload/forschung/ publikationen/gesis_reihen/gesis_methodenberichte/2011/ TechnicalReport_2017_-07.pdf . Dieses SAS-Programm entspricht weitestgehend der Vorlage von Robert Herter-Eschweiler (Statistisches Bundesamt). Download dieser Datei: http://www.gesis.org/download/fileadmin/missy/klassifikationen/ Haupteinkommensbezieher/heb_mz1996_2004.sas E-Mail: gml[at]gesis.org . ----------------------------------------------------------------- */ OPTIONS COMPRESS = BINARY ; /* Falls keine Formate verwendet werden sollen: OPTIONS NOFMTERR; */ RUN; /* Referenzierung des Verzeichnisses, in dem das SAS-File permanent gespeichert werden soll. Erhebungsjahr (%let jahr) eintragen. Die Variable EF5 "Nr. der Person im Haushalt" hat im MZ 1996 den Namen EF5u1. Falls mit dem MZ 1996 gearbeitet wird, kann der SET-Befehl unten mit (rename=(EF5u1=EF5)); ergaenzt werden. */ libname heb '$HOME/sasuser/temp'; %let jahr = ; data heb.mz&jahr; * set <'Vollstaendiger Dateiname inkl. Verzeichnis des SUF MZ_JAHR'>; /*----------------------------------------------------------------------------- Programmteil I . 1) Anzahl selbststaendiger Landwirte in Vollzeittaetigkeit innerhalb eines Privathaushalts (EF372_a). 2) Anzahl der Personen im Alter von 15 oder mehr Jahren innerhalb eines Privathaushalts, von denen Einkommensangaben vorliegen (EF372_b). 3) Maximale Einkommensklasse innerhalb eines Privathaushalts von Personen im Alter von 15 Jahren oder aelter mit Angaben zum Einkommen (EF372_m). -----------------------------------------------------------------------------*/ ef372a = 0; ef372b = 0; ef372m = 0; /* Gültige Einkommensangaben bis MZ 2000: DM, ab MZ 2001: EURO Änderungen der Klassenobergrenzen bis MZ 1999: [18] 7500 und mehr DM Ab MZ 2000: [24] 35000 oder mehr DM bzw. MZ 2004: [24] 18000 Euro und mehr Kategorienänderungen bleiben im Folgenden unberücksichtigt. */ if (ef30>=15 & ef372>=1 & ef372<=24) then ef372m = ef372; if (ef507=1 & ef372=50 & ef504=1 & (ef127=1 | ef127=2) & ef129>=11 & ef129<=50 & ef141>39) then ef372a = 1; if (ef372>=1 & ef372<=24 & ef30>=15) then ef372b = 1; proc sort; by ef1 ef3 ef4; proc means data=heb.heb&jahr noprint nway; var ef372a ef372b ef372m; class ef1 ef3 ef4; output out = heb.heb&jahr.h1 (compress = yes) SUM = ef372_a ef372_b ef372sm MAX = ef372am ef372bm ef372_m; run; proc sort data=heb.heb&jahr; by ef1 ef3 ef4; run; proc sort data=heb.heb&jahr.h1; by ef1 ef3 ef4; run; /* Ordne Haushaltsdatei der Personendatei zu */ data heb.heb&jahr (compress = yes); merge heb.heb&jahr heb.heb&jahr.h1 (drop= _TYPE_ _FREQ_ ef372sm ef372am ef372bm); by ef1 ef3 ef4; /*--------------------------------------------------------------------------- Programmteil II 4) Anzahl der Personen im Privathaushalt, deren Einkommensklasse der maximalen Einkommensklasse im Privathaushalt entspricht (nEF372_m). 5) Niedrigste Personennummer innerhalb des Privathaushalts der Person, deren Einkommensklasse der maximalen Einkommensklasse im Privathaushalt entspricht (EF5_m). Hinweis: Die Variable EF5 "Nr. der Person im Haushalt" hat auschliesslich im Erhebungsjahr 1996 den Namen EF5u1. ---------------------------------------------------------------------------*/ ef5m = 99; nef372 = 0; if (ef372m=ef372_m) then ef5m = ef5; if (ef372m=ef372_m) then nef372 = 1; run; proc means data=heb.heb&jahr noprint nway; var ef5m nef372; class ef1 ef3 ef4; output out = heb.heb&jahr.h2 (compress = yes) MIN = ef5_m nef372m SUM = ef5s nef372_m; proc sort data=heb.heb&jahr; by ef1 ef3 ef4; run; proc sort data=heb.heb&jahr.h2; by ef1 ef3 ef4; run; /* Ordne Haushaltsdatei der Personensatei zu */ data heb.heb&jahr (compress = yes); merge heb.heb&jahr heb.heb&jahr.h2 (drop= _TYPE_ _FREQ_ nef372m ef5s); by ef1 ef3 ef4; /*--------------------------------------------------------------------------- Programmteil III 6) Zuweisung der Werte zur Typisierung Haupteinkommensbezieher im Haushalt (HEB). ---------------------------------------------------------------------------*/ if (ef506 NE 1) then heb = 0; if (ef506=1 & ef372_a>0 & ef507=1) then heb = 1; if (ef506=1 & ef372_a>0 & ef507>1) then heb = 5; if (ef506=1 & ef372_a=0 & ef372_b>=1 & nef372_m=1 & ef372m=ef372_m) then heb = 2; if (ef506=1 & ef372_a=0 & ef372_b>=1 & nef372_m>1 & ef372m=ef372_m & ef5=ef5_m) then heb = 3; if (ef506=1 & ef372_a=0 & ef372_b>=1 & nef372_m>1 & ef372m=ef372_m & ef5>ef5_m) then heb = 6; if (ef506=1 & ef372_a=0 & ef372_b>=1 & ef372m=15) then heb = 7; if (ef506=1 & ef372_a=0 & ef372_b=0 & ef507=1) then heb = 4; if (ef506=1 & ef372_a=0 & ef372_b=0 & ef507>1) then heb = 9; if (ef506=1 & ef372_a=0 & ef372_b>=1 & (ef372>24 | ef30<15)) then heb = 8; label heb="Haupteinkommensbezieher im Haushalt" ; run ; proc format ; value heb 1 = "Person ist Haushaltsbezugsperson und im Haushalt gibt esmindestens eine(n) selbststaendige(n) Landwirt(in) in Vollzeit" 2 = "Person hat alleine die hoechste Einkommensklasse im Haushalt" 3 = "Person hat mit mindestens einer weiteren Person im Haushalt die hoechste Einkommensklasse und von allen Personen mit der hoechsten Einkommensklasse die niedrigste Personennummer im Haushalt" 4 = "Person ist Haushaltsbezugsperson und im Haushalt gibt es keine Person mit Einkommensangaben bzw. keine(n) selbststaendigen Landwirt(in) in Vollzeit" 5 = "Person ist nicht Haushaltsbezugsperson und im Haushalt gibt es mindestens eine(n) selbststaendige(n) Landwirt(in) in Vollzeit" 6 = "Person hat mit mindestens einer weiteren Person im Haushalt die hoechste Einkommensklasse und von allen Personen mit der hoechsten Einkommensklasse nicht die niedrigste Personennummer im Haushalt" 7 = "Person hat Einkommensangaben, aber nicht die hoechste Einkommensklasse, und ist 15 Jahre oder aelter" 8 = "Person hat keine Einkommensangaben, aber andere Haushaltsmitglieder, oder Person ist juenger als 15 Jahre" 9 = "Person ohne Einkommensangabe, alle anderen Haushaltsmitglieder ebenfalls ohne Angabe des Individualeinkommens und Person nicht Bezugsperson des Haushalts" 0 = "Trifft nicht zu (Gemeinschaftsunterkunft)" ; run; proc freq data=heb.heb&jahr; format heb heb.; table heb; run; /* ========= PROGRAMMENDE ========= */