* load data use https://stats.idre.ucla.edu/wp-content/uploads/2020/06/exercise, clear * define and apply value labels label define progl 1 "jog" 2 "swim" 3 "read" label define genderl 1 "male" 2 "female" label values prog progl label values gender genderl *** Assessing the 3-way interaction regress loss c.hours##i.gender##i.prog * same as regress loss c.hours i.gender i.prog c.hours#i.gender c.hours#i.prog i.gender#i.prog c.hours#i.gender#i.prog * ombinus test of 3-way interaction contrast gender#prog#c.hours *** Plotting a 3-way interaction * get predicted outcome across levels of gender, prog, and hours from margins margins gender#prog, at(hours=(1 2 3 4)) * all on one graph marginsplot * split the graph by gender marginsplot, by(gender) *** Plotting exercise * put prog on x-axis instead marginsplot, x(prog) by(gender) * put gender on x-axis, and split by prog marginsplot, x(gender) by(prog) * put all 3 graphs on one row marginsplot, x(gender) by(prog) byopts(rows(1)) *** Example simple effects analysis * rerun the graph to focus on hours effects margins gender#prog, at(hours=(1 2 3 4)) marginsplot, by(gender) * simple slopes of hours across programs and genders margins gender#prog, dydx(hours) *** Comparing simple effects/slopes * differences in simple slopes margins gender#prog, dydx(hours) pwcompare(effects) *** Simple effect exercise * rerun graph to focus on gender effects margins gender#prog, at(hours=(1 2 3 4)) marginsplot, x(gender) by(prog) byopts(rows(1)) * simple effects of gender across programs and levels of hours margins prog, dydx(gender) at(hours=(1 2 3 4)) * differences in simple effects margins prog, dydx(gender) at(hours=(1 2 3 4)) pwcompare(effects) *** Use graphs to interpret how a 2-way interaction varies with a moderator * recreate 3-way graph with hours on x-axis margins gender#prog, at(hours=(1 2 3 4)) marginsplot, by(gender) *** Use contrast to test for 2-way interactions across levels of the moderator * test for 2-way interactino of prog and hours for each gender contrast prog#c.hours@gender *** Assessing 2-way interactions exercise * recreate graph with gender on x-axis margins gender#prog, at(hours=(1 2 3 4)) marginsplot, x(gender) by(prog) byopts(rows(1)) * test if gender and hours interact across programs contrast gender#c.hours@prog *** END CODE ****