* Stop syntax and large titles from printing to output.
SET PRINTBACK=NONE HEADER=NO.

***********************************************************************************.
*******     BEGIN DATA MANIPULATION OF CHAPTER 7a FLUCTUATION EXAMPLE       *******.
*******               CHANGE "filesave" to your directory                   *******.
***********************************************************************************.

* Define location of files used in code below.
FILE HANDLE filesave /NAME = "C:\Dropbox\PilesOfVariance\Chapter7a\SPSS".

* Import chapter 7a stacked data. 
GET FILE = "filesave/SPSS_Chapter7a.sav".
DATASET NAME Chapter7a WINDOW=FRONT.

* Create person means across time for women and age for descriptives.
SORT CASES BY PersonID.
DATASET DECLARE PersonMeans7a.
AGGREGATE
   /OUTFILE="PersonMeans7a"
   /PRESORTED
   /BREAK = PersonID
   /PMwomen = MEAN(women)
   /PMbaseage = MEAN(baseage).

* Create centered predictors for analysis.
DATASET ACTIVATE Chapter7a.
COMPUTE studyday1 = studyday - 1.
COMPUTE dayofweek1 = dayofweek - 1.
COMPUTE age80 = baseage - 80.
VARIABLE LABELS
studyday1 "studyday1: Day of Study (0=1)"
dayofweek1 "dayofweek1: Day of Week (0=1)"
age80 "age80: Baseline Age (0=80)".

* Subset sample to complete cases for all eventual predictors in chapter 8.
SELECT IF NVALID(women, baseage, symptoms, mood, stressor, mood)=6.
* Subset sample to study days within a two-week period.
SELECT IF (studyday<15).
EXECUTE.

***********************************************************************************.
*******               BEGIN CHAPTER 7a FLUCTUATION MODELS                   *******.
*******    NOTE: HETEROGENEOUS VARIANCE MODELS ARE NOT POSSIBLE IN SPSS     *******.
***********************************************************************************.

* Open output directory.
OUTPUT NAME SPSS_Chapter7a_Output.

DATASET ACTIVATE PersonMeans7a.
ECHO "Chapter 7a: Descriptive Statistics for Time-Invariant Variables".
SUMMARIZE
   /TABLES = PMwomen PMbaseage
   /FORMAT = NOLIST TOTAL 
   /CELLS  = COUNT MEAN STDDEV MIN MAX.

DATASET ACTIVATE Chapter7a.
ECHO "Chapter 7a: Descriptive Statistics for Time-Varying Variables".
SUMMARIZE
   /TABLES = symptoms
   /FORMAT = NOLIST TOTAL 
   /CELLS  = COUNT MEAN STDDEV MIN MAX.

DATASET ACTIVATE Chapter7a WINDOW=FRONT.
ECHO 'Eq 7a.3: Empty Means, Random Intercept Model'.
MIXED symptoms BY PersonID
     /METHOD   = ML
     /PRINT    = SOLUTION TESTCOV
     /FIXED    =
     /RANDOM   = INTERCEPT | COVTYPE(UN) SUBJECT(PersonID)
.

DATASET ACTIVATE Chapter7a WINDOW=FRONT.
ECHO 'Ch 7a: Testing Saturated Means by Day of Study;'.
ECHO 'Random Intercept Only'.
MIXED symptoms BY PersonID studyday
     /METHOD   = ML
     /PRINT    = SOLUTION TESTCOV
     /FIXED    = studyday
     /RANDOM   = INTERCEPT | COVTYPE(UN) SUBJECT(PersonID)
     /EMMEANS  = TABLES(studyday) COMPARE(studyday)
.

DATASET ACTIVATE Chapter7a WINDOW=FRONT.
ECHO 'Ch 7a: Testing Fixed Linear Effect of Day of Study;'.
ECHO 'Random Intercept Only'.
MIXED symptoms BY PersonID WITH studyday1
     /METHOD   = ML
     /PRINT    = SOLUTION TESTCOV
     /FIXED    = studyday1
     /RANDOM   = INTERCEPT | COVTYPE(UN) SUBJECT(PersonID)
.

DATASET ACTIVATE Chapter7a WINDOW=FRONT.
ECHO 'Ch 7a: Testing Random Linear Effect of Day of Study'.
MIXED symptoms BY PersonID WITH studyday1
     /METHOD   = ML
     /PRINT    = SOLUTION TESTCOV
     /FIXED    = studyday1
     /RANDOM   = INTERCEPT studyday1 | COVTYPE(UN) SUBJECT(PersonID)
.

DATASET ACTIVATE Chapter7a WINDOW=FRONT.
ECHO 'Ch 7a: Testing Saturated Means by Day of Week;'.
ECHO 'Random Intercept Only'.
MIXED symptoms BY PersonID dayofweek
     /METHOD   = ML
     /PRINT    = SOLUTION TESTCOV
     /FIXED    = dayofweek
     /RANDOM   = INTERCEPT | COVTYPE(UN) SUBJECT(PersonID)
     /EMMEANS  = TABLES(dayofweek) COMPARE(dayofweek)
.

DATASET ACTIVATE Chapter7a WINDOW=FRONT.
ECHO 'Ch 7a: Testing Fixed Effect of Weekend;'.
ECHO 'Random Intercept Only'.
MIXED symptoms BY PersonID WITH weekend
     /METHOD   = ML
     /PRINT    = SOLUTION TESTCOV
     /FIXED    = weekend
     /RANDOM   = INTERCEPT | COVTYPE(UN) SUBJECT(PersonID)
.

DATASET ACTIVATE Chapter7a WINDOW=FRONT.
ECHO 'Ch 7a: Testing Random Effect of Weekend'.
MIXED symptoms BY PersonID WITH weekend
     /METHOD   = ML
     /PRINT    = SOLUTION TESTCOV
     /FIXED    = weekend
     /RANDOM   = INTERCEPT weekend | COVTYPE(UN) SUBJECT(PersonID)
.

DATASET ACTIVATE Chapter7a WINDOW=FRONT.
ECHO 'Eq 7a.4: Adding Sex and Age to the Model for the Means'.
MIXED symptoms BY PersonID WITH women age80
     /METHOD   = ML
     /PRINT    = SOLUTION TESTCOV COVB
     /FIXED    = women age80 women*age80
     /RANDOM   = INTERCEPT | COVTYPE(UN) SUBJECT(PersonID)
     /TEST     = 'Multivariate Test of Fixed Effects' women 1; age80 1; women*age80 1
     /TEST     = 'Age Slope for Men'   age80 1 women*age80 0
     /TEST     = 'Age Slope for Women' age80 1 women*age80 1
     /SAVE     = FIXPRED(PredSexAge)
.
CORRELATIONS symptoms PredSexAge.

****** END CHAPTER 7a MODELS ******.

* Close output directory.
OUTPUT EXPORT NAME=SPSS_Chapter7a_Output
     /CONTENTS EXPORT=VISIBLE LAYERS=VISIBLE MODELVIEWS=VISIBLE
     /HTML DOCUMENTFILE='C:\Dropbox\PilesOfVariance\Chapter7a\SPSS\SPSS_Chapter7a_Output.html'
           IMAGEFORMAT=PNG STYLING=YES.