*************************************** * USING ACS DATA TO MEASURE COHABITATION * Dofile For CFDR Workshop Series Spring 2011 * Created By Ryan Heath Bogle *************************************** * IMPORTANT NOTES *************************************** *Change the use and save statements as needed *These WILL NOT match path names you should be using *CHANGE AS NEEDED *************************************** *************************************** *Preparing Stata to receive PUMS data *************************************** set more off set mem 1000m set maxvar 32767 *************************************** * FORMATTING PUMS ACS2008 *************************************** *************************************** * The Housing Record *************************************** * Dropping non-essential variables *************************************** *************************************** * Housing Record A *************************************** use "C:\psam_husa.dta" keep serialno np partner count sort serialno save "C:\psam_husa_NEW.dta" *************************************** * Housing Record B *************************************** use "C:\psam_husb.dta", clear keep serialno np partner count sort serialno save "C:\psam_husb_NEW.dta" *************************************** * The Person Record *************************************** * Dropping non-essential variables *************************************** *************************************** * Person Record A *************************************** use "C:\psam_pusa.dta", clear keep serialno sporder mar agep rel sex pwgtp* count sort serialno sporder save "C:\psam_pusa_NEW.dta" *************************************** * Person Record B *************************************** use "C:\psam_pusb.dta", clear keep serialno sporder mar agep rel sex pwgtp* count sort serialno sporder save "C:\psam_pusb_NEW.dta" *************************************** * The Merge Procedure *************************************** *************************************** * Step 1: Appending Housing Records A&B * NOTE: Though technically an append, using the merge command is preferable *************************************** use "C:\psam_husa_NEW.dta", clear merge serialno using "C:\psam_husb_NEW.dta" tab _merge drop _merge sort serialno save "C:\psam_husab_NEW.dta" *************************************** * Step 2: Appending Person Records A&B *************************************** use "C:\psam_pusa_NEW.dta", clear merge serialno sporder using "C:\psam_pusb_NEW.dta" tab _merge drop _merge sort serialno sporder save "C:\psam_pusab_NEW.dta" *************************************** * Step 3: Merging Person and Housing Records *************************************** use "C:\psam_pusab_NEW.dta", clear merge serialno using "C:\psam_husab_NEW.dta" tab _merge sort serialno sporder save "C:\psam_PusHus_NEW.dta" *************************************** * Formatting *************************************** * Replacing String w/ Numeric *************************************** destring sex, replace destring rel, replace *************************************** * MEASURING COHABITATION *************************************** *************************************** * Step 1 *************************************** * Identify Sex of Household Head, Cohabiting Partner, & Married Partner * Generate THREE New Variables *************************************** gen r_sex=sex if rel==00 gen p_sex=sex if rel==13 gen m_sex=sex if rel==01 *************************************** * Label Values *************************************** lab def sexLB 1 "1 Male" 2 "2 Female" lab val r_sex sexLB lab val p_sex sexLB lab val m_sex sexLB *************************************** * Label Variables *************************************** lab var r_sex "sex of household head" lab var p_sex "sex of cohabiting partner" lab var m_sex "sex of married partner" *************************************** * Step 2 *************************************** * Generate Indicators of Household Head, Cohabiting, & Married Partner Sex * That Will Appear On ALL Lines of Information *************************************** by serialno: egen r_sex2=max(r_sex) by serialno: egen p_sex2=max(p_sex) by serialno: egen m_sex2=max(m_sex) *************************************** * Label Values *************************************** lab val r_sex2 sexLB lab val p_sex2 sexLB lab val m_sex2 sexLB *************************************** * Label Variables *************************************** lab var r_sex2 "sex of household head ALL" lab var p_sex2 "sex of cohabiting partner ALL" lab var m_sex2 "sex of married partner ALL" *************************************** * Step 3 *************************************** * Generate A Complex Categorical Indicator For ALL Relationship Statuses *************************************** gen relstat_001=. replace relstat_001=1 if r_sex2==1 & p_sex2==. & m_sex2==. replace relstat_001=2 if r_sex2==2 & p_sex2==. & m_sex2==. replace relstat_001=3 if r_sex2==1 & p_sex2==2 replace relstat_001=4 if r_sex2==2 & p_sex2==1 replace relstat_001=5 if r_sex2==1 & p_sex2==1 replace relstat_001=6 if r_sex2==2 & p_sex2==2 replace relstat_001=7 if r_sex2==1 & m_sex2==2 replace relstat_001=8 if r_sex2==2 & m_sex2==1 replace relstat_001=9 if sex==1 & rel!=. & rel!=00 & rel!=01 & rel!=13 & rel!=16 & rel!=17 replace relstat_001=10 if sex==2 & rel!=. & rel!=00 & rel!=01 & rel!=13 & rel!=16 & rel!=17 replace relstat_001=161 if sex==1 & rel==16 replace relstat_001=162 if sex==2 & rel==16 replace relstat_001=171 if sex==1 & rel==17 replace relstat_001=172 if sex==2 & rel==17 *************************************** * Label Values *************************************** lab def relstat_001LB 1 "1 MHH-No Relationship" 2 "2 FHH-No Relationship" 3 "3 MHH-Opposite Sex Cohab" 4 "4 FHH-Opposite Sex Cohab" 5 "5 MHH-Same Sex Cohab" 6 "6 FHH-Same Sex Cohab" 7 "7 MHH-Opposite Sex Mar" 8 "8 FHH-Opposite Sex Mar" 9 "9 nonHH-Male" 10 "10 nonHH-Female" 161 "161 InstGQ-Male" 162 "162 InstGQ-Female" 171 "171 nonInstGQ-Male" 172 "172 nonInstGQ-Female" lab val relstat_001 relstat_001LB *************************************** * Label Variable *************************************** lab var relstat_001 "relationship categories: complex" *************************************** * Step 4 *************************************** * Generate a Simple Categorical Indicator Where... * 0 = No Romantic Relationship * 1 = Heterosexual Married Relationship * 2 = Heterosexual Cohabiting Relationship * 3 = Homosexual Cohabiting Relationship *************************************** gen relstat_002=. replace relstat_002=0 if (relstat_001==1|relstat_001==2|relstat_001==9|relstat_001==10|relstat_001==161|relstat_001==162|relstat_001==171|relstat_001==172) replace relstat_002=1 if (relstat_001==7|relstat_001==8) replace relstat_002=2 if (relstat_001==3|relstat_001==4) replace relstat_002=3 if (relstat_001==5|relstat_001==6) *************************************** * Label Values *************************************** lab def relstat_002LB 0 "0 no coresidential romantic relationship" 1 "1 opposite-sex married" 2 "2 opposite-sex cohabiting" 3 "3 same-sex cohabiting" lab val relstat_002 relstat_002LB *************************************** * Label Variable *************************************** lab var relstat_002 "relationship categories: simple" save "C:\psam_PusHus_NEW.dta", replace *************************************** * APPLICATION OF PERSON WEIGHTS AND REPLICATE WEIGHTS *************************************** *************************************** * Setting the Data for Weights *************************************** svyset [iw=pwgtp], jkrweight(pwgtp1-pwgtp80, multiplier (.05)) vce(jackknife) mse *************************************** * Collapsing Age *************************************** gen agep_002=agep replace agep_002=0 if agep<23 & agep!=. replace agep_002=1 if agep>34 & agep!=. *************************************** * Obtaining Weighted Estimates of Cohabitation by Age * It might be necessary to drop other variables prior to analysis * Run w/ caution, this command can take a very long time to run *************************************** svy: tab agep_002 relstat_002, count cellwidth(20) format(%15.2g)