The structure of affect and predictability of fatigue within and between persons
We report results from an experience sampling study (N=318, 91 men, 227 women) where a questionnaire on affect and health behaviour (including 2 positive and 4 negative affect items, and one question on fatigue), was presented to the participants during a period of 7 days (5 daily prompts). A two-level structural equation model was fitted to the data, containing two factors (corresponding to positive and negative affect) at both levels; fatigue was modelled as dependent on both positive and negative affect. This model fit the data reasonably well (CFI = 0.948); constraining the factor loadings to be equal across levels made the fit significantly worse (p < 0.001; change in CFI = 0.007); constraining the correlations between latent factors and fatigue to be equal resulted in even worse fit (p < 0.001; change in CFI as compared to ‘equal loadings’ model = 0.015). The most significant differences between the within- and between-persons structures were: (1) correlation between latent factors of positive and negative affect was -0.6 within individuals, and -0.3 between individuals; (2) within individuals, fatigue had small significant correlations with both positive (standardized estimate: -0.21) and negative (0.18) affect factors, whereas at the between-individuals level, it depended only on negative affect (0.78) and had a negligible correlation with positive affect (0.01, p>0.7). In addition to these average results, there was wide variation in within-individual correlations. For example, we computed the average correlation between positive and negative affect indicators for each person; the median correlation was -0.21, with lower and upper quartile being, respectively, -0.35 and -0.07. The average correlation between negative affect items and fatigue was positive for 69% of the respondents, with the median being 0.28 (quartiles: -0.03; 0.29). The average correlation between positive affect items and fatigue was positive for 80% of the respondents, with the median being -0.21 (quartiles: -0.39; -0.03). These results show systematic differences between within- and between-persons structure of affect, as well as considerable variation in within-person correlations.
The structure of affect and predictability of fatigue within and between persons
We report results from an experience sampling study (N=318; 71% women) where a questionnaire on affect and health behaviour (including 2 positive and 4 negative affect items, and one question on fatigue), was presented to the participants during a period of 7 days (5 daily prompts). A two-level structural equation model was fitted to the data, containing two factors (positive and negative affect) at both levels; fatigue was modelled as dependent on both positive and negative affect. This model fit the data reasonably well (CFI = 0.948); constraining the factor loadings equal across levels worsened the fit significantly (p < 0.001; change in CFI = 0.007); constraining the correlations between latent factors and fatigue equal resulted in even worse fit (p < 0.001; change in CFI as compared to previous model = 0.015). The most significant differences between the within- and between-persons structures were: (1) correlation between latent factors of positive and negative affect was -0.6 within individuals, and -0.3 between individuals; (2) within individuals, fatigue had small significant correlations with both positive (standardized estimate: -0.21) and negative (0.18) affect factors, whereas at the between-individuals level, it depended only on negative affect (0.78) and had a negligible correlation with positive affect (0.01, p>0.7). In addition to these average results, there was wide variation in within-individual correlations. For example, we computed the average correlation between positive and negative affect indicators for each person; the median correlation was -0.21 (quartiles: -0.35; -0.07). The average correlation between negative affect items and fatigue was positive for 69% of the respondents (quartiles: -0.03; 0.29). The average correlation between positive affect items and fatigue was positive for 80% of the respondents (quartiles: -0.39; -0.03). These results show systematic differences between within- and between-persons structure of affect, and considerable variation in within-person correlations.
## This code was run separately and the output is loaded to markdown file
######################### functions for formatting the results etc
dosplitit <- function(x, skip.int = TRUE, skip.var=TRUE){
x$label<-NULL
x <- x[, c(1,2,3,4,7)]
N <- nrow(x)
N2 <- N/2
x1 <- x[1:N2,]
x2 <- x[(N2+1):N, -(1:3)]
rownames(x1) <- rownames(x2) <- NULL
res <- cbind(x1, " " = " ", x2)
names(res)[4:8] <- c("b[within]", "p[within]", " ", "b[btw]", "p[btw]")
res[, c(4, 7)] <- round(res[, c(4,7)], 3)
res[, c(5,8)] <- round(res[, c(5,8)], 6)
if(skip.int) res <- subset(res, op!="~1")
if(skip.var) res <- subset(res, lhs != rhs)
res
}
getfit <- function(m){
res <- fitmeasures(m)[c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "srmr")]
data.frame(param = names(res), value=round(res,3))
}
findit <- function(x){
pp <- x[1,2]
pn <- mean(x[1:2, 3:6])
# pn2 <- mean(x[1:2, 3:7])
pf <- mean(x[1:2, 7])
nn <- (x[3:6,3:6])|>(\(x) mean(x[lower.tri(x)]))()
# nn2 <- (x[3:7,3:7])|>(\(x) mean(x[lower.tri(x)]))()
nf <- mean(x[ 3:6, 7])
corf <- x[1:6, 7]
names(corf)<- paste0("f_", names(corf))
c(pp=pp, pn=pn, pf=pf, nn=nn, nf=nf, corf, eigen = eigen(x)$values[1:3])
}
# autocorrelations, break@day
findit2 <- function(x, labs, ALL=FALSE){
nana <- as.data.frame(as.list(setNames(rep(NA, 7), labs)))
xs <- lapply(split(x[,labs], x['day']), rbind, nana)
xn <- do.call(rbind, xs)
xn1 <- rbind(xn, nana)
xn2 <- rbind(nana, xn)
# flag <- any(mapply(function(x,y) any(sapply(na.omit(data.frame(x,y)), sd)==0), xn1, xn2, SIMPLIFY = TRUE))
# sds <- c(sapply(xn1, sd, na.rm=TRUE), sapply(xn2, sd, na.rm=TRUE))
# browser()
res <- cor(xn1, xn2, use="pair")
if(ALL) res else diag(res) ## autocorrelation1 // brk @ day
}
# autocorrelations, crossover@day
findit3 <- function(x, labs, ALL=FALSE){
nana <- as.data.frame(as.list(setNames(rep(NA, 7), labs)))
xs <- lapply(split(x[,labs], x['day']), function(x) {
if(nrow(x) <= 3) rbind(nana, nana) else x[c(1, nrow(x)), ]
})
xn <- do.call(rbind, xs)
xn1 <- rbind(xn, nana)
xn2 <- rbind(nana, xn)
# flag <- any(mapply(function(x,y) any(sapply(na.omit(data.frame(x,y)), sd)==0), xn1, xn2, SIMPLIFY = TRUE))
# sds <- c(sapply(xn1, sd, na.rm=TRUE), sapply(xn2, sd, na.rm=TRUE))
# browser()
res <- cor(xn1, xn2, use="pair")
if(ALL) res else diag(res) ## autocorrelation1 // brk @ day
}
L <- Load("../../../new/RVTU- L123 - 2022-11-12.rda")
if(FALSE){
zerosd <- names(which(sapply(split(Dx, Dx$sid), function(x) any(sapply(x[, labs], sd, na.rm=TRUE)==0))))
Dxnz <- subset(Dx, !sid %in% zerosd)
Dxnzs <- split(Dxnz[, labs], Dxnz$sid)
## all lagged correlations
lapply(Dxnzs, findit2, labs=labs, ALL=TRUE)
## diag of lagged cors
lagz <- as.data.frame(t(sapply(Dxnzs, findit2, labs=labs)))
lapply(Dxnzs, findit3, labs=labs, ALL=TRUE)
lagD <- as.data.frame(t(sapply(Dxnzs, findit3, labs=labs)))
Ls <- L[match(rownames(lagD), L$RR.SID),]
cor.test(Ls$L1EEK.dep, lagz$anger)
cor.test(Ls$L1POS1, I(with(lagz, worry + stress + sadness)))
cor.test(Ls$L1EEK.dep, lagD$serenity)
cor(Ls$L1EEK.dep, sapply(wics2, atanh), use="pair")
cor.test(Ls$L1EEK.dep, wics2$nf)
}
############################################################
## SEM models
############################################################
model1 <- '
level: 1
pos =~ serenity + joy
neg =~ worry + sadness + anger + stress
fatigue ~ pos + neg
level: 2
pos =~ serenity + joy
neg =~ worry + sadness + anger + stress
fatigue ~ pos+ neg
'
fit1 <- cfa(model1, Dx1, cluster = "sid", std.lv=TRUE)
fit1c <- standardizedsolution(fit1)
model2 <- '
level: 1
pos =~ p1*serenity + p2*joy
neg =~ n1*worry + n2*sadness + n3*anger + n4*stress
fatigue ~ pos + neg
level: 2
pos =~ p1*serenity + p2*joy
neg =~ n1*worry + n2*sadness + n3*anger + n4*stress
fatigue ~ pos + neg
'
fit2 <- cfa(model2, Dx1, cluster = "sid", std.lv=TRUE)
fit2c <- standardizedsolution(fit2)
model3 <- '
level: 1
pos =~ p1*serenity + p2*joy
neg =~ n1*worry + n2*sadness + n3*anger + n4*stress
fatigue ~ fp*pos + fn*neg
neg ~~ np*pos
level: 2
pos =~ p1*serenity + p2*joy
neg =~ n1*worry + n2*sadness + n3*anger + n4*stress
fatigue ~ fp*pos + fn*neg
neg ~~ np*pos
'
fit3 <- cfa(model3, Dx1, cluster = "sid", std.lv=TRUE)
fit3c <- standardizedsolution(fit3)
ahv <- c("affect_high_pos", "affect_low_pos", "affect_high_neg", "affect_low_neg", "affect_high_neg1",
"affect_high_neg2", "fatigue")
labs <- c("joy", "serenity", "worry", "sadness", "anger", "stress", "fatigue")
labs2 <- c("rõõmu, elevust", "rahulolu, lõõgastust", "muret, ärevust", "kurbust, pettumust", "ärritust, viha", "pinget, stressi", "väsimust")
load("D4ambulatory.rda")
load("rvtu-lx.rda")
Lx$RR.Vanus <- as.numeric(Lx$RR.Vanus)
Dx <- setNames(as.data.frame(D[, c("sid", "katsepaev", "signaal_jrkr", ahv)]), c("sid", "day", "no", labs))
aggregate(Dx[, -(1:3)], Dx['sid'], sd, na.rm=TRUE) -> dxa
dxa[!(rowSums(!is.na(dxa[,-1]))) %in% 7,1] -> incomplete
aggregate(Dx[,-(1:3)], Dx['sid'], function(x) sum(!is.na(x))) -> dxb
dxb$sok <- rowSums(dxb[,-1]>9)
incomplete <- c(incomplete, subset(dxb, !sok)$sid)
Dx <- subset(Dx, !sid %in% incomplete)
Dx$day <- factor(Dx$day)
length(unique(Dx$sid))
## [1] 321
addbs <- function(x, amount=0.05){
doit <- function(a) a + rnorm(length(a), 0, amount)
isit <- sapply(x, is.numeric)
x[, isit] <- lapply(x[, isit], doit)
x
}
set.seed(1)
Dx1 <- addbs(Dx)
source("multilevel_sem.R")
## Loading required package: ltm
## Warning: package 'ltm' was built under R version 4.3.2
## Loading required package: msm
## Warning: package 'msm' was built under R version 4.3.2
## Loading required package: polycor
## Warning: package 'polycor' was built under R version 4.3.2
## Warning in lav_object_post_check(object): lavaan WARNING: some estimated ov
## variances are negative
## Warning in lav_object_post_check(object): lavaan WARNING: some estimated ov
## variances are negative
semPaths(fit1, intercepts=FALSE)
qflextable(dosplitit(fit1c))
lhs | op | rhs | b[within] | p[within] |
| b[btw] | p[btw] |
|---|---|---|---|---|---|---|---|
pos | =~ | serenity | 0.734 | 0 |
| 1.137 | 0.000000 |
pos | =~ | joy | 0.650 | 0 |
| 0.741 | 0.000000 |
neg | =~ | worry | 0.616 | 0 |
| 0.945 | 0.000000 |
neg | =~ | sadness | 0.591 | 0 |
| 0.874 | 0.000000 |
neg | =~ | anger | 0.583 | 0 |
| 0.818 | 0.000000 |
neg | =~ | stress | 0.653 | 0 |
| 0.931 | 0.000000 |
fatigue | ~ | pos | -0.208 | 0 |
| 0.011 | 0.775064 |
fatigue | ~ | neg | 0.178 | 0 |
| 0.761 | 0.000000 |
pos | ~~ | neg | -0.612 | 0 |
| -0.310 | 0.000000 |
qflextable(getfit(fit1))
param | value |
|---|---|
chisq | 649.053 |
df | 24.000 |
pvalue | 0.000 |
cfi | 0.948 |
tli | 0.909 |
rmsea | 0.056 |
srmr | 0.079 |
qflextable(dosplitit(fit2c))
lhs | op | rhs | b[within] | p[within] |
| b[btw] | p[btw] |
|---|---|---|---|---|---|---|---|
pos | =~ | serenity | 0.745 | 0 |
| 1.038 | 0.000000 |
pos | =~ | joy | 0.656 | 0 |
| 0.752 | 0.000000 |
neg | =~ | worry | 0.631 | 0 |
| 0.900 | 0.000000 |
neg | =~ | sadness | 0.603 | 0 |
| 0.799 | 0.000000 |
neg | =~ | anger | 0.570 | 0 |
| 0.800 | 0.000000 |
neg | =~ | stress | 0.669 | 0 |
| 0.869 | 0.000000 |
fatigue | ~ | pos | -0.208 | 0 |
| -0.018 | 0.655462 |
fatigue | ~ | neg | 0.180 | 0 |
| 0.687 | 0.000000 |
pos | ~~ | neg | -0.616 | 0 |
| -0.262 | 0.000000 |
qflextable(getfit(fit2))
param | value |
|---|---|
chisq | 738.426 |
df | 30.000 |
pvalue | 0.000 |
cfi | 0.941 |
tli | 0.917 |
rmsea | 0.053 |
srmr | 0.114 |
anova(fit1, fit2)
##
## Chi-Squared Difference Test
##
## Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
## fit1 24 175447 175721 649.05
## fit2 30 175525 175757 738.43 89.373 0.040767 6 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Difference in CFI: 0.007
qflextable(dosplitit(fit3c))
lhs | op | rhs | b[within] | p[within] |
| b[btw] | p[btw] |
|---|---|---|---|---|---|---|---|
pos | =~ | serenity | 0.742 | 0 |
| 0.968 | 0 |
pos | =~ | joy | 0.664 | 0 |
| 0.771 | 0 |
neg | =~ | worry | 0.631 | 0 |
| 0.901 | 0 |
neg | =~ | sadness | 0.605 | 0 |
| 0.796 | 0 |
neg | =~ | anger | 0.571 | 0 |
| 0.795 | 0 |
neg | =~ | stress | 0.668 | 0 |
| 0.871 | 0 |
fatigue | ~ | pos | -0.159 | 0 |
| -0.195 | 0 |
fatigue | ~ | neg | 0.250 | 0 |
| 0.306 | 0 |
pos | ~~ | neg | -0.568 | 0 |
| -0.568 | 0 |
qflextable(getfit(fit3))
param | value |
|---|---|
chisq | 917.911 |
df | 33.000 |
pvalue | 0.000 |
cfi | 0.926 |
tli | 0.906 |
rmsea | 0.057 |
srmr | 0.203 |
anova(fit2, fit3)
##
## Chi-Squared Difference Test
##
## Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
## fit2 30 175525 175757 738.43
## fit3 33 175698 175909 917.91 179.49 0.083881 3 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Difference in CFI: 0.015
Dx1s <- split(Dx1, Dx1['sid'])
iccjoy1<- sapply(Dx1s, function(x) {iccMixed("joy", "day", x)$ICC[1]})
iccjoy2<- sapply(Dx1s, \(x) ICC1(aov(joy~day, x)))
iccsad1<- sapply(Dx1s, function(x) {iccMixed("sadness", "day", x)$ICC[1]})
iccanger1 <- sapply(Dx1s, function(x) {iccMixed("anger", "day", x)$ICC[1]})
iccstress1 <- sapply(Dx1s, function(x) {iccMixed("stress", "day", x)$ICC[1]})
iccjoy2<- sapply(Dx1s, \(x) ICC1(aov(joy~day, x)))
hist(iccjoy1, main="", xlab="Day-level clustering of joy (ICC)")
wics <- t(sapply(Dx1s, function(x) findit(cor(x[, labs], use="com")))) |> as.data.frame()
# wics2 <- t(sapply(Dxnzs, function(x) findit(cor(x[, labs], use="com")))) |> as.data.frame()
rownames(wics) <- NULL
hist(wics$pp, main="")
hist(wics$nn, main="")
hist(wics$pn, main="", xlab="Averaged within-individual r")
cor.test(wics$pp, wics$nn)
##
## Pearson's product-moment correlation
##
## data: wics$pp and wics$nn
## t = 4.0411, df = 319, p-value = 6.674e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.1139622 0.3223596
## sample estimates:
## cor
## 0.2206781
lpa1 <- estimate_profiles(wics[, c("pp", "pn", "pf", "nn", "nf", "eigen1")],2)
lpa1
## tidyLPA analysis using mclust:
##
## Model Classes AIC BIC Entropy prob_min prob_max n_min n_max BLRT_p
## 1 2 154.13 225.79 0.90 0.94 0.98 0.28 0.72 0.01
indcorrs <- do.call(rbind, tapply(Dx1[, -(1:3)], Dx1$sid, \(x) {foo <- cor(x, use="com"); bar <- outer(names(x), names(x), paste, sep=","); bar <- bar[lower.tri(bar)]; setNames(foo[lower.tri(foo)], bar)}))
lpa1d <- get_data(lpa1)
# just in case check
stopifnot(cor(lpa1d$pp, indcorrs[, "serenity,joy"])>0.99)
lpa1d$sid <- rownames(indcorrs)
profile1 <- subset(lpa1d, Class %in% 1)$sid
profile2 <- subset(lpa1d, Class %in% 2)$sid
lpa1d <- cbind(lpa1d, Lx[match(lpa1d$sid, Lx$RR.SID),])
plot_profiles(lpa1)
glm1 <- glm(I(Class-1) ~ scale(L2EEK.dep) + RR.Sugu + RR.Vanus, family = binomial, data=lpa1d)
glm1 |> summary()
##
## Call:
## glm(formula = I(Class - 1) ~ scale(L2EEK.dep) + RR.Sugu + RR.Vanus,
## family = binomial, data = lpa1d)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.21413 0.78864 -0.272 0.78599
## scale(L2EEK.dep) 0.45121 0.15274 2.954 0.00314 **
## RR.Sugu 0.25624 0.34810 0.736 0.46167
## RR.Vanus -0.02893 0.01102 -2.625 0.00868 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 280.36 on 239 degrees of freedom
## Residual deviance: 256.37 on 236 degrees of freedom
## (81 observations deleted due to missingness)
## AIC: 264.37
##
## Number of Fisher Scoring iterations: 4
exp(coef(glm1))
## (Intercept) scale(L2EEK.dep) RR.Sugu RR.Vanus
## 0.8072404 1.5702128 1.2920624 0.9714872
glm2 <- glm(I(Class-1) ~ scale(L2EEK.anx) + RR.Sugu + RR.Vanus, family = binomial, data=lpa1d)
glm2 |> summary()
##
## Call:
## glm(formula = I(Class - 1) ~ scale(L2EEK.anx) + RR.Sugu + RR.Vanus,
## family = binomial, data = lpa1d)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.23406 0.78510 -0.298 0.76561
## scale(L2EEK.anx) 0.51235 0.15658 3.272 0.00107 **
## RR.Sugu 0.21738 0.34765 0.625 0.53179
## RR.Vanus -0.02701 0.01093 -2.470 0.01350 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 282.96 on 240 degrees of freedom
## Residual deviance: 257.65 on 237 degrees of freedom
## (80 observations deleted due to missingness)
## AIC: 265.65
##
## Number of Fisher Scoring iterations: 4
exp(coef(glm2))
## (Intercept) scale(L2EEK.anx) RR.Sugu RR.Vanus
## 0.7913133 1.6692085 1.2428123 0.9733547
glm3 <- glm(I(Class-1) ~ scale(L2EEK.ast) + RR.Sugu + RR.Vanus, family = binomial, data=lpa1d)
glm3 |> summary()
##
## Call:
## glm(formula = I(Class - 1) ~ scale(L2EEK.ast) + RR.Sugu + RR.Vanus,
## family = binomial, data = lpa1d)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.16832 0.80367 -0.209 0.834109
## scale(L2EEK.ast) 0.59338 0.16165 3.671 0.000242 ***
## RR.Sugu 0.19544 0.35670 0.548 0.583753
## RR.Vanus -0.02875 0.01092 -2.633 0.008468 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 281.62 on 241 degrees of freedom
## Residual deviance: 253.00 on 238 degrees of freedom
## (79 observations deleted due to missingness)
## AIC: 261
##
## Number of Fisher Scoring iterations: 4
exp(coef(glm3))
## (Intercept) scale(L2EEK.ast) RR.Sugu RR.Vanus
## 0.8450854 1.8100892 1.2158448 0.9716563
fit11 <- cfa(model1, subset(Dx1, sid %in% profile1), cluster = "sid", std.lv=TRUE)
## Warning in lav_object_post_check(object): lavaan WARNING: some estimated ov
## variances are negative
qflextable(dosplitit(standardizedsolution(fit11)))
lhs | op | rhs | b[within] | p[within] |
| b[btw] | p[btw] |
|---|---|---|---|---|---|---|---|
pos | =~ | serenity | 0.655 | 0.000000 |
| 1.126 | 0.000000 |
pos | =~ | joy | 0.605 | 0.000000 |
| 0.749 | 0.000000 |
neg | =~ | worry | 0.541 | 0.000000 |
| 0.932 | 0.000000 |
neg | =~ | sadness | 0.418 | 0.000000 |
| 0.836 | 0.000000 |
neg | =~ | anger | 0.426 | 0.000000 |
| 0.800 | 0.000000 |
neg | =~ | stress | 0.536 | 0.000000 |
| 0.925 | 0.000000 |
fatigue | ~ | pos | -0.209 | 0.000000 |
| 0.000 | 0.997581 |
fatigue | ~ | neg | 0.047 | 0.038657 |
| 0.762 | 0.000000 |
pos | ~~ | neg | -0.481 | 0.000000 |
| -0.312 | 0.000007 |
qflextable(getfit(fit11))
param | value |
|---|---|
chisq | 377.440 |
df | 24.000 |
pvalue | 0.000 |
cfi | 0.924 |
tli | 0.868 |
rmsea | 0.049 |
srmr | 0.083 |
fit12 <- cfa(model1, subset(Dx1, sid %in% profile2), cluster = "sid", std.lv=TRUE)
qflextable(dosplitit(standardizedsolution(fit12)))
lhs | op | rhs | b[within] | p[within] |
| b[btw] | p[btw] |
|---|---|---|---|---|---|---|---|
pos | =~ | serenity | 0.870 | 0 |
| 0.925 | 0.000000 |
pos | =~ | joy | 0.761 | 0 |
| 0.930 | 0.000000 |
neg | =~ | worry | 0.736 | 0 |
| 0.945 | 0.000000 |
neg | =~ | sadness | 0.740 | 0 |
| 0.906 | 0.000000 |
neg | =~ | anger | 0.732 | 0 |
| 0.810 | 0.000000 |
neg | =~ | stress | 0.811 | 0 |
| 0.936 | 0.000000 |
fatigue | ~ | pos | -0.213 | 0 |
| -0.012 | 0.913833 |
fatigue | ~ | neg | 0.337 | 0 |
| 0.674 | 0.000000 |
pos | ~~ | neg | -0.752 | 0 |
| -0.507 | 0.000000 |
qflextable(getfit(fit12))
param | value |
|---|---|
chisq | 302.886 |
df | 24.000 |
pvalue | 0.000 |
cfi | 0.961 |
tli | 0.932 |
rmsea | 0.071 |
srmr | 0.085 |
Chung, J. M., Harari, G. M., & Denissen, J. J. A. (2022). Investigating the within-person structure and correlates of emotional experiences in everyday life using an emotion family approach. Journal of Personality and Social Psychology, 122(6), 1146–1189. https://doi.org/10.1037/pspp0000419
We examined self-reported emotional experiences in three short-term intensive longitudinal studies of Mechanical Turk workers in the United States (Ns = 55; 107; 229). We used an emotion family approach based on lexical studies of emotion knowledge to investigate the within-person structure and correlates of everyday emotional experiences and began developing the Facets of Emotional Experiences in Everyday Life Scale (FEEELS). We conducted factor analyses on the within-person level using six emotion families to guide our approach (N observations = 1,375; 6,582; 11,029). We observed that responses to a range of emotion terms “in the past hour” could be summarized into 26 factors, 19 of which showed evidence of replication. Some factors included descriptors corresponding to discrete emotions (e.g., content, serene, calm, peaceful comprised a Contentment factor), and some factors included clusters of related emotions (e.g., compassionate, adoring, caring, loving comprised a Love factor). Facets of emotional experiences were associated with momentary self-views and situational characteristics. For example, Authentic Pride and Gratitude experiences were both characterized by greater momentary self-esteem. Authentic Pride was also associated with being in situations involving productivity, thinking deeply, and being with weak ties, while Gratitude was linked to acting sociably and being around close others. The assessment of facets of emotional experience expands our view of emotions and shows promise for better understanding personality dynamics in everyday life. Research is needed to examine the generalizability of our results to other samples and to further assess the FEEELS’ measurement properties in studies of daily life. (PsycInfo Database Record (c) 2022 APA, all rights reserved) Copyright
Jacobson, N. C., Evey, K. J., Wright, A. G. C., & Newman, M. G. (2023). Integration of discrete and global structures of affect across three large samples: Specific emotions within-persons and global affect between-persons. Emotion, 23(4), 1202–1211. https://doi.org/10.1037/emo0001022
Integration of discrete and global structures of affect across three large samples: Specific emotions within-persons and global affect between-persons.
Researchers have held a long-standing debate regarding the validity of discrete emotions versus global affect. The current article tries to integrate these perspectives by explicitly examining the structures of state emotions and trait affect across time. Across three samples (Sample 1: N = 176 U.S. undergraduates in a 50 day daily diary study—total observations = 7,504; Sample 2: N = 2,104 in a 30 day daily diary study within a community sample in Germany—total observations = 28,090; Sample 3: N = 245, ecological momentary assessment study within the United States from an outpatient psychiatry clinic completing five measurements per day for 21 days—total observations = 29,950), participants completed the Positive and Negative Affect Schedule. An exploratory multilevel factor analysis in Sample 1 allowed for the simultaneous estimation of state factors (i.e., within-person factor analysis) and trait factors (i.e., between-persons factor analysis). Confirmatory multilevel factor models examined the generalizability of the multilevel factor solutions to Samples 2 and 3. Across all samples, the results suggested strong support for a two-factor solution for trait affect and a seven-factor solution for state emotion. Taken together, these results suggest that positive affect and negative affect can be used to describe differences across people, but at least seven differentiated emotions are experienced within persons
How much variance can event intensity and emotion regulation strategies explain in momentary affect in daily life? Wenzel, M., Rowland, Z., & Kubiak, T. (2022). How much variance can event intensity and emotion regulation strategies explain in momentary affect in daily life? Emotion, 22(8), 1969–1979. https://doi.org/10.1037/emo0000816
Research based on the process model of emotion regulation has largely focused on affective outcomes of four prominent emotion regulation strategies: distraction, rumination, reappraisal, and suppression. We identified two areas that are relatively understudied regarding the prediction of affect in daily life: (a) comparing the importance of these four strategies to the subjective experience of event intensity and (b) including additional emotion regulation strategies that focus more on positive than negative affect. In two ecological momentary assessment data sets (Nindividuals = 299), we found that event intensity explained an average of 14.8% (4.9% to 25.9%) of the total variance in momentary affect above the variance explained by emotion regulation strategies. In turn, emotion regulation strategies explained an average of 8.3% (2.4% to 19.6%) in additional total variance in momentary affect. The added predictive power of emotion regulation strategies above event intensity was improved when strategies more specific to positive affect (ΔR² = 5.1%) were included. These results highlight avenues for future research that include strategies that focus on the selection and modification of an emotionally relevant situation and on positive affect. (PsycInfo Database Record (c) 2022 APA, all rights reserved) Copyright
Composite reliability of multilevel data: It’s about observed scores and construct meanings. Lai, M. H. C. (2021). Composite reliability of multilevel data: It’s about observed scores and construct meanings. Psychological Methods, 26(1), 90–102. https://doi.org/10.1037/met0000287
This article shows how the concept of reliability of composite scores, as defined in classical test theory, can be extended to the context of multilevel modeling. In particular, it discusses the contributions and limitations of the various level-specific reliability indices proposed by Geldhof, Preacher, and Zyphur (2014), denoted as ω̃b and ω̃w (and also α̃b and α̃w). One major limitation of those indices is that they are quantities for latent, unobserved level-specific composite scores, and are not suitable for observed composites at different levels. As illustrated using simulated data in this article, ω̃b can drastically overestimate the true reliability of between-level composite scores (i.e., observed cluster means). Another limitation is that the development of those indices did not consider the recent conceptual development on construct meanings in multilevel modeling (Stapleton & Johnson, 2019; Stapleton, Yang, & Hancock, 2016). To address the second limitation, this article defines reliability indices (ω2l, ωb, ωw, α2l, αb, αw) for three types of multilevel observed composite scores measuring various multilevel constructs: individual, configural, shared, and within-cluster. The article also shows how researchers can obtain sample point and interval estimates using the derived formulas and the provided R and Mplus code. In addition, a large-scale national data set was used to illustrate the proposed methods for estimating reliability for the three types of multilevel composite scores, and practical recommendations on when different indices should
Differences in within- and between-person factor structure of positive and negative affect: Analysis of two intensive measurement studies using multilevel structural equation modeling. Rush, J., & Hofer, S. M. (2014). Differences in within- and between-person factor structure of positive and negative affect: Analysis of two intensive measurement studies using multilevel structural equation modeling. Psychological Assessment, 26(2), 462–473. https://doi.org/10.1037/a0035666
The Positive and Negative Affect Schedule (PANAS) is a widely used measure of emotional experience. The factor structure of the PANAS has been examined predominantly with cross-sectional designs, which fails to disaggregate within-person variation from between-person differences. There is still uncertainty as to the factor structure of positive and negative affect and whether they constitute 2 distinct independent factors. The present study examined the within-person and between-person factor structure of the PANAS in 2 independent samples that reported daily affect over 7 and 14 occasions, respectively. Results from multilevel confirmatory factor analyses revealed that a 2-factor structure at both the within-person and between-person levels, with correlated specific factors for overlapping items, provided good model fit. The best-fitting solution was one where within-person factors of positive and negative affect were inversely correlated, but between-person factors were independent. The structure was further validated through multilevel structural equation modeling examining the effects of cognitive interference, daily stress, physical symptoms, and physical activity on positive and negative affect factors. (APA PsycInfo Database Record (c) 2019 APA, all rights reserved)
https://pmc.ncbi.nlm.nih.gov/articles/PMC4681324/
Merz EL, Roesch SC. Modeling trait and state variation using multilevel factor analysis with PANAS daily diary data. Journal of Research in Personality. 2011;45:2–9. doi: 10.1016/j.jrp.2010.11.003. [DOI] [PMC free article] [PubMed] [Google Scholar][Ref list]
Zimprich D, Allemand M. Within- and between-person structure of affect in old age. Department of Psychology, University of Ulm; Germany: 2012. Unpublished manuscript. [Google Scholar][Ref list]