*Dowload the WVS round 6 dataset from http://www.worldvaluessurvey.org/WVSDocumentationWV6.jsp Remember to read the 'Conditions of Use' carefully and abide by them. FREQ V2. *select Middle East and North Africa (MENA) countries. Recode V2 (12 48 275 368 400 414 422 434 504 634 788 818 887= 1) (ELSE = 0) into menacntry. FREQ menacntry. USE ALL. COMPUTE filter_$=(menacntry = 1). VARIABLE LABELS filter_$ 'menacntry = 1 (FILTER)'. VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'. FORMATS filter_$ (f1.0). FILTER BY filter_$. FREQ V2. *examine political action variables FREQ v85 v86 v87 v88 v89. *Drop Bahrein Qatar and Kuwait. If (v2 eq 48) menacntry = 0. If (v2 eq 414) menacntry = 0. If (v2 eq 634) menacntry = 0. Cross menacntry by v2. *re-select new list of Middle East and North Africa (MENA) countries. USE ALL. COMPUTE filter_$=(menacntry = 1). VARIABLE LABELS filter_$ 'menacntry = 1 (FILTER)'. VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'. FORMATS filter_$ (f1.0). FILTER BY filter_$. FREQ V2. *Create weights. compute weight = 0. if (v2 eq 12) weight = 1.771683521. if (v2 eq 275) weight = 0.193712556. if (v2 eq 400) weight = 0.289073626. if (v2 eq 422) weight = 0.256815889. if (v2 eq 504) weight = 1.553701518. if (v2 eq 788) weight = 0.508053757. if (v2 eq 818) weight = 2.962273262*v258. if (v2 eq 434) weight = 0.16085243*v258. if (v2 eq 887) weight = 1.080288077. if (v2 eq 368) weight = 1.227455349. means weight by v2. *apply weights. weight by weight. *create data for export to excel. CROSSTABS v242 by v84 by v240 /FORMAT=AVALUE TABLES /CELLS= COUNT /COUNT ROUND CELL. *create polaction variable and check its distribution. COUNT polaction=V85 V86 V87 V88 V89(1). freq polaction. recode polaction (1 thru hi= 1) (0=0). val labels polaction 1 "some activity" 0 "No activity". freq polaction. CROSSTABS polaction BY V2 /FORMAT=AVALUE TABLES /CELLS= COLUMN /COUNT ROUND CELL. *create data for export to excel. CROSSTABS v242 by polaction by v240 /FORMAT=AVALUE TABLES /CELLS= COUNT /COUNT ROUND CELL. *compare with USA, NL, Ger and Swe. Use all. Compute USAEurcntry = 0. if (v2 eq 840) USAEurcntry = 1. if (v2 eq 276) USAEurcntry = 1. if (v2 eq 528) USAEurcntry = 1. if (v2 eq 752) USAEurcntry = 1. if (v2 eq 840) weight = 2.45*v258. if (v2 eq 276) weight = 0.72*v258. if (v2 eq 528) weight = 0.15*v258. if (v2 eq 752) weight = 0.13*v258. cross v2 by USAEurcntry. *Select new list of USA 7 European countries. COMPUTE filter_$=(USAEurcntry = 1). VARIABLE LABELS filter_$ 'USAEurcntry = 1 (FILTER)'. VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'. FORMATS filter_$ (f1.0). FILTER BY filter_$. FREQ V2. CROSSTABS polaction BY V2 /FORMAT=AVALUE TABLES /CELLS= COLUMN /COUNT ROUND CELL. *create data for export to excel. CROSSTABS v242 by polaction by v240 /FORMAT=AVALUE TABLES /CELLS= COUNT /COUNT ROUND CELL. *select MENA countries again. Use all. COMPUTE filter_$=(menacntry = 1). VARIABLE LABELS filter_$ 'menacntry = 1 (FILTER)'. VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'. FORMATS filter_$ (f1.0). FILTER BY filter_$. *examine distribution of possible variables by country for inclusion in the log reg model. SORT CASES BY V2. SPLIT FILE SEPARATE BY V2. Freq v242 v240 v7 v84 v115 v147 v217 to v224 v181 v182 v188 to v191 v248. *Create variable for sources of information taking account of Morocco. SPLIT FILE OFF. COUNT information=v217 v218 v220 v221 v222 v223(1 thru 4). FREQ information. RECODE information (0 thru 2 = 0) (3 thru 6 = 1) into info1. VALUE labels info1 0 "few sources" 1 "many sources". FREQ info1. COUNT missinfo=v217 v218 v220 v221 v222 v223(MISSING). IF (missinfo eq 6) and (v2 ne 504) info1 = 9. MISSING VALUES info1 (9). FREQ info1. COUNT morinfo=v217_ESMA v218_ESMA v220_ESMA v221_ESMA v222_ESMA v223_ESMA (724001). FREQ morinfo. RECODE morinfo (0 1 = 0) (2 thru hi = 1). COUNT missinfo1=v217_ESMA v218_ESMA v220_ESMA v221_ESMA v222_ESMA v223_ESMA (MISSING). FREQ missinfo1. IF ((v2 eq 504) and (missinfo1 eq 6)) info1 = 9. IF (v2 eq 504) info1 eq morinfo. FREQ info1. Cross info1 by v2. *create new versions of other variables. RECODE v248 (1 2 3 4 thru 7 = 0) (8 9 = 1) (lo thru 0 = SYSMIS) into v248jm. VALUE LABELS v248jm 0 "none to secondary" 1 "higher". freq v248jm. COMPUTE hardship = 17- (v188 + v189 + v190 + v191). RECODE hardship (1 thru 5 = 0) (6 thru 13 = 1). VALUE LABELS hardship 0 "little hardship" 1 "more hardship". freq v188. freq v181 v182. COMPUTE worry1 = 0. If (v181 eq 1) worry1 = 1. if (v182 eq 1) worry1 = 1. VALUE labels worry1 0 "other" 1 "worried" . FREQ worry1. Freq v248jm hardship worry1. *create a dummy variable version of v7 v84 v115 and v238. recode v7 (1 2 = 1) (3 4 = 0) into v7dum. VALUE LABELS v7dum 0 "not important" 1 "important". recode v84 (1 2 = 1) (3 4 = 0) into v84dum. VALUE LABELS v84dum 0 "not interested" 1 "interested". recode v115 (1 2 = 0) (3 4 = 1) into v115dum. VALUE LABELS v115dum 0 "some confidence" 1 "little confidence". recode v238 (2 3 = 1) (4 5 =0) (ELSE = COPY) into v238dum. missing values v238dum (-6 thru -1). VALUE LABELS v238dum 1 "middle class" 0 "working class". freq v7dum v84dum v115dum v238dum. *create the religion variable. freq v147. RECODE v147 (2,3=0) (1 = 1) (else = copy) into v147jm. freq v147jm. VALUE LABELS v147jm 1 "religious" 0 "non-religious". IF ((v2 eq 818) and(v145 eq 7)) v147jm eq 0. IF ((v2 eq 818) and(v145 le 6) and (v145 ge 1)) v147jm eq 1. FREQ v147jm. MISSING VALUES v147 (). IF ((v147 lt 0) and (v145 eq 7)) v147jm eq 0. IF ((v147 lt 0) and (v145 le 6) and (v145 ge 1)) v147jm eq 1. FREQ v147jm. MISSING VALUES v147jm (-6 thru -1). freq v147jm. *examine rate of missing values for all model variables together. weight off. COMPUTE allvalid = v240 + v242 +v2 + v7dum + v84dum + v147JM + vv248jm + worry1 +i nfo1 + hardship + v115 + v238dum. RECODE allvalid (1 THRU HI = 1) (SYSMIS = 0). FREQ allvalid. *compare distributions for cases with valid values on all variables to other cases. SORT CASES by allvalid. SPLIT FILE SEPARATE by allvalid. Freq v240 v242 v7dum v84dum v147JM v248jm worry1 info1 hardship v115dum v238dum. SPLIT FILE off. *select cases with valid values for all variables for our ten MENA countries only. USE ALL. COMPUTE filter_$=((menacntry = 1) and (allvalid = 1) ). VARIABLE LABELS filter_$ 'menacntry = allvalid =1 (FILTER)'. VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'. FORMATS filter_$ (f1.0). FILTER BY filter_$. *check response variable association with predictor variables. CROSSTABS v240 v7dum v84dum v147JM v248jm worry1 info1 hardship v115dum v238dum by polaction /STATISTICS=CHISQ . *run the logistic regression!. LOGISTIC REGRESSION VARIABLES polaction /METHOD=ENTER v242 v240 v84dum v7dum v238dum v248jm hardship worry1 info1 v115dum v147jm /CONTRAST (v7dum)=Indicator (1) /CONTRAST (v240)=Indicator /CONTRAST (info1)=Indicator(1) /CONTRAST (v84dum)=Indicator (1) /CONTRAST (v238dum)=Indicator (1) /CONTRAST (hardship)=Indicator (1) /CONTRAST (worry1)=Indicator(1) /CONTRAST (v115dum)=Indicator (1) /CONTRAST (v147jm)=Indicator /CONTRAST (v248jm)=Indicator(1) /CRITERIA=PIN(0.05) POUT(0.10) ITERATE(20) CUT(0.5). *put v238jm and v7dum into separate block and check change in model coefficients. LOGISTIC REGRESSION VARIABLES polaction /METHOD=ENTER v242 v240 v84dum v248jm hardship worry1 info1 v115dum v147jm /METHOD=ENTER v7dum v238dum /CONTRAST (v240)=Indicator /CONTRAST (info1)=Indicator(1) /CONTRAST (v84dum)=Indicator (1) /CONTRAST (hardship)=Indicator (1) /CONTRAST (worry1)=Indicator(1) /CONTRAST (v115dum)=Indicator (1) /CONTRAST (v147jm)=Indicator /CONTRAST (v248jm)=Indicator(1) /CRITERIA=PIN(0.05) POUT(0.10) ITERATE(20) CUT(0.5). *check for important interaction terms. *The second '/METHOD=ENTER' syntax line asks SPSS to run a second model adding the interaction term to the first mdel. You can then check whether the term makes a significant different to the model. Only enter interaction terms that have a sensible substantive interpretation. Enter an interaction term (the example below is v240*v84) and run the regression. If the term is not significant drop it from the syntax and enter the next one. If the term is significant and has a substantive interpretation, add it to the first model at the end of the variable list, and then continue the search for further significant interaction terms. Use the same syntax block, editing the contents of the two /METHOD=ENTER lines as need be. LOGISTIC REGRESSION VARIABLES polaction /METHOD=ENTER v242 v240 v84dum v248jm hardship worry1 info1 v115dum v147jm /METHOD=ENTER v248jm*hardship /CONTRAST (v240)=Indicator /CONTRAST (info1)=Indicator(1) /CONTRAST (v84dum)=Indicator (1) /CONTRAST (hardship)=Indicator (1) /CONTRAST (worry1)=Indicator(1) /CONTRAST (v115dum)=Indicator (1) /CONTRAST (v147jm)=Indicator (1) /CONTRAST (v248jm)=Indicator(1) /CRITERIA=PIN(0.05) POUT(0.10) ITERATE(20) CUT(0.5). *put interaction into model and run diagnostics. LOGISTIC REGRESSION VARIABLES polaction /METHOD=ENTER v242 v240 v84dum v248jm hardship worry1 info1 v115dum v147jm v248jm*hardship /CONTRAST (v240)=Indicator /CONTRAST (info1)=Indicator(1) /CONTRAST (v84dum)=Indicator (1) /CONTRAST (hardship)=Indicator (1) /CONTRAST (worry1)=Indicator(1) /CONTRAST (v115dum)=Indicator (1) /CONTRAST (v147jm)=Indicator (1) /CONTRAST (v248jm)=Indicator(1) /PRINT=GOODFIT /SAVE=PRED COOK LEVER ZRESID DEV /CRITERIA=PIN(0.05) POUT(0.10) ITERATE(20) CUT(0.5). *NB: the suffixes for the saved variables (e.g. PRE_1) will change with each successive model that you run. Either change the suffixes in the syntax, or delete each set of saved variables after checking each model until you havee a model you are satisfied with. GRAPH /SCATTERPLOT(BIVAR)=PRE_1 WITH LEV_1. GRAPH /SCATTERPLOT(BIVAR)=PRE_1 WITH COO_1. COMPUTE DELTACHISQ=ZRE_1**2/(1-LEV_1). COMPUTE DELTADEV=DEV_1**2 + (ZRE_1**2 * LEV_1)/(1 - LEV_1). GRAPH /SCATTERPLOT(BIVAR)=PRE_1 WITH DELTACHISQ. GRAPH /SCATTERPLOT(BIVAR)=PRE_1 WITH DELTADEV. FREQUENCIES VARIABLES=DELTACHISQ DELTADEV /FORMAT=NOTABLE /PERCENTILES=95.0 99.0 /STATISTICS=MAXIMUM /ORDER=ANALYSIS.