# 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 MLQ
# questions
data.test$MLQP <- apply(data.test[, c("MLQ1", "MLQ4", "MLQ5", "MLQ6")], 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 MLQ variable by the GROUP variable
describeBy(data.test$MLQP, group = data.test$GROUP)
## group: 0
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 80 4.77 1.19 4.75 4.8 1.11 1.5 7 5.5 -0.25 -0.21 0.13
## --------------------------------------------------------
## group: 1
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 70 5 1.47 5 5.1 1.48 2 7 5 -0.33 -0.91 0.18
## --------------------------------------------------------
## group: 2
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 5 4.55 1.45 3.75 4.55 0.74 3.25 6.25 3 0.27 -2.22 0.65
Create a plot that visualizes MLQ variable by the GROUP variable
library(ggplot2)
##
## Attaching package: 'ggplot2'
##
## The following object is masked from 'package:psych':
##
## %+%
qplot(GROUP, MLQP, data = data.test, geom = "boxplot")
# Load the nlme package
library(nlme)
p <- ggplot(data.test, aes(GROUP, MLQP))
p + geom_boxplot(aes(fill = wave))
## Error: 'x' and 'units' must have length > 0
Graphing the Two-Way Interaction, although it seems not to do what it is supposed to do (not sure why)!
# Load the nlme package
library(nlme)
I am not sure if I am doing this right
baseline <- lme(MLQP ~ 1, random = ~1 | ID/GROUP/wave, data = data.test, method = "ML")
MLQPModel <- lme(MLQP ~ GROUP, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
MLQP2Model <- lme(MLQP ~ GROUP + wave, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
fullModel <- lme(MLQP ~ 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, MLQPModel, MLQP2Model, fullModel)
## Model df AIC BIC logLik Test L.Ratio p-value
## baseline 1 5 503.7 518.9 -246.8
## MLQPModel 2 7 506.8 528.1 -246.4 1 vs 2 0.91 0.6345
## MLQP2Model 3 8 490.0 514.3 -237.0 2 vs 3 18.77 <.0001
## fullModel 4 10 473.4 503.9 -226.7 3 vs 4 20.54 <.0001
summary(fullModel)
## Warning: NaNs produced
## Linear mixed-effects model fit by maximum likelihood
## Data: data.test
## AIC BIC logLik
## 473.4 503.9 -226.7
##
## Random effects:
## Formula: ~1 | ID
## (Intercept)
## StdDev: 1.115
##
## Formula: ~1 | GROUP %in% ID
## (Intercept)
## StdDev: 0.0001745
##
## Formula: ~1 | wave %in% GROUP %in% ID
## (Intercept) Residual
## StdDev: 0.4869 0.354
##
## Fixed effects: MLQP ~ GROUP * wave
## Value Std.Error DF t-value p-value
## (Intercept) 4.563 0.2726 89 16.741 0.0000
## GROUP1 -1.182 0.3965 0 -2.981 NaN
## GROUP2 -0.449 1.1160 89 -0.402 0.6886
## wave 0.090 0.1466 59 0.611 0.5436
## GROUP1:wave 1.044 0.2200 59 4.747 0.0000
## GROUP2:wave 0.129 0.6199 59 0.209 0.8353
## Correlation:
## (Intr) GROUP1 GROUP2 wave GROUP1:
## GROUP1 -0.683
## GROUP2 -0.244 0.167
## wave -0.751 0.517 0.183
## GROUP1:wave 0.514 -0.776 -0.126 -0.663
## GROUP2:wave 0.178 -0.122 -0.749 -0.236 0.157
##
## Standardized Within-Group Residuals:
## Min Q1 Med Q3 Max
## -1.396636 -0.255215 -0.003275 0.276056 1.158872
##
## Number of Observations: 155
## Number of Groups:
## ID GROUP %in% ID wave %in% GROUP %in% ID
## 91 92 154