# Loading the dataset that has been reset into a long version
load("/Users/levibrackman/data.test3.RData")
# Load the psych package
library(psych)
items <- grep("PWB[0-9]", names(data.test3), value = TRUE)
items
## [1] "PWB1" "PWB2" "PWB3" "PWB4" "PWB5" "PWB6" "PWB7" "PWB8" "PWB9"
scaleKey <- c(-1, -1, -1, -1, -1, 1, 1, 1, -1)
data.test3[, items] <- apply(data.test3[, items], 2, as.numeric)
data.test3$meanPWB <- scoreItems(scaleKey, items = data.test3[, items])$score
For lme to work GROUP and ID need to be seen as factors
data.test3$GROUP <- as.factor(data.test3$GROUP)
data.test3$ID <- as.factor(data.test3$ID)
Describe the PWB variable by the GROUP variable
describeBy(data.test3$meanPWB, group = data.test3$GROUP)
## INDICES: 0
## vars n mean sd median trimmed mad min max range skew kurtosis se
## A1 1 102 4.57 0.9 4.78 4.63 0.82 2.33 6 3.67 -0.6 -0.39 0.09
## --------------------------------------------------------
## INDICES: 1
## vars n mean sd median trimmed mad min max range skew kurtosis se
## A1 1 91 4.61 0.84 4.78 4.68 0.82 1 6 5 -1.08 2.2 0.09
## --------------------------------------------------------
## INDICES: 2
## vars n mean sd median trimmed mad min max range skew kurtosis se
## A1 1 7 4.17 0.67 4 4.17 0.66 3.33 5.11 1.78 0.17 -1.77 0.25
Create a plot that visualizes PWB variable by the GROUP variable
library(ggplot2)
##
## Attaching package: 'ggplot2'
##
## The following object is masked from 'package:psych':
##
## %+%
qplot(GROUP, meanPWB, data = data.test3, geom = "boxplot")
## Error: stat_boxplot requires the following missing aesthetics: y
# Load the nlme package
library(nlme)
with(data.test3, boxplot(meanPWB ~ 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(meanPWB ~ 1, random = ~1 | ID/GROUP/wave, data = data.test3,
method = "ML")
PWBModel <- lme(meanPWB ~ GROUP, random = ~1 | ID/GROUP/wave, data = data.test3,
method = "ML")
PWB2Model <- lme(meanPWB ~ GROUP + wave, random = ~1 | ID/GROUP/wave, data = data.test3,
method = "ML")
## Error: nlminb problem, convergence error code = 1
## message = singular convergence (7)
fullModel <- lme(meanPWB ~ GROUP * wave, random = ~1 | ID/GROUP/wave, data = data.test3,
method = "ML")
We again the significance of our model by comparing them from the baseline model using the anova() function.
anova(PWBModel, PWB2Model, fullModel)
## Error: object 'PWB2Model' not found
# 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.test3
## AIC BIC logLik
## 436.6 469.5 -208.3
##
## Random effects:
## Formula: ~1 | ID
## (Intercept)
## StdDev: 0.0008627
##
## Formula: ~1 | GROUP %in% ID
## (Intercept)
## StdDev: 0.725
##
## Formula: ~1 | wave %in% GROUP %in% ID
## (Intercept) Residual
## StdDev: 2.626e-09 0.4508
##
## Fixed effects: meanPWB ~ GROUP * wave
## Value Std.Error DF t-value p-value
## (Intercept) 4.378 0.1605 105 27.280 0.0000
## GROUP1 -0.523 0.2295 0 -2.277 NaN
## GROUP2 -1.320 0.5886 88 -2.242 0.0275
## wave 0.067 0.0615 105 1.095 0.2762
## GROUP1:wave 0.335 0.0901 105 3.719 0.0003
## GROUP2:wave 0.616 0.2651 105 2.325 0.0220
## Correlation:
## (Intr) GROUP1 GROUP2 wave GROUP1:
## GROUP1 -0.699
## GROUP2 -0.273 0.191
## wave -0.658 0.460 0.179
## GROUP1:wave 0.450 -0.656 -0.123 -0.683
## GROUP2:wave 0.153 -0.107 -0.689 -0.232 0.158
##
## Standardized Within-Group Residuals:
## Min Q1 Med Q3 Max
## -2.52634 -0.39466 0.03571 0.52461 1.85387
##
## Number of Observations: 200
## Number of Groups:
## ID GROUP %in% ID wave %in% GROUP %in% ID
## 90 91 199