* USP Prof. Lorena G Barberia * 2019 * Non Linear Interaction Lab version 15 clear set more off use "C:\Users\8029646\Downloads\Cox Data.dta" * Some preliminary descriptive statistics sum enps, detail sum eneth, detail sum lnml, detail * Figures presented in the lab introduction materials twoway(scatter enps lnml, mlabel( ctry )), xtitle("Log of Median District Magnitude") twoway(scatter enps eneth, mlabel( ctry )), xtitle("Social Heterogeneity") * Part 1 - Part 1 – X and Z are dummy variables ** Creating dummy variables: * Don't forget to summarize our variables before and after creating dummy variables. * Write your commands here in the do file. * Multipartism: gen multiparty=. replace multiparty=1 if enps>2.99 replace multiparty=0 if enps<3 * Electoral district size: gen multimember=. replace multimember=1 if ml>1 replace multimember=0 if ml==1 tab multiparty multimember * Social heterogeneity: gen heterogeneity=. replace heterogeneity=1 if eneth>1.2775 replace heterogeneity=0 if eneth<1.2775 *a) *Creating the interective term gen multimember_heterogeneity = multimember*heterogeneity *Interactive regression using a interactive variable regress multiparty multimember heterogeneity multimember_heterogeneity * After running your regression, you may store your results estimates store m1, title(Interactive Model) star(+ 0.10 * 0.05) * This command is used to print regression tables in paper findit esttab esttab m1, ci * Interactive regression using margins command regress multiparty i.multimember##i.heterogeneity esttab, varwidth(25) label nobaselevels interaction(" X ") star(+ 0.10 * 0.05) title(Interactive Model) *b)Calculating Predicted Values regress multiparty i.multimember##i.heterogeneity *(1)Heterogeneous = 1 e Single-Member Districts = 0 margins, at( heterogeneity = (1) multimember = (0) ) *(2)Heterogeneous = 1 e Multi-Member Districts = 1 margins, at( heterogeneity = (1) multimember = (1) ) *(3)Homogenous = 0 e Single-Member Districts = 0 margins, at( heterogeneity = (0) multimember = (0) ) *(4)Homogenous = 0 e Multi-Member Districts = 1 margins, at( heterogeneity = (0) multimember = (1) ) *Margins plot regress multiparty i.multimember##i.heterogeneity margins, at(heterogeneity=(0 1) multimember= (0 1)) marginsplot regress multiparty i.multimember##i.heterogeneity margins, at(multimember =(0 1) heterogeneity=(0 1)) marginsplot * Part 2 - X is a dichotomous variable and Z is a categorical variable * a - Describe the continuous variables for each of the groups formed by social heterogeneity variablle sum ml enps if heterogeneity == 1, detail sum ml enps if heterogeneity == 0, detail * The following commands will draw kernel density of the variables. * When we use "||" it is possible to combine the graphs in one figure. twoway kdensity enps || kdensity enps if heterogeneity == 1 || kdensity enps if heterogeneity == 0, legend(order(1 "Effective Legislative Parties" 2 "Effective Legislative Parties + Social Heterogeneity" 3 "Effective Legislative Parties + Social Homogeneity") size(small)) * Here we are using twoway kdensity lnml || kdensity lnml if heterogeneity == 1 || kdensity lnml if heterogeneity == 0, legend(order(1 "Electoral district size" 2 "Electoral district size + Social Heterogeneity" 3 "Electoral district size + Social Homogeneity") size(small) * b - Scatter plot graph * Below, we have three commands, each of them represents differently the relationship between the number of effective parties and * electoral district size. You are already familiar with "Scatter" command. Now, look for "lfit" and "lowess" to understand what they are * describing scatter enps lnml || lfit enps lnml || lowess enps lnml, legend(order(1 "Effective Legislative Parties" 2 "Fitted values" 3 "LOWESS")) * c - Scatter plot graphs for each group * For social heterogeneity * Figure. Effective Number of Parties with Social Heterogeneity and District Magnitude. scatter enps lnml if heterogeneity == 1 || lfit enps lnml if heterogeneity == 1 || lowess enps lnml if heterogeneity == 1, legend(order(1 "Effective Legislative Parties" 2 "Fitted values" 3 "LOWESS")) * For social homogeneity * Figure. Effective Number of Parties with Social Homogeneity and District Magnitude. scatter enps lnml if heterogeneity == 0 || lfit enps lnml if heterogeneity == 0 || lowess enps lnml if heterogeneity == 0, legend(order(1 "Effective Legislative Parties" 2 "Fitted values" 3 "LOWESS")) * d - Regression regress enps c.lnml##i.heterogeneity * e - Predicted effects regress enps c.lnml##i.heterogeneity margins, at(lnml = (1(1)5)heterogeneity = (0 1)) marginsplot * Part 3 - X is a continuous variable and Z is a categorical variable * a - Describing social heterogeneity variable sum eneth, detail kdensity eneth * b - Describing the variables according to percentile groups * Until the first percentile sum lnml enps if eneth <= 1.105 * Between the second and the third sum lnml enps if eneth <= 1.105 | eneth >= 1.7188 * Starting from the third percentile sum lnml enps if eneth >= 1.7188 * Until the first percentile scatter enps lnml if eneth <= 1.105 || lfit enps lnml if eneth <= 1.105|| lowess enps lnml if eneth <= 1.105 * Between the second and the third scatter enps lnml if eneth <= 1.105 | eneth >= 1.7188 || lfit enps lnml if eneth <= 1.105 | eneth >= 1.7188|| lowess enps lnml if eneth <= 1.105 | eneth >= 1.7188 * Starting from the third percentile scatter enps lnml if eneth >= 1.7188 || lfit enps lnml if eneth >= 1.7188 || lowess enps lnml if eneth >= 1.7188 * c - Regression with two continous variables regress enps c.lnml##c.eneth * d - Predicted Values and marginsplot regress enps c.lnml##c.eneth margins, dydx( lnml ) continuous at( eneth = (0(1)4) ) marginsplot, ti (marginal effect of district magnitude on number of parties x social heterogeneity) yline(0) * e - Predicted Values and marginsplot regress enps c.lnml##c.eneth margins, dydx(eneth) continuous at( lnml= (0(1)5) ) marginsplot, ti (marginal effect of social heterogeneity on number of parties x district magnitude) yline(0) * Examples of interflex command interflex enps lnml eneth , type(linear) xlab(Social Heterogeneity) ylabel(me of Dist Mag on No.Parties) interflex enps eneth lnml , type(linear) xlab(Social Heterogeneity) ylabel(me of Dist Mag on No.Parties)