******************************************************************************** *** DOFILE 3 - FINAL ANALYSIS *** ******************************************************************************** clear all capture log close set maxvar 10000, perm *set directory cd "" *set log log using Logs\3_analysis, replace *open cleaned data use Output\clean_appended_merged_waves_10.dta *Please ensure that the following plugins are installed // ssc install ftools, replace // ssc install reghdfe, replace // ssc install outreg2, replace // ssc install psmatch2, replace ******************************************************************************** * Descriptive Statistics * ******************************************************************************** * Descriptive Statistics for Continuous Variables, by Wave tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert if wave ==1, statistics(mean sd) columns(statistics) tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert if wave ==2, statistics(mean sd) columns(statistics) tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert if wave ==3, statistics(mean sd) columns(statistics) tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert if wave ==4, statistics(mean sd) columns(statistics) tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert if wave ==5, statistics(mean sd) columns(statistics) tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert if wave ==6, statistics(mean sd) columns(statistics) tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert if wave ==7, statistics(mean sd) columns(statistics) tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert if wave ==8, statistics(mean sd) columns(statistics) tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert if wave ==9, statistics(mean sd) columns(statistics) tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert if wave > 3, statistics(mean sd) columns(statistics) tabstat hrsworked ndepkidsinhh newage eqincome benefitincome newlifesat newhealthsat newincomesat newleisuresat ghqlikert, statistics(mean sd) columns(statistics) *Descriptive Statistics for Categorical Variables, by Wave tab newrelstat wave, column nofreq tab newltillness wave, column nofreq tab newurban wave, column nofreq tab ownshouse wave, column nofreq tab newfemale wave, column nofreq tab bencat wave, column nofreq tab empstat wave, column nofreq tab prntstatus wave, column nofreq tab newregion wave, column nofreq ******************************************************************************** * Main Fixed Effect Models * ******************************************************************************** *Restricting sample to those all variables are available for, so all specifications use the same sample preserve *2 levels of fixed effects, covariates, standard errors clustered at the household level (weighted) reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) keep if e(sample) * 1 level of fixed effects, no covariates, standard errors clustered at the household level reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 if wave > 3 [pweight=indpxub_lw], absorb(pidp) vce(cluster hidp) outreg2 using 1_main_regressions, replace excel dec(3) * 2 levels of fixed effects, no covariates reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 1_main_regressions, append excel dec(3) *2 levels of fixed effects, covariates, (weighted) reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 1_main_regressions, append excel dec(3) *2 levels of fixed effects, binary outcome, covariates reghdfe binarylifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 1_main_regressions, append excel dec(3) *using the vif command to test for multicollinearity reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) vif, uncentered // the mean vairance inflation factor (VIF) is 3.07, suggesting that multicollinearity is not an issue restore ******************************************************************************** * Fixed Effect Models, times treated covariates * ******************************************************************************** *2 levels of fixed effects, times treated, covariates (weighted) - comparison group is never received UC reghdfe newlifesat i.treat_times i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 2_treat_times, replace excel dec(3) ******************************************************************************** * Effect of legacy benefits ******************************************************************************** *Waves 2-4, before UC, identifying the effect of legacy benefits (different weights) reghdfe newlifesat i.bencats3 i.bencats2 i.bencats4 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave < 5 & wave > 1 [pweight=indpxus_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 3_legacy_benefits, replace excel dec(3) // note: the appropriate weight is unavailable in wave 1, and so analysis focuses on waves 2-4 ******************************************************************************** * Fixed Effect Models - Confirming that Fixed Effects are Superior to Random Effects * ******************************************************************************** xtset pidp wave xtreg newlifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3, re est store random xtreg newlifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3, fe est store fixed hausman fixed random // Chi2 = 1970.64, p = .000 // We reject the null hypothesis that the difference in coefficients is not systematic. Systematic differences prevail over non-systematic differences. Therefore the use of fixed effects is favourable to the use of random effects. ******************************************************************************** * Robustness Check - Different Standard Errors * ******************************************************************************** *2 levels of fixed effects, covariates, individual-clustered standard errors reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster pidp) outreg2 using 4_diff_std_errors, replace excel dec(3) *2 levels of fixed effects, covariates, region-clustered standard errors reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster newregion) outreg2 using 4_diff_std_errors, append excel dec(3) // note: too few clusters so F-statistic is missing *2 levels of fixed effects, covariates, country-clustered standard errors reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster newcountry) outreg2 using 4_diff_std_errors, append excel dec(3) // note: too few clusters so F-statistic is missing ******************************************************************************** * Alternative Model Specification - Inverse Probability Weighting * ******************************************************************************** xtset pidp wave probit universalcredit c.ndepkidsinhh c.eqincome c.hrsworked c.newage i.newltillness i.ownshouse i.empstat i.newregion i.newrelstat i.educ2 i.newfemale i.whitebritish i.newurban i.wave if wave > 4 [pweight=indpxub_lw], vce(cluster hidp) outreg2 using 5_probit, replace excel dec(3) predict uc_prob gen ipweight=(1/uc_prob) if universalcredit==1 replace ipweight=(1/(1-uc_prob)) if universalcredit==0 *Re-run probit using ipweights to see if predictor coefficients are decreased probit universalcredit c.ndepkidsinhh c.eqincome c.hrsworked c.newage i.newltillness i.ownshouse i.empstat i.newregion i.newrelstat i.educ2 i.newfemale i.whitebritish i.newurban i.wave if wave > 4 [pweight=ipweight], vce(cluster hidp) iterate(10) outreg2 using 5_probit, append excel dec(3) // several coefficiencts are now non-significant or of reduced significance. Indicates that the match is improved, albeit not perfectly. * Pstest to confirm the success of the matching process pstest c.ndepkidsinhh c.eqincome c.hrsworked c.newage i.newltillness i.ownshouse i.empstat i.newregion i.newrelstat i.educ2 i.newfemale i.whitebritish i.newurban i.wave if wave > 4, t(universalcredit) mw(uc_prob) both graph *2 levels of fixed effects, covariates, inverse probability weights, continuous outcome reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=ipweight], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 5_ipw, replace excel dec(3) *2 levels of fixed effects, covariates, inverse probability weights, binary outcome reghdfe binarylifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=ipweight], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 5_ipw, append excel dec(3) ******************************************************************************** * Alternative Model Specification - Differences in Differences * ******************************************************************************** gen time=0 if wave==4 replace time=1 if wave==10 gen timenear=0 if wave==3 replace timenear=1 if wave==4 gen timeold=0 if wave==2 replace timeold=1 if wave==4 gen timeoldest=0 if wave==1 replace timeoldest=1 if wave==4 gen treat10=universalcredit if wave==10 bysort pidp (treat10): replace treat10 = treat10[1] *DiD Regression with Covariates (wave 4 vs 10) reg newlifesat i.time##i.treat10 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked [pweight=indpxub_lw], vce(cluster hidp) outreg2 using 6_did, replace excel dec(3) *Tests of the Parallel Trends Assumption reg newlifesat timeold##treat10 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked [pweight=indpxus_lw], vce(cluster hidp) outreg2 using 6_parallel_trends, replace excel dec(3) // no significant interaction term between waves 2 and 4 // implies parallel trends assumption holds reg newlifesat timenear##treat10 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked [pweight=indpxus_lw], vce(cluster hidp) outreg2 using 6_parallel_trends, append excel dec(3) // no significant interaction term between waves 3 and 4 // implies parallel trends assumption holds ******************************************************************************** * Heterogeneity Analysis - People Working 35+ Hours Per Week * ******************************************************************************** *2 levels of fixed effects, covariates, working 35+ hours reghdfe newlifesat i.bencats4##i.over35hours i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 7_heterogeneity, replace excel dec(3) ******************************************************************************** * Heterogeneity Analysis - Employment Status * ******************************************************************************** reghdfe newlifesat i.bencats4##i.empstat i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 7_heterogeneity, append excel dec(3) ******************************************************************************** * Heterogeneity Analysis - Parental Status * ******************************************************************************** *2 levels of fixed effects, covariates, parental status reghdfe newlifesat i.bencats4##i.prntstatus i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 7_heterogeneity, append excel dec(3) ******************************************************************************** * Mediation Effects - Mental Health using the GHQ-12 - Manual * ******************************************************************************** // note: sum of likert scores, ranging from 0-36, higher scores indicate higher psychological distress *Manual mediation models *Regress life satisfaction on UC and other covariates (but not GHQ-12) reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 8_mediation, replace excel dec(3) *Regress life satisfaction on UC, GHQ-12, and other covariates reghdfe newlifesat i.bencats4 i.bencats3 i.bencats2 c.ghqlikert i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 8_mediation, append excel dec(3) *Regress GHQ-12 on UC and other covariates reghdfe ghqlikert i.bencats4 i.bencats3 i.bencats2 i.newrelstat c.ndepkidsinhh c.eqincome i.newltillness i.ownshouse i.educ2 i.newurban c.newage i.empstat c.hrsworked if wave > 3 [pweight=indpxub_lw], absorb(pidp wave#newregion) vce(cluster hidp) outreg2 using 8_mediation, append excel dec(3) ******************************************************************************** *Graphs, etc. * ******************************************************************************** *Simple comparison mean newlifesat if wave > 4 [pweight=indpxub_lw], over(bencat) mean newlifesat if wave > 3 [pweight=indpxub_lw], over(bencat) mean newlifesat if wave == 10 [pweight=indpxub_lw], over(bencat) capture log close