# Loading the dataset that has been reset into a long version
load("/Users/levibrackman/data.test.RData")
# Load the psych package
library(psych)
items <- grep("APSI[0-8]", names(data.test), value = TRUE)
items
## [1] "APSI1" "APSI2" "APSI3" "APSI4" "APSI5" "APSI6" "APSI7" "APSI8"
scaleKey <- c(1, 1, 1, 1, 1, -1, 1, 1)
data.test[, items] <- apply(data.test[, items], 2, as.numeric)
data.test$meanAPSI <- scoreItems(scaleKey, items = data.test[, items])$score
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)
Describe the APSI variable by the GROUP variable
describeBy(data.test$meanAPSI, group = data.test$GROUP)
## INDICES: 0
## vars n mean sd median trimmed mad min max range skew kurtosis
## A1 1 80 3.97 0.66 4.06 4.01 0.56 2.25 5 2.75 -0.56 -0.2
## se
## A1 0.07
## --------------------------------------------------------
## INDICES: 1
## vars n mean sd median trimmed mad min max range skew kurtosis
## A1 1 70 3.99 0.74 4 4.05 0.74 1.62 5 3.38 -0.73 0.25
## se
## A1 0.09
## --------------------------------------------------------
## INDICES: 2
## vars n mean sd median trimmed mad min max range skew kurtosis se
## A1 1 5 3.73 0.5 3.75 3.73 0.56 3.12 4.38 1.25 0.06 -1.91 0.22
Create a plot that visualizes APSI variable by the GROUP variable
library(ggplot2)
##
## Attaching package: 'ggplot2'
##
## The following object is masked from 'package:psych':
##
## %+%
qplot(GROUP, meanAPSI, data = data.test, geom = "boxplot")
## Error: stat_boxplot requires the following missing aesthetics: y
# Load the nlme package
library(nlme)
with(data.test, boxplot(meanAPSI ~ 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(meanAPSI ~ 1, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
APSIModel <- lme(meanAPSI ~ GROUP, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
APSI2Model <- lme(meanAPSI ~ GROUP + wave, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
fullModel <- lme(meanAPSI ~ GROUP * wave, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
We again the significance of our modeAPSI by comparing them from the baseline model using the anova() function.
anova(APSIModel, APSI2Model, fullModel)
## Model df AIC BIC logLik Test L.Ratio p-value
## APSIModel 1 7 305.6 326.9 -145.8
## APSI2Model 2 8 295.1 319.5 -139.6 1 vs 2 12.45 4e-04
## fullModel 3 10 278.3 308.8 -129.2 2 vs 3 20.78 <.0001
# Baseline would ot work for some reason. So it was removed.
summary(fullModel)
## Warning: NaNs produced
## Linear mixed-effects model fit by maximum likelihood
## Data: data.test
## AIC BIC logLik
## 278.3 308.8 -129.2
##
## Random effects:
## Formula: ~1 | ID
## (Intercept)
## StdDev: 0.5561
##
## Formula: ~1 | GROUP %in% ID
## (Intercept)
## StdDev: 0.1869
##
## Formula: ~1 | wave %in% GROUP %in% ID
## (Intercept) Residual
## StdDev: 4.563e-05 0.3225
##
## Fixed effects: meanAPSI ~ GROUP * wave
## Value Std.Error DF t-value p-value
## (Intercept) 3.966 0.1454 89 27.276 0.0000
## GROUP1 -0.733 0.2116 0 -3.462 NaN
## GROUP2 -0.981 0.5939 89 -1.651 0.1022
## wave -0.023 0.0782 59 -0.297 0.7677
## GROUP1:wave 0.566 0.1177 59 4.810 0.0000
## GROUP2:wave 0.538 0.3319 59 1.620 0.1105
## Correlation:
## (Intr) GROUP1 GROUP2 wave GROUP1:
## GROUP1 -0.685
## GROUP2 -0.245 0.168
## wave -0.753 0.519 0.184
## GROUP1:wave 0.508 -0.773 -0.124 -0.661
## GROUP2:wave 0.177 -0.122 -0.754 -0.236 0.156
##
## Standardized Within-Group Residuals:
## Min Q1 Med Q3 Max
## -2.36421 -0.45437 -0.01919 0.46833 1.98595
##
## Number of Observations: 155
## Number of Groups:
## ID GROUP %in% ID wave %in% GROUP %in% ID
## 91 92 154