************************************ ************************************ ***SOCI 600: INTRODUCTION TO SOCIOLOGICAL DATA ANALYSIS ***ANALYSIS OF VARIANCE & CHI SQUARE ************************************ ************************************ ************************************ ***CLEAR MEMORY ************************************ clear all ************************************ ***CREATE SHORTCUTS AND LOG FILE ************************************ ***Shortcut for folders global codes = "H:\course\codes" global data = "H:\course\data" global output = "H:\course\output" ***Start saving results window log using "$codes\Stata06a-b.log", replace text ************************************ ***OPENING COMMANDS ************************************ ***Tell Stata to not pause for "more" messages set more off ***Open 2021 ACS (only Texas) use "$data\ACS2021.dta", clear ***Complex survey design svyset cluster [pweight=perwt], strata(strata) singleunit(scaled) ************************************ ***GENERATE VARIABLES ************************************ ***Sex gen female=. replace female=0 if sex==1 // Male replace female=1 if sex==2 // Female label define female 0 "Male" 1 "Female" label values female female ***Race/ethnicity gen raceth=. replace raceth=1 if race==1 & hispan==0 // White replace raceth=2 if race==2 & hispan==0 // Black replace raceth=3 if hispan>=1 & hispan<=4 // Hispanic replace raceth=4 if (race==4 | race==5 | race==6) & hispan==0 // Asian replace raceth=5 if race==3 & hispan==0 // Native American replace raceth=6 if (race==7 | race==8 | race==9) & hispan==0 // Other label define raceth 1 "White" 2 "African American" 3 "Hispanic" /// 4 "Asian" 5 "Native American" 6 "Other races" label values raceth raceth ***Age egen agegr = cut(age), at(0,16,20,25,35,45,55,65,100) label define agecode 0 "0-15" 16 "16-19" 20 "20-24" 25 "25-34" /// 35 "35-44" 45 "45-54" 55 "55-64" 65 "65-100" label values agegr agegr ***Educational attainment gen educgr=. replace educgr=1 if educ>=0 & educ<=5 // Less than high school replace educgr=2 if educ==6 // High school replace educgr=3 if educ==7 | educ==8 // Some college replace educgr=4 if educ==10 // College replace educgr=5 if educ==11 // 5+ years of college, graduate school label define educgr 1 "Less than high school" 2 "High school" /// 3 "Some college" 4 "College" 5 "Graduate school" label values educgr educgr ***Marital status gen marital=. replace marital=1 if marst==1 | marst==2 // Married replace marital=2 if marst>=3 & marst<=5 // Separated, divorced, widowed replace marital=3 if marst==6 // Never married, single label define marital 1 "Married" 2 "Separated, divorced, widowed" 3 "Never married" label values marital marital ***Migration status gen migrant=. replace migrant=1 if migrate1d==10 | migrate1d==23 // same house or within PUMA replace migrant=2 if migrate1d>=24 & migrate1d<=32 // internal migrant replace migrant=3 if migrate1d==40 // international migrant label define migrant 1 "Non-migrant" 2 "Internal migrant" 3 "International migrant" label values migrant migrant ***Wage and salary income gen income=. replace income=incwage if incwage!=999999 ************************************ ***ANOVA - Income by race/ethnicity ************************************ ***Descriptive table ***"tabstat" command by race/ethnicity does not accept complex survey design tabstat income if income!=0 & income!=. [fweight=perwt], by(raceth) stat(mean sd n) ***"mean" command by race/ethnicity accepts complex survey design (correct estimation of standard deviation) svy, subpop(if income!=0 & income!=.): mean income, over(raceth) estat sd ***"mean" command for overall population accepts complex survey design (correct estimation of standard deviation) svy, subpop(if income!=0 & income!=.): mean income estat sd ***Sample distribution by race/ethnicity and missing cases (no weights) tab raceth if income!=0 & income!=., m ***Population distribution by race/ethnicity (with weight) tab raceth if income!=0 & income!=. [fweight=perwt] ***One-way ANOVA does not accept complex survey design oneway income raceth if income!=0 & income!=. [aweight=perwt] anova income raceth if income!=0 & income!=. [aweight=perwt] ************************************ ***CHI SQUARE - Education by race/ethnicity ************************************ ***It would be incorrect to use fweight, ***because you would get statistical significance ***by indicating to the test that you have ***more observations than what was actually collected ***Weights that preserve sample size (aweight, pweight) ***are not allowed in Stata to estimate chi square ***Thus, estimate chi square using the ***complex survey design command (svy) ***Use column percentages with weight tab educgr raceth [fweight=perwt], col tab educgr raceth [fweight=perwt], col nofreq // column percentage ***Observed frequencies (fo) tab educgr raceth // sample size ***Expected frequencies (fe) tab educgr raceth, exp nofreq ***Chi square option works only without weights tab educgr raceth, chi col tab educgr raceth, chi col nofreq ***Use the chi square estimated with complex survey design svy: tab educgr raceth, col // chi square test ***Use population size from this table tab educgr raceth [fweight=perwt] // population size ***Use missing cases from this table tab educgr raceth, m // missing cases ************************************ ***CLOSING COMMANDS ************************************ ***Save data save "$data\Stata06a-b.dta", replace ***Save log log close