# 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), value = TRUE)
scaleKey <- c(1, 1, 1, 1, 1, -1, 1, 1)
data.test$meanAPSI <- scoreItems(scaleKey, items = data.test[, items], delete = FAAPSIE)$score
## Error: only defined on a data frame with all numeric variables
# Creating a new variable that is the mean of all positive purpose Sense of
# Identity questions
data.test$APSI <- apply(data.test[, c("APSI1", "APSI2", "APSI3", "APSI4", "APSI5",
"APSI6", "APSI7", "APSI8")], 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)
Describe the APSI variable by the GROUP variable
describeBy(data.test$APSI, group = data.test$GROUP)
## group: 0
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 80 3.83 0.45 3.88 3.85 0.37 2.5 5 2.5 -0.46 0.52 0.05
## --------------------------------------------------------
## group: 1
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 70 3.83 0.54 3.94 3.89 0.46 1.62 4.5 2.88 -1.39 2.71 0.06
## --------------------------------------------------------
## group: 2
## vars n mean sd median trimmed mad min max range skew kurtosis se
## 1 1 5 3.77 0.41 3.62 3.77 0.37 3.38 4.38 1 0.41 -1.83 0.18
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, APSI, data = data.test, geom = "boxplot")
# Load the nlme package
library(nlme)
with(data.test, boxplot(APSI ~ 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(APSI ~ 1, random = ~1 | ID/GROUP/wave, data = data.test, method = "ML")
## Error: nlminb problem, convergence error code = 1
## message = singular convergence (7)
APSIModel <- lme(APSI ~ GROUP, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
APSI2Model <- lme(APSI ~ GROUP + wave, random = ~1 | ID/GROUP/wave, data = data.test,
method = "ML")
fullModel <- lme(APSI ~ 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 205.9 227.2 -95.94
## APSI2Model 2 8 197.0 221.4 -90.52 1 vs 2 10.84 1e-03
## fullModel 3 10 185.8 216.3 -82.91 2 vs 3 15.22 5e-04
# 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
## 185.8 216.3 -82.91
##
## Random effects:
## Formula: ~1 | ID
## (Intercept)
## StdDev: 0.4072
##
## Formula: ~1 | GROUP %in% ID
## (Intercept)
## StdDev: 0.000178
##
## Formula: ~1 | wave %in% GROUP %in% ID
## (Intercept) Residual
## StdDev: 7.605e-08 0.2552
##
## Fixed effects: APSI ~ GROUP * wave
## Value Std.Error DF t-value p-value
## (Intercept) 3.817 0.1099 89 34.75 0.0000
## GROUP1 -0.513 0.1603 0 -3.20 NaN
## GROUP2 -0.407 0.4493 89 -0.90 0.3680
## wave -0.003 0.0616 59 -0.06 0.9562
## GROUP1:wave 0.377 0.0924 59 4.08 0.0001
## GROUP2:wave 0.259 0.2614 59 0.99 0.3254
## Correlation:
## (Intr) GROUP1 GROUP2 wave GROUP1:
## GROUP1 -0.684
## GROUP2 -0.245 0.167
## wave -0.789 0.541 0.193
## GROUP1:wave 0.535 -0.808 -0.131 -0.661
## GROUP2:wave 0.186 -0.128 -0.787 -0.236 0.156
##
## Standardized Within-Group Residuals:
## Min Q1 Med Q3 Max
## -2.31725 -0.42893 0.03373 0.46972 1.60768
##
## Number of Observations: 155
## Number of Groups:
## ID GROUP %in% ID wave %in% GROUP %in% ID
## 91 92 154