# Loading the dataset that has been reset into a long version
load("datatest.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: -1
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 62 4.92 1.11 4.88 4.92 1.3 1.5 7 5.5 -0.19 0.07 0.14
## --------------------------------------------------------
## group: 1
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 54 5.19 1.37 5.25 5.29 1.48 2 7 5 -0.42 -0.65 0.19
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)
Compact Model we begin by specifying a baseline model in which the DV, MLQ, is predicted by its overall mean.
baseline <- lme(MLQP ~ 1, random = ~1 | GROUP, data = data.test, method = "ML")
Augmented Model we specify our model of interest, in which MLQ is predicted instead by GROUP, which was repeated within subjects.
MLQModel <- lme(MLQP ~ GROUP, random = ~1 | GROUP, data = data.test, method = "ML")
To assess the significance of our model we compare it to the baseline model. By comparing the models we ask whether GROUP as a predictor is significantly better than the simple mean model (i.e., a better fit). We can do this with the anova() function.
anova(baseline, MLQModel)
## Model df AIC BIC logLik Test L.Ratio p-value
## baseline 1 3 384.2 392.5 -189.1
## MLQModel 2 4 384.8 395.8 -188.4 1 vs 2 1.398 0.2371
The output contains a few indicators of model fit. Generally with AIC (i.e., Akaike information criterion) and BIC (i.e., Bayesian information criterion), the lower the number the better the model, as it implies either a more parsimonious model, a better fit, or both. The likelihood ratio indicates that our MLQPModel is not a better fit for the data than our baseline model (p > 0.05). Therefore, the GROUP had a no impact on the MLQ of the participants.
summary(MLQModel)
## Warning: NaNs produced
## Linear mixed-effects model fit by maximum likelihood
## Data: data.test
## AIC BIC logLik
## 384.8 395.8 -188.4
##
## Random effects:
## Formula: ~1 | GROUP
## (Intercept) Residual
## StdDev: 3.197e-05 1.228
##
## Fixed effects: MLQP ~ GROUP
## Value Std.Error DF t-value p-value
## (Intercept) 4.923 0.1573 114 31.297 0
## GROUP1 0.271 0.2306 0 1.176 NaN
## Correlation:
## (Intr)
## GROUP1 -0.682
##
## Standardized Within-Group Residuals:
## Min Q1 Med Q3 Max
## -2.78793 -0.75199 0.04524 0.71979 1.69115
##
## Number of Observations: 116
## Number of Groups: 2
library(multcomp)
## Loading required package: mvtnorm
## Loading required package: survival
## Loading required package: splines
## Loading required package: TH.data
posthoc <- glht(MLQModel, linfct = mcp(GROUP = "Tukey"))
summary(posthoc)
##
## Simultaneous Tests for General Linear Hypotheses
##
## Multiple Comparisons of Means: Tukey Contrasts
##
##
## Fit: lme.formula(fixed = MLQP ~ GROUP, data = data.test, random = ~1 |
## GROUP, method = "ML")
##
## Linear Hypotheses:
## Estimate Std. Error z value Pr(>|z|)
## 1 - -1 == 0 0.271 0.229 1.19 0.24
## (Adjusted p values reported -- single-step method)
library(WRS)
## Loading required package: MASS
## Loading required package: akima
## Loading required package: robustbase
##
## Attaching package: 'robustbase'
##
## The following object is masked from 'package:survival':
##
## heart
##
## The following object is masked from 'package:psych':
##
## cushny
##
##
## Attaching package: 'WRS'
##
## The following object is masked from 'package:robustbase':
##
## hard.rejection
##
## The following object is masked from 'package:MASS':
##
## ltsreg
##
## The following objects are masked from 'package:psych':
##
## omega, skew
##
## The following object is masked from 'package:stats':
##
## ecdf
##
## The following object is masked from 'package:grDevices':
##
## bmp
rmanova(data.test)
## [1] "The number of groups to be compared is"
## [1] 93
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Warning: argument is not numeric or logical: returning NA
## Error: non-numeric argument to binary operator
# These seem not to work
rmmcp(data.test)
## Error: subscript out of bounds
# These seem not to work
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, MLQModel, MLQP2Model, fullModel)
## Model df AIC BIC logLik Test L.Ratio p-value
## baseline 1 5 370.7 384.4 -180.3
## MLQModel 2 4 384.8 395.8 -188.4 1 vs 2 16.15 1e-04
## MLQP2Model 3 7 356.0 375.3 -171.0 2 vs 3 34.83 <.0001
## fullModel 4 8 342.7 364.8 -163.4 3 vs 4 15.28 1e-04
summary(fullModel)
## Warning: NaNs produced
## Linear mixed-effects model fit by maximum likelihood
## Data: data.test
## AIC BIC logLik
## 342.7 364.8 -163.4
##
## Random effects:
## Formula: ~1 | ID
## (Intercept)
## StdDev: 0.7003
##
## Formula: ~1 | GROUP %in% ID
## (Intercept)
## StdDev: 0.7364
##
## Formula: ~1 | wave %in% GROUP %in% ID
## (Intercept) Residual
## StdDev: 0.521 0.2634
##
## Fixed effects: MLQP ~ GROUP * wave
## Value Std.Error DF t-value p-value
## (Intercept) 4.652 0.2949 67 15.778 0.0000
## GROUP1 -1.130 0.4306 0 -2.623 NaN
## wave 0.139 0.1615 45 0.859 0.3951
## GROUP1:wave 0.995 0.2403 45 4.143 0.0001
## Correlation:
## (Intr) GROUP1 wave
## GROUP1 -0.684
## wave -0.768 0.526
## GROUP1:wave 0.517 -0.774 -0.670
##
## Standardized Within-Group Residuals:
## Min Q1 Med Q3 Max
## -0.80018 -0.21290 -0.02463 0.20221 0.64168
##
## Number of Observations: 116
## Number of Groups:
## ID GROUP %in% ID wave %in% GROUP %in% ID
## 68 69 116