# Loading the dataset that has been reset into a long version
load("/Users/levibrackman/data.test.RData")
# Creating a new variable that is the mean of all positive purpose HAPPI
# questions
data.test$HAPPIPRMA17 <- apply(data.test[, c("HAPPI1", "HAPPI2", "HAPPI3", "PERMA17")],
1, mean, na.rm = TRUE)
For lme to work GROUP and ID need to be seen as factors
data.test$GROUP <- as.factor(data.test$GROUP)
data.test$ID <- as.factor(data.test$ID)
# Load the psych package
library(psych)
Describe the HAPPIPRMA17 variable by the GROUP variable
describeBy(data.test$HAPPIPRMA17, group = data.test$GROUP)
## group: 0
## vars n mean sd median trimmed mad min max range skew kurtosis
## 1 1 80 5.55 1.32 5.75 5.71 1.11 1.75 7.75 6 -1.03 0.62
## se
## 1 0.15
## --------------------------------------------------------
## group: 1
## vars n mean sd median trimmed mad min max range skew kurtosis
## 1 1 70 5.7 1.19 6 5.76 1.11 1.75 7.75 6 -0.66 0.47
## se
## 1 0.14
## --------------------------------------------------------
## group: 2
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 5 5.3 2.23 4.75 5.3 3.71 2.25 7.5 5.25 -0.14 -1.92 1
Create a plot that visualizes HAPPIPRMA17 variable by the GROUP variable
library(ggplot2)
##
## Attaching package: 'ggplot2'
##
## The following object is masked from 'package:psych':
##
## %+%
qplot(GROUP, HAPPIPRMA17, data = data.test, geom = "boxplot")
# Load the nlme package
library(nlme)
with(data.test, boxplot(HAPPIPRMA17 ~ wave + GROUP))
Graphing the Two-Way Interaction.
# Load the nlme package
library(nlme)
I am not sure if I am doing this right
baseline <- lme(HAPPIPRMA17 ~ 1, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
HAPPIPRMA17Model <- lme(HAPPIPRMA17 ~ GROUP, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
## Error: nlminb problem, convergence error code = 1
## message = singular convergence (7)
HAPPIPRMA172Model <- lme(HAPPIPRMA17 ~ GROUP + wave, random = ~1 | ID/GROUP/wave,
data = data.test, method = "ML")
fullModel <- lme(HAPPIPRMA17 ~ GROUP * wave, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
We again the significance of our models by comparing them from the baseline model using the anova() function.
anova(baseline, HAPPIPRMA17Model, HAPPIPRMA172Model, fullModel)
## Error: object 'HAPPIPRMA17Model' not found
summary(fullModel)
## Warning: NaNs produced
## Linear mixed-effects model fit by maximum likelihood
## Data: data.test
## AIC BIC logLik
## 468.6 499 -224.3
##
## Random effects:
## Formula: ~1 | ID
## (Intercept)
## StdDev: 1.15
##
## Formula: ~1 | GROUP %in% ID
## (Intercept)
## StdDev: 0.0002096
##
## Formula: ~1 | wave %in% GROUP %in% ID
## (Intercept) Residual
## StdDev: 7.215e-08 0.5626
##
## Fixed effects: HAPPIPRMA17 ~ GROUP * wave
## Value Std.Error DF t-value p-value
## (Intercept) 5.364 0.2645 89 20.278 0.0000
## GROUP1 -0.583 0.3838 0 -1.518 NaN
## GROUP2 -1.664 1.0849 89 -1.533 0.1287
## wave 0.100 0.1367 59 0.728 0.4693
## GROUP1:wave 0.466 0.2054 59 2.268 0.0270
## GROUP2:wave 1.034 0.5809 59 1.779 0.0803
## Correlation:
## (Intr) GROUP1 GROUP2 wave GROUP1:
## GROUP1 -0.682
## GROUP2 -0.244 0.166
## wave -0.727 0.504 0.177
## GROUP1:wave 0.499 -0.758 -0.122 -0.660
## GROUP2:wave 0.171 -0.119 -0.722 -0.235 0.155
##
## Standardized Within-Group Residuals:
## Min Q1 Med Q3 Max
## -3.21063 -0.38866 0.03848 0.40951 2.44969
##
## Number of Observations: 155
## Number of Groups:
## ID GROUP %in% ID wave %in% GROUP %in% ID
## 91 92 154