set more off
set linesize 150
global filesave "C:\Dropbox\PilesOfVariance\Chapter9\STATA"
use "$filesave\STATA_Chapter9.dta", clear
egen pmmonitor = rowmean(monitor*)
label variable pmmonitor "pmmonitor: Person Mean Monitoring"
gen copymonitor12 = monitor12
gen copymonitor18 = monitor18
reshape long age risky monitor, i(personid) j(occasion)
label variable occasion "occasion: Occasion of Measurement (12-18)"
label variable age "age: Exact Age at Occasion"
label variable risky "risky: Risky Behavior at Occasion"
label variable monitor "monitor: Monitoring at Occasion"
gen agec18 = age - 18
gen agec18sq = agec18 * agec18
gen att4 = attitude12 - 4
gen mon3 = monitor - 3
gen pmmon3 = pmmonitor - 3
gen wpmon = monitor - pmmonitor
gen age18mon3 = copymonitor18 - 3
gen change18mon = monitor - copymonitor18
label variable agec18 "agec18: Exact Age (0=18)"
label variable agec18sq "agec18sq: Exact Quadratic Age (0=18)"
label variable att4 "att4: Age 12 Attitudes (0=4)"
label variable mon3 "mon3: Monitoring (0=3)"
label variable pmmon3 "pmmon3: Person Mean Monitoring (0=3)"
label variable wpmon "wpmon: Within-Person Monitoring (0=PM)"
label variable age18mon3 "age18mon3: BP Monitoring at Age 18 (0=3)"
label variable change18mon "change18mon: WP Monitoring from Age 18 (0=Age18)"
egen nummiss = rowmiss(agec18 att4 risky pmmonitor age18mon3 monitor)
drop if nummiss>0
log using $filesave\STATA_Chapter9_Output, replace name(STATA_Chapter9)
display as result "Chapter 9: Descriptive Statistics for Time-Varying Variables"
preserve
collapse attitude12 pmmonitor copymonitor12 copymonitor18, by(personid)
summarize attitude12 pmmonitor copymonitor12 copymonitor18
corr pmmonitor copymonitor12 copymonitor18
restore
display as result "Chapter 9: Descriptive Statistics for Time-Varying Variables"
summarize age risky monitor wpmon change18mon
corr pmmon3 age18mon3 wpmon change18mon
display as result "Ch 9: Empty Means, Random Intercept Model for Monitoring"
mixed monitor ,
|| personid: , variance mle covariance(unstructured),
estat ic, n(200),
estat icc,
estat wcorrelation, covariance,
estat wcorrelation,
display as result "Ch 9: Fixed Linear Age, Random Intercept Model for Monitoring"
mixed monitor c.agec18,
|| personid: , variance mle covariance(unstructured),
estat ic, n(200),
estimates store FitFixLin,
display as result "Ch 9: Random Linear Age Model for Monitoring"
mixed monitor c.agec18,
|| personid: agec18, variance mle covariance(unstructured),
estat ic, n(200),
estimates store FitRandLin,
lrtest FitRandLin FitFixLin,
display as result "Ch 9: Fixed Quadratic, Random Linear Age Model for Monitoring"
mixed monitor c.agec18 c.agec18#c.agec18,
|| personid: agec18, variance mle covariance(unstructured),
estat ic, n(200),
estimates store FitFixQuad,
display as result "Ch 9: Random Quadratic Age Model for Monitoring"
mixed monitor c.agec18 c.agec18#c.agec18,
|| personid: agec18 agec18sq, variance mle covariance(unstructured),
estat ic, n(200),
estimates store FitRandQuad,
lrtest FitRandQuad FitFixQuad, force
display as result "Ch 9: Fixed Quadratic, Random Linear Age Model for Risky Behavior"
display as result "Conditional Baseline with Attitudes Predicting Linear Age Slope"
mixed risky c.agec18 c.agec18#c.agec18
c.att4 c.agec18#c.att4,
|| personid: agec18, variance mle covariance(unstructured),
estat ic, n(200),
predict PredAttOnly, xb,
display as result "Eq 9.1: Predicting Quadratic Change in Risky Behavior"
display as result "From Person Mean Monitoring as Between-Person Monitoring"
mixed risky c.agec18 c.agec18#c.agec18 c.att4 c.agec18#c.att4
c.pmmon3 c.agec18#c.pmmon3 c.agec18#c.agec18#c.pmmon3,
|| personid: agec18, variance mle covariance(unstructured),
estat ic, n(200),
lincom pmmon3*1 + c.agec18#c.pmmon3*-6 + c.agec18#c.agec18#c.pmmon3*36
lincom pmmon3*1 + c.agec18#c.pmmon3*-4 + c.agec18#c.agec18#c.pmmon3*16
lincom pmmon3*1 + c.agec18#c.pmmon3*-2 + c.agec18#c.agec18#c.pmmon3*4
lincom pmmon3*1 + c.agec18#c.pmmon3*0 + c.agec18#c.agec18#c.pmmon3*0
predict PredPMBP, xb,
corr risky PredPMBP
display as result "Eq 9.1: Predicting Quadratic Change in Risky Behavior"
display as result "From Monitoring at Age 18 as Between-Person Monitoring"
mixed risky c.agec18 c.agec18#c.agec18 c.att4 c.agec18#c.att4
c.age18mon3 c.agec18#c.age18mon3 c.agec18#c.agec18#c.age18mon3,
|| personid: agec18, variance mle covariance(unstructured),
estat ic, n(200),
lincom c.age18mon3*1 + c.agec18#c.age18mon3*-6 + c.agec18#c.agec18#c.age18mon3*36
lincom c.age18mon3*1 + c.agec18#c.age18mon3*-4 + c.agec18#c.agec18#c.age18mon3*16
lincom c.age18mon3*1 + c.agec18#c.age18mon3*-2 + c.agec18#c.agec18#c.age18mon3*4
lincom c.age18mon3*1 + c.agec18#c.age18mon3*0 + c.agec18#c.agec18#c.age18mon3*0
predict Pred18BP, xb,
corr risky Pred18BP
display as result "Eq 9.2: Adding Within-Person Monitoring by Quadratic Age"
display as result "Using Deviation from Person Mean Monitoring as Within-Person Monitoring"
mixed risky c.agec18 c.agec18#c.agec18 c.att4 c.agec18#c.att4
c.pmmon3 c.agec18#c.pmmon3 c.agec18#c.agec18#c.pmmon3
c.wpmon c.agec18#c.wpmon c.agec18#c.agec18#c.wpmon,
|| personid: agec18, variance mle covariance(unstructured),
estat ic, n(200),
lincom c.pmmon3*1 + c.agec18#c.pmmon3*-6 + c.agec18#c.agec18#c.pmmon3*36
lincom c.pmmon3*1 + c.agec18#c.pmmon3*-4 + c.agec18#c.agec18#c.pmmon3*16
lincom c.pmmon3*1 + c.agec18#c.pmmon3*-2 + c.agec18#c.agec18#c.pmmon3*4
lincom c.pmmon3*1 + c.agec18#c.pmmon3*0 + c.agec18#c.agec18#c.pmmon3*0
lincom c.wpmon*1 + c.agec18#c.wpmon*-6 + c.agec18#c.agec18#c.wpmon*36
lincom c.wpmon*1 + c.agec18#c.wpmon*-4 + c.agec18#c.agec18#c.wpmon*16
lincom c.wpmon*1 + c.agec18#c.wpmon*-2 + c.agec18#c.agec18#c.wpmon*4
lincom c.wpmon*1 + c.agec18#c.wpmon*0 + c.agec18#c.agec18#c.wpmon*0
predict PredPMBPWP, xb,
corr risky PredPMBPWP
display as result "Eq 9.2: Adding Within-Person Monitoring by Quadratic Age"
display as result "Using Change from Age 18 Monitoring as Within-Person Monitoring"
mixed risky c.agec18 c.agec18#c.agec18 c.att4 c.agec18#c.att4
c.age18mon3 c.agec18#c.age18mon3 c.agec18#c.agec18#c.age18mon3
c.change18mon c.agec18#c.change18mon c.agec18#c.agec18#c.change18mon,
|| personid: agec18, variance mle covariance(unstructured),
estat ic, n(200),
lincom c.age18mon3*1 + c.agec18#c.age18mon3*-6 + c.agec18#c.agec18#c.age18mon3*36
lincom c.age18mon3*1 + c.agec18#c.age18mon3*-4 + c.agec18#c.agec18#c.age18mon3*16
lincom c.age18mon3*1 + c.agec18#c.age18mon3*-2 + c.agec18#c.agec18#c.age18mon3*4
lincom c.age18mon3*1 + c.agec18#c.age18mon3*0 + c.agec18#c.agec18#c.age18mon3*0
lincom c.change18mon*1 + c.agec18#c.change18mon*-6 + c.agec18#c.agec18#c.change18mon*36
lincom c.change18mon*1 + c.agec18#c.change18mon*-4 + c.agec18#c.agec18#c.change18mon*16
lincom c.change18mon*1 + c.agec18#c.change18mon*-2 + c.agec18#c.agec18#c.change18mon*4
lincom c.change18mon*1 + c.agec18#c.change18mon*0 + c.agec18#c.agec18#c.change18mon*0
predict Pred18BPWP, xb,
corr risky Pred18BPWP
display as result "Ch 9: Random Linear Age Model for Monitoring"
display as result "Saving Predicted Random Effects and Residuals as Data"
mixed monitor c.agec18,
|| personid: agec18, variance mle covariance(unstructured),
estat ic, n(200),
predict monUage monU0, reffects,
predict monEres, residuals
gen monUint = monU0+3.0650-3
display as result "Descriptives for Random Effects and Residuals"
summarize(monUint monUage monEres)
display as result "Ch 9 Eq 9.6: Predicting Risky Behavior"
display as result "from Monitoring Random Effects and Residuals"
mixed risky c.agec18 c.agec18#c.agec18 c.att4 c.agec18#c.att4
c.monUint c.monUint#c.agec18 c.monUage c.monUage#c.agec18 c.monEres,
|| personid: agec18, variance mle covariance(unstructured),
estat ic, n(200),
estimates store FitUWPasfixed,
display as result "Ch 9 Eq 9.6: Predicting Risky Behavior"
display as result "from Monitoring Random Effects and Residuals"
display as result "Adding Random Effect of WP Monitoring Residual"
mixed risky c.agec18 c.agec18#c.agec18 c.att4 c.agec18#c.att4
c.monUint c.monUint#c.agec18 c.monUage c.monUage#c.agec18 c.monEres,
|| personid: agec18 monEres, variance mle covariance(unstructured),
estat ic, n(200),
estimates store FitUWPasrandom,
lrtest FitUWPasrandom FitUWPasfixed, force
display as result "Ch 9 Eq 9.6: Predicting Risky Behavior"
display as result "from Monitoring Random Effects and Residuals"
display as result "Adding WP Monitoring by Age"
mixed risky c.agec18 c.agec18#c.agec18 c.att4 c.agec18#c.att4
c.monUint c.monUint#c.agec18 c.monUage c.monUage#c.agec18
c.monEres c.agec18#c.monEres,
|| personid: agec18, variance mle covariance(unstructured),
estat ic, n(200),
log close STATA_Chapter9
log2html $filesave\STATA_Chapter9_Output, replace