d <- read_csv("ds.csv")
## Parsed with column specification:
## cols(
## x6c_16_1 = col_double(),
## x6c_6_2 = col_double(),
## x7c_12_2 = col_double(),
## x7c_8_3 = col_double(),
## x8b_6_2 = col_double(),
## flag = col_double()
## )
m3 <- read_rds("m3.rds")
m4 <- read_rds("m4.rds")
m3
## Conditional item response (column) probabilities,
## by outcome variable, for each class (row)
##
## $x6c_6_2
## Pr(1) Pr(2) Pr(3) Pr(4)
## class 1: 0.2358 0.4437 0.1458 0.1747
## class 2: 0.3341 0.4539 0.1524 0.0595
## class 3: 0.3267 0.3028 0.1412 0.2292
##
## $x6c_16_1
## Pr(1) Pr(2) Pr(3) Pr(4)
## class 1: 0.0719 0.5651 0.1620 0.2009
## class 2: 0.2822 0.3992 0.1778 0.1408
## class 3: 0.5822 0.0000 0.0000 0.4178
##
## $x7c_8_3
## Pr(1) Pr(2) Pr(3) Pr(4)
## class 1: 0.0000 0.4903 0.0936 0.4161
## class 2: 0.3899 0.5450 0.0651 0.0000
## class 3: 0.4180 0.0000 0.2122 0.3698
##
## $x7c_12_2
## Pr(1) Pr(2) Pr(3) Pr(4)
## class 1: 0.0000 0.4743 0.0578 0.4679
## class 2: 0.8117 0.0920 0.0000 0.0963
## class 3: 0.4449 0.0458 0.0488 0.4604
##
## Estimated class population shares
## 0.4186 0.348 0.2334
##
## Predicted class memberships (by modal posterior prob.)
## 0.4429 0.3014 0.2557
##
## =========================================================
## Fit for 3 latent classes:
## =========================================================
## number of observations: 219
## number of fully observed cases: 85
## number of estimated parameters: 38
## residual degrees of freedom: 181
## maximum log-likelihood: -867.7372
##
## AIC(3): 1811.474
## BIC(3): 1940.259
## G^2(3): 161.4266 (Likelihood ratio/deviance statistic)
## X^2(3): 276.4603 (Chi-square goodness of fit)
##
broom::tidy(m3) %>%
mutate(class_name = rep(str_c(1:3, " (n = ", as.vector(table(m3$predclass)), ")"), 16)) %>%
mutate(variable = factor(variable, levels = c("x6c_6_2", "x6c_16_1", "x7c_8_3", "x7c_12_2", "x8b_6_2"))) %>%
#mutate(class_name = rep(c("Lots of change without a clear pattern", "Steady growth", "Already sophisticated and less simple"), 20)) %>%
ggplot(aes(x = variable, y = estimate, color = as.factor(outcome), group = outcome)) +
facet_wrap(~ class_name) +
geom_point() +
geom_line() +
theme_bw() +
ylab("Probability") +
xlab(NULL) +
theme(text = element_text(size = 15)) +
ylim(0, 1) +
scale_color_discrete("") +
theme(axis.text.x=element_text(angle = 90, hjust = 0))
m4
## Conditional item response (column) probabilities,
## by outcome variable, for each class (row)
##
## $x6c_6_2
## Pr(1) Pr(2) Pr(3) Pr(4)
## class 1: 0.3921 0.3530 0.0000 0.2549
## class 2: 0.4483 0.0000 0.1752 0.3766
## class 3: 0.0000 0.6659 0.3341 0.0000
## class 4: 0.4014 0.4350 0.1002 0.0634
##
## $x6c_16_1
## Pr(1) Pr(2) Pr(3) Pr(4)
## class 1: 0.0887 0.6107 0.0435 0.2571
## class 2: 0.3770 0.0000 0.0000 0.6230
## class 3: 0.3358 0.3834 0.2808 0.0000
## class 4: 0.3218 0.3331 0.1573 0.1878
##
## $x7c_8_3
## Pr(1) Pr(2) Pr(3) Pr(4)
## class 1: 0.0000 0.5459 0.1146 0.3394
## class 2: 0.3533 0.0000 0.2342 0.4124
## class 3: 0.2412 0.3517 0.0543 0.3528
## class 4: 0.4120 0.4938 0.0942 0.0000
##
## $x7c_12_2
## Pr(1) Pr(2) Pr(3) Pr(4)
## class 1: 0.0000 0.6563 0.0306 0.3131
## class 2: 0.3286 0.0000 0.0820 0.5893
## class 3: 0.2150 0.1653 0.0522 0.5674
## class 4: 1.0000 0.0000 0.0000 0.0000
##
## Estimated class population shares
## 0.2991 0.1592 0.2657 0.2761
##
## Predicted class memberships (by modal posterior prob.)
## 0.2603 0.1735 0.2511 0.3151
##
## =========================================================
## Fit for 4 latent classes:
## =========================================================
## number of observations: 219
## number of fully observed cases: 85
## number of estimated parameters: 51
## residual degrees of freedom: 168
## maximum log-likelihood: -862.0112
##
## AIC(4): 1826.022
## BIC(4): 1998.865
## G^2(4): 154.1867 (Likelihood ratio/deviance statistic)
## X^2(4): 260.5505 (Chi-square goodness of fit)
##
broom::tidy(m4) %>%
mutate(class_name = rep(str_c(1:4, " (n = ", as.vector(table(m4$predclass)), ")"), 16)) %>%
mutate(variable = factor(variable, levels = c("x6c_6_2", "x6c_16_1", "x7c_8_3", "x7c_12_2", "x8b_6_2"))) %>%
#mutate(class_name = rep(c("Lots of change without a clear pattern", "Steady growth", "Already sophisticated and less simple"), 20)) %>%
ggplot(aes(x = variable, y = estimate, color = as.factor(outcome), group = outcome)) +
facet_wrap(~ class_name) +
geom_point() +
geom_line() +
theme_bw() +
ylab("Probability") +
xlab(NULL) +
theme(text = element_text(size = 15)) +
ylim(0, 1) +
scale_color_discrete("") +
theme(axis.text.x=element_text(angle = 90, hjust = 0))
post_probs <- m3$posterior %>% as.data.frame() %>% setNames(paste0("C", 1:3, "_prob"))
df <- bind_cols(d, post_probs)
df$class <- m3$predclass
df3 <- df %>% mutate_if(is.numeric, round, 3)
post_probs <- m4$posterior %>% as.data.frame() %>% setNames(paste0("C", 1:4, "_prob"))
df <- bind_cols(d, post_probs)
df$class <- m4$predclass
df4 <- df %>% mutate_if(is.numeric, round, 3)
A number taking a minumum value of 0 (representing complete concentration of probability on one cell) and a maximum value equal to the logarithm of the total number of cells in the fitted cross-classfication table (representing complete dispersion, or equal probability for outcomes across every cell).
poLCA.entropy(m3)
## [1] 4.905256
poLCA.entropy(m4)
## [1] 4.834834
By class
mat <- df3 %>% dplyr::select(C1_prob:C3_prob, class)
mat %>% group_by(class) %>% summarize_all(funs(mean)) %>% dplyr::select(-class) %>% as.matrix() %>% diag()
## Warning: funs() is soft deprecated as of dplyr 0.8.0
## please use list() instead
##
## # Before:
## funs(name = f(.)
##
## # After:
## list(name = ~f(.))
## This warning is displayed once per session.
## [1] 0.8584536 0.8954091 0.7340893
Overall
mat %>% group_by(class) %>% summarize_all(funs(mean)) %>% dplyr::select(-class) %>% as.matrix() %>% diag() %>% mean()
## [1] 0.8293173
By class
mat <- df4 %>% dplyr::select(C1_prob:C4_prob, class)
mat %>% group_by(class) %>% summarize_all(funs(mean)) %>% dplyr::select(-class) %>% as.matrix() %>% diag()
## [1] 0.8789825 0.7264737 0.7325273 0.8079130
Overall
mat %>% group_by(class) %>% summarize_all(funs(mean)) %>% dplyr::select(-class) %>% as.matrix() %>% diag() %>% mean()
## [1] 0.7864741
codes_in_class(df3, 1)
## For code: 1
## Df Sum Sq Mean Sq F value Pr(>F)
## as.factor(class) 3 28.66 9.554 56.97 <2e-16 ***
## Residuals 701 117.56 0.168
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 171 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ as.factor(class), data = dfa)
##
## $`as.factor(class)`
## diff lwr upr p adj
## 2-1 0.23427210 0.10944017 0.35910403 0.0000098
## 3-1 0.06576006 -0.04557934 0.17709946 0.4254022
## 4-1 0.48135156 0.37678596 0.58591717 0.0000000
## 3-2 -0.16851204 -0.29430840 -0.04271568 0.0033266
## 4-2 0.24707946 0.12723695 0.36692197 0.0000009
## 4-3 0.41559150 0.30987642 0.52130659 0.0000000
codes_in_class(df3, 2)
## For code: 2
## Df Sum Sq Mean Sq F value Pr(>F)
## as.factor(class) 3 29.53 9.843 52.58 <2e-16 ***
## Residuals 701 131.23 0.187
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 171 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ as.factor(class), data = dfa)
##
## $`as.factor(class)`
## diff lwr upr p adj
## 2-1 -0.63387978 -0.7657705 -0.50198911 0.0000000
## 3-1 -0.28160705 -0.3992422 -0.16397186 0.0000000
## 4-1 -0.32820293 -0.4386813 -0.21772456 0.0000000
## 3-2 0.35227273 0.2193631 0.48518236 0.0000000
## 4-2 0.30567686 0.1790577 0.43229598 0.0000000
## 4-3 -0.04659587 -0.1582887 0.06509698 0.7053378
codes_in_class(df3, 3)
## For code: 3
## Df Sum Sq Mean Sq F value Pr(>F)
## as.factor(class) 3 1.45 0.4849 5.379 0.00115 **
## Residuals 701 63.19 0.0901
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 171 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ as.factor(class), data = dfa)
##
## $`as.factor(class)`
## diff lwr upr p adj
## 2-1 0.07047779 -0.02104435 0.161999937 0.1953301
## 3-1 0.12127422 0.03964429 0.202904141 0.0008164
## 4-1 0.03378910 -0.04287452 0.110452732 0.6679698
## 3-2 0.05079643 -0.04143281 0.143025657 0.4882533
## 4-2 -0.03668869 -0.12455278 0.051175403 0.7047388
## 4-3 -0.08748511 -0.16499150 -0.009978729 0.0196665
codes_in_class(df3, 4)
## For code: 4
## Df Sum Sq Mean Sq F value Pr(>F)
## as.factor(class) 3 22.03 7.345 46.38 <2e-16 ***
## Residuals 701 111.02 0.158
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 171 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ as.factor(class), data = dfa)
##
## $`as.factor(class)`
## diff lwr upr p adj
## 2-1 0.32912989 0.20781838 0.45044140 0.0000000
## 3-1 0.09457278 -0.01362671 0.20277226 0.1108171
## 4-1 -0.18693774 -0.28855446 -0.08532102 0.0000156
## 3-2 -0.23455711 -0.35680585 -0.11230837 0.0000058
## 4-2 -0.51606763 -0.63253043 -0.39960483 0.0000000
## 4-3 -0.28151052 -0.38424431 -0.17877674 0.0000000
codes_in_class(df4, 1)
## For code: 1
## Df Sum Sq Mean Sq F value Pr(>F)
## as.factor(class) 3 28.66 9.554 56.97 <2e-16 ***
## Residuals 701 117.56 0.168
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 171 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ as.factor(class), data = dfa)
##
## $`as.factor(class)`
## diff lwr upr p adj
## 2-1 0.23427210 0.10944017 0.35910403 0.0000098
## 3-1 0.06576006 -0.04557934 0.17709946 0.4254022
## 4-1 0.48135156 0.37678596 0.58591717 0.0000000
## 3-2 -0.16851204 -0.29430840 -0.04271568 0.0033266
## 4-2 0.24707946 0.12723695 0.36692197 0.0000009
## 4-3 0.41559150 0.30987642 0.52130659 0.0000000
codes_in_class(df4, 2)
## For code: 2
## Df Sum Sq Mean Sq F value Pr(>F)
## as.factor(class) 3 29.53 9.843 52.58 <2e-16 ***
## Residuals 701 131.23 0.187
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 171 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ as.factor(class), data = dfa)
##
## $`as.factor(class)`
## diff lwr upr p adj
## 2-1 -0.63387978 -0.7657705 -0.50198911 0.0000000
## 3-1 -0.28160705 -0.3992422 -0.16397186 0.0000000
## 4-1 -0.32820293 -0.4386813 -0.21772456 0.0000000
## 3-2 0.35227273 0.2193631 0.48518236 0.0000000
## 4-2 0.30567686 0.1790577 0.43229598 0.0000000
## 4-3 -0.04659587 -0.1582887 0.06509698 0.7053378
codes_in_class(df4, 3)
## For code: 3
## Df Sum Sq Mean Sq F value Pr(>F)
## as.factor(class) 3 1.45 0.4849 5.379 0.00115 **
## Residuals 701 63.19 0.0901
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 171 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ as.factor(class), data = dfa)
##
## $`as.factor(class)`
## diff lwr upr p adj
## 2-1 0.07047779 -0.02104435 0.161999937 0.1953301
## 3-1 0.12127422 0.03964429 0.202904141 0.0008164
## 4-1 0.03378910 -0.04287452 0.110452732 0.6679698
## 3-2 0.05079643 -0.04143281 0.143025657 0.4882533
## 4-2 -0.03668869 -0.12455278 0.051175403 0.7047388
## 4-3 -0.08748511 -0.16499150 -0.009978729 0.0196665
codes_in_class(df4, 4)
## For code: 4
## Df Sum Sq Mean Sq F value Pr(>F)
## as.factor(class) 3 22.03 7.345 46.38 <2e-16 ***
## Residuals 701 111.02 0.158
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 171 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ as.factor(class), data = dfa)
##
## $`as.factor(class)`
## diff lwr upr p adj
## 2-1 0.32912989 0.20781838 0.45044140 0.0000000
## 3-1 0.09457278 -0.01362671 0.20277226 0.1108171
## 4-1 -0.18693774 -0.28855446 -0.08532102 0.0000156
## 3-2 -0.23455711 -0.35680585 -0.11230837 0.0000058
## 4-2 -0.51606763 -0.63253043 -0.39960483 0.0000000
## 4-3 -0.28151052 -0.38424431 -0.17877674 0.0000000
codes_at_time(df3, my_code = 1, my_class = 1)
## Code is: 1; Class is: 1
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 3.554 1.1846 20.75 1.38e-11 ***
## Residuals 179 10.217 0.0571
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 45 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 3.319357e-01 0.1854450 0.47842639 0.0000001
## x7c_12_2-x6c_16_1 -7.547170e-02 -0.1964033 0.04545992 0.3708549
## x7c_8_3-x6c_16_1 -7.547170e-02 -0.1970003 0.04605690 0.3753090
## x7c_12_2-x6c_6_2 -4.074074e-01 -0.5543727 -0.26044210 0.0000000
## x7c_8_3-x6c_6_2 -4.074074e-01 -0.5548643 -0.25995049 0.0000000
## x7c_8_3-x7c_12_2 1.804112e-16 -0.1221003 0.12210029 1.0000000
codes_at_time(df3, my_code = 2, my_class = 1)
## Code is: 2; Class is: 1
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 4.46 1.4877 7.007 0.000176 ***
## Residuals 179 38.01 0.2123
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 45 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -0.38294899 -0.66549321 -0.10040476 0.0031028
## x7c_12_2-x6c_16_1 0.10921626 -0.12403087 0.34246338 0.6185921
## x7c_8_3-x6c_16_1 -0.07140215 -0.30580069 0.16299640 0.8589371
## x7c_12_2-x6c_6_2 0.49216524 0.20870559 0.77562490 0.0000708
## x7c_8_3-x6c_6_2 0.31154684 0.02713898 0.59595470 0.0256346
## x7c_8_3-x7c_12_2 -0.18061840 -0.41611960 0.05488279 0.1959932
codes_at_time(df3, my_code = 3, my_class = 1)
## Code is: 3; Class is: 1
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0.359 0.1197 2.613 0.0528 .
## Residuals 179 8.198 0.0458
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 45 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -0.01886792 -0.15009358 0.1123577 0.9822613
## x7c_12_2-x6c_16_1 0.01959361 -0.08873635 0.1279236 0.9657465
## x7c_8_3-x6c_16_1 0.09877913 -0.01008560 0.2076439 0.0901543
## x7c_12_2-x6c_6_2 0.03846154 -0.09318928 0.1701124 0.8732897
## x7c_8_3-x6c_6_2 0.11764706 -0.01444414 0.2497383 0.0996263
## x7c_8_3-x7c_12_2 0.07918552 -0.03019133 0.1885624 0.2414135
codes_at_time(df3, my_code = 4, my_class = 1)
## Code is: 4; Class is: 1
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0.38 0.1281 0.705 0.55
## Residuals 179 32.51 0.1816
## 45 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.06988120 -0.1914413 0.3312037 0.8994773
## x7c_12_2-x6c_16_1 -0.05333817 -0.2690662 0.1623899 0.9184883
## x7c_8_3-x6c_16_1 0.04809471 -0.1686983 0.2648877 0.9393508
## x7c_12_2-x6c_6_2 -0.12321937 -0.3853885 0.1389498 0.6157051
## x7c_8_3-x6c_6_2 -0.02178649 -0.2848326 0.2412596 0.9964882
## x7c_8_3-x7c_12_2 0.10143288 -0.1163799 0.3192457 0.6227862
codes_at_time(df3, my_code = 1, my_class = 2)
## Code is: 1; Class is: 2
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0.483 0.1608 0.732 0.535
## Residuals 113 24.817 0.2196
## 35 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.184873950 -0.1763933 0.5461412 0.5430766
## x7c_12_2-x6c_16_1 -0.004464286 -0.3033559 0.2944274 0.9999787
## x7c_8_3-x6c_16_1 0.017316017 -0.2792005 0.3138325 0.9987345
## x7c_12_2-x6c_6_2 -0.189338235 -0.5560999 0.1774235 0.5356716
## x7c_8_3-x6c_6_2 -0.167557932 -0.5323866 0.1972707 0.6295981
## x7c_8_3-x7c_12_2 0.021780303 -0.2814064 0.3249670 0.9976550
codes_at_time(df3, my_code = 2, my_class = 2)
## Code is: 2; Class is: 2
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0 0
## Residuals 113 0 0
## 35 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0 0 0 NaN
## x7c_12_2-x6c_16_1 0 0 0 NaN
## x7c_8_3-x6c_16_1 0 0 0 NaN
## x7c_12_2-x6c_6_2 0 0 0 NaN
## x7c_8_3-x6c_6_2 0 0 0 NaN
## x7c_8_3-x7c_12_2 0 0 0 NaN
codes_at_time(df3, my_code = 3, my_class = 2)
## Code is: 3; Class is: 2
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 1.296 0.4320 4.426 0.00557 **
## Residuals 113 11.029 0.0976
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 35 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.11764706 -0.12319024 0.3584844 0.5814285
## x7c_12_2-x6c_16_1 0.09375000 -0.10550487 0.2930049 0.6111315
## x7c_8_3-x6c_16_1 0.27272727 0.07505579 0.4703988 0.0026565
## x7c_12_2-x6c_6_2 -0.02389706 -0.26839722 0.2206031 0.9941615
## x7c_8_3-x6c_6_2 0.15508021 -0.08813130 0.3982917 0.3482201
## x7c_8_3-x7c_12_2 0.17897727 -0.02314086 0.3810954 0.1020097
codes_at_time(df3, my_code = 4, my_class = 2)
## Code is: 4; Class is: 2
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 1.948 0.6494 2.736 0.0469 *
## Residuals 113 26.821 0.2374
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 35 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -0.30252101 -0.6780953 0.07305325 0.1592288
## x7c_12_2-x6c_16_1 -0.08928571 -0.4000142 0.22144273 0.8767905
## x7c_8_3-x6c_16_1 -0.29004329 -0.5983025 0.01821594 0.0730337
## x7c_12_2-x6c_6_2 0.21323529 -0.1680510 0.59452161 0.4660503
## x7c_8_3-x6c_6_2 0.01247772 -0.3667990 0.39175445 0.9997724
## x7c_8_3-x7c_12_2 -0.20075758 -0.5159511 0.11443599 0.3492034
codes_at_time(df3, my_code = 1, my_class = 3)
## Code is: 1; Class is: 3
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 2.521 0.8404 7.361 0.000114 ***
## Residuals 172 19.638 0.1142
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 44 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -0.31914894 -0.51650951 -0.12178836 0.0002531
## x7c_12_2-x6c_16_1 -0.25792445 -0.43690050 -0.07894839 0.0014251
## x7c_8_3-x6c_16_1 -0.14523589 -0.32704679 0.03657501 0.1663117
## x7c_12_2-x6c_6_2 0.06122449 -0.13443812 0.25688710 0.8488380
## x7c_8_3-x6c_6_2 0.17391304 -0.02434595 0.37217204 0.1077603
## x7c_8_3-x7c_12_2 0.11268855 -0.06727772 0.29265483 0.3676139
codes_at_time(df3, my_code = 2, my_class = 3)
## Code is: 2; Class is: 3
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 5.76 1.919 9.597 6.82e-06 ***
## Residuals 172 34.40 0.200
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 44 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.31476846 0.05355277 0.57598415 0.0110867
## x7c_12_2-x6c_16_1 -0.21884498 -0.45572792 0.01803795 0.0814988
## x7c_8_3-x6c_16_1 -0.03561517 -0.27625015 0.20501981 0.9806883
## x7c_12_2-x6c_6_2 -0.53361345 -0.79258179 -0.27464510 0.0000017
## x7c_8_3-x6c_6_2 -0.35038363 -0.61278842 -0.08797885 0.0037191
## x7c_8_3-x7c_12_2 0.18322981 -0.05496373 0.42142335 0.1936192
codes_at_time(df3, my_code = 3, my_class = 3)
## Code is: 3; Class is: 3
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 3.401 1.1337 9.076 1.31e-05 ***
## Residuals 172 21.485 0.1249
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 44 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.004380476 -0.2020555 0.21081645 0.9999399
## x7c_12_2-x6c_16_1 -0.278332610 -0.4655387 -0.09112655 0.0009244
## x7c_8_3-x6c_16_1 -0.275670675 -0.4658419 -0.08549942 0.0013162
## x7c_12_2-x6c_6_2 -0.282713085 -0.4873730 -0.07805317 0.0024678
## x7c_8_3-x6c_6_2 -0.280051151 -0.4874269 -0.07267545 0.0032538
## x7c_8_3-x7c_12_2 0.002661934 -0.1855799 0.19090375 0.9999822
codes_at_time(df3, my_code = 4, my_class = 3)
## Code is: 4; Class is: 3
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 18.41 6.137 51.56 <2e-16 ***
## Residuals 172 20.47 0.119
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 44 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 3.436967e-16 -0.2015201 0.2015201 1.0000000
## x7c_12_2-x6c_16_1 7.551020e-01 0.5723540 0.9378501 0.0000000
## x7c_8_3-x6c_16_1 4.565217e-01 0.2708791 0.6421644 0.0000000
## x7c_12_2-x6c_6_2 7.551020e-01 0.5553157 0.9548884 0.0000000
## x7c_8_3-x6c_6_2 4.565217e-01 0.2540843 0.6589592 0.0000001
## x7c_8_3-x7c_12_2 -2.985803e-01 -0.4823395 -0.1148211 0.0002337
codes_at_time(df3, my_code = 1, my_class = 4)
## Code is: 1; Class is: 4
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 16.42 5.472 30.85 <2e-16 ***
## Residuals 225 39.92 0.177
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 47 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.01713287 -0.1956947 0.2299604 0.9967933
## x7c_12_2-x6c_16_1 0.63076923 0.4372398 0.8242986 0.0000000
## x7c_8_3-x6c_16_1 0.07904509 -0.1178702 0.2759604 0.7267135
## x7c_12_2-x6c_6_2 0.61363636 0.3987403 0.8285324 0.0000000
## x7c_8_3-x6c_6_2 0.06191223 -0.1560380 0.2798625 0.8828050
## x7c_8_3-x7c_12_2 -0.55172414 -0.7508733 -0.3525750 0.0000000
codes_at_time(df3, my_code = 2, my_class = 4)
## Code is: 2; Class is: 4
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 8.66 2.8856 16.25 1.35e-09 ***
## Residuals 225 39.95 0.1775
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 47 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.11608392 -0.09682518 0.3289930 0.4936405
## x7c_12_2-x6c_16_1 -0.33846154 -0.53206509 -0.1448580 0.0000576
## x7c_8_3-x6c_16_1 0.14429708 -0.05269368 0.3412878 0.2326809
## x7c_12_2-x6c_6_2 -0.45454545 -0.66952381 -0.2395671 0.0000007
## x7c_8_3-x6c_6_2 0.02821317 -0.18982059 0.2462469 0.9870231
## x7c_8_3-x7c_12_2 0.48275862 0.28353320 0.6819840 0.0000000
codes_at_time(df3, my_code = 3, my_class = 4)
## Code is: 3; Class is: 4
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0.806 0.26870 3.638 0.0136 *
## Residuals 225 16.617 0.07386
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 47 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -0.04020979 -0.17753238 0.09711280 0.8732034
## x7c_12_2-x6c_16_1 -0.15384615 -0.27871701 -0.02897530 0.0087994
## x7c_8_3-x6c_16_1 -0.08488064 -0.21193619 0.04217491 0.3109941
## x7c_12_2-x6c_6_2 -0.11363636 -0.25229359 0.02502086 0.1494847
## x7c_8_3-x6c_6_2 -0.04467085 -0.18529875 0.09595706 0.8439287
## x7c_8_3-x7c_12_2 0.06896552 -0.05953135 0.19746238 0.5074316
codes_at_time(df3, my_code = 4, my_class = 4)
## Code is: 4; Class is: 4
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0.809 0.26956 6.277 0.000415 ***
## Residuals 225 9.663 0.04295
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 47 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -9.300699e-02 -0.19772317 0.01170919 0.1013262
## x7c_12_2-x6c_16_1 -1.384615e-01 -0.23368257 -0.04324050 0.0012160
## x7c_8_3-x6c_16_1 -1.384615e-01 -0.23534852 -0.04157455 0.0015418
## x7c_12_2-x6c_6_2 -4.545455e-02 -0.15118846 0.06027937 0.6820855
## x7c_8_3-x6c_6_2 -4.545455e-02 -0.15269121 0.06178212 0.6916646
## x7c_8_3-x7c_12_2 -1.804112e-16 -0.09798607 0.09798607 1.0000000
codes_at_time(df4, my_code = 1, my_class = 1)
## Code is: 1; Class is: 1
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 3.554 1.1846 20.75 1.38e-11 ***
## Residuals 179 10.217 0.0571
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 45 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 3.319357e-01 0.1854450 0.47842639 0.0000001
## x7c_12_2-x6c_16_1 -7.547170e-02 -0.1964033 0.04545992 0.3708549
## x7c_8_3-x6c_16_1 -7.547170e-02 -0.1970003 0.04605690 0.3753090
## x7c_12_2-x6c_6_2 -4.074074e-01 -0.5543727 -0.26044210 0.0000000
## x7c_8_3-x6c_6_2 -4.074074e-01 -0.5548643 -0.25995049 0.0000000
## x7c_8_3-x7c_12_2 1.804112e-16 -0.1221003 0.12210029 1.0000000
codes_at_time(df4, my_code = 2, my_class = 1)
## Code is: 2; Class is: 1
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 4.46 1.4877 7.007 0.000176 ***
## Residuals 179 38.01 0.2123
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 45 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -0.38294899 -0.66549321 -0.10040476 0.0031028
## x7c_12_2-x6c_16_1 0.10921626 -0.12403087 0.34246338 0.6185921
## x7c_8_3-x6c_16_1 -0.07140215 -0.30580069 0.16299640 0.8589371
## x7c_12_2-x6c_6_2 0.49216524 0.20870559 0.77562490 0.0000708
## x7c_8_3-x6c_6_2 0.31154684 0.02713898 0.59595470 0.0256346
## x7c_8_3-x7c_12_2 -0.18061840 -0.41611960 0.05488279 0.1959932
codes_at_time(df4, my_code = 3, my_class = 1)
## Code is: 3; Class is: 1
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0.359 0.1197 2.613 0.0528 .
## Residuals 179 8.198 0.0458
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 45 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -0.01886792 -0.15009358 0.1123577 0.9822613
## x7c_12_2-x6c_16_1 0.01959361 -0.08873635 0.1279236 0.9657465
## x7c_8_3-x6c_16_1 0.09877913 -0.01008560 0.2076439 0.0901543
## x7c_12_2-x6c_6_2 0.03846154 -0.09318928 0.1701124 0.8732897
## x7c_8_3-x6c_6_2 0.11764706 -0.01444414 0.2497383 0.0996263
## x7c_8_3-x7c_12_2 0.07918552 -0.03019133 0.1885624 0.2414135
codes_at_time(df4, my_code = 4, my_class = 1)
## Code is: 4; Class is: 1
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0.38 0.1281 0.705 0.55
## Residuals 179 32.51 0.1816
## 45 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.06988120 -0.1914413 0.3312037 0.8994773
## x7c_12_2-x6c_16_1 -0.05333817 -0.2690662 0.1623899 0.9184883
## x7c_8_3-x6c_16_1 0.04809471 -0.1686983 0.2648877 0.9393508
## x7c_12_2-x6c_6_2 -0.12321937 -0.3853885 0.1389498 0.6157051
## x7c_8_3-x6c_6_2 -0.02178649 -0.2848326 0.2412596 0.9964882
## x7c_8_3-x7c_12_2 0.10143288 -0.1163799 0.3192457 0.6227862
codes_at_time(df4, my_code = 1, my_class = 2)
## Code is: 1; Class is: 2
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0.483 0.1608 0.732 0.535
## Residuals 113 24.817 0.2196
## 35 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.184873950 -0.1763933 0.5461412 0.5430766
## x7c_12_2-x6c_16_1 -0.004464286 -0.3033559 0.2944274 0.9999787
## x7c_8_3-x6c_16_1 0.017316017 -0.2792005 0.3138325 0.9987345
## x7c_12_2-x6c_6_2 -0.189338235 -0.5560999 0.1774235 0.5356716
## x7c_8_3-x6c_6_2 -0.167557932 -0.5323866 0.1972707 0.6295981
## x7c_8_3-x7c_12_2 0.021780303 -0.2814064 0.3249670 0.9976550
codes_at_time(df4, my_code = 2, my_class = 2)
## Code is: 2; Class is: 2
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0 0
## Residuals 113 0 0
## 35 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0 0 0 NaN
## x7c_12_2-x6c_16_1 0 0 0 NaN
## x7c_8_3-x6c_16_1 0 0 0 NaN
## x7c_12_2-x6c_6_2 0 0 0 NaN
## x7c_8_3-x6c_6_2 0 0 0 NaN
## x7c_8_3-x7c_12_2 0 0 0 NaN
codes_at_time(df4, my_code = 3, my_class = 2)
## Code is: 3; Class is: 2
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 1.296 0.4320 4.426 0.00557 **
## Residuals 113 11.029 0.0976
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 35 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.11764706 -0.12319024 0.3584844 0.5814285
## x7c_12_2-x6c_16_1 0.09375000 -0.10550487 0.2930049 0.6111315
## x7c_8_3-x6c_16_1 0.27272727 0.07505579 0.4703988 0.0026565
## x7c_12_2-x6c_6_2 -0.02389706 -0.26839722 0.2206031 0.9941615
## x7c_8_3-x6c_6_2 0.15508021 -0.08813130 0.3982917 0.3482201
## x7c_8_3-x7c_12_2 0.17897727 -0.02314086 0.3810954 0.1020097
codes_at_time(df4, my_code = 4, my_class = 2)
## Code is: 4; Class is: 2
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 1.948 0.6494 2.736 0.0469 *
## Residuals 113 26.821 0.2374
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 35 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -0.30252101 -0.6780953 0.07305325 0.1592288
## x7c_12_2-x6c_16_1 -0.08928571 -0.4000142 0.22144273 0.8767905
## x7c_8_3-x6c_16_1 -0.29004329 -0.5983025 0.01821594 0.0730337
## x7c_12_2-x6c_6_2 0.21323529 -0.1680510 0.59452161 0.4660503
## x7c_8_3-x6c_6_2 0.01247772 -0.3667990 0.39175445 0.9997724
## x7c_8_3-x7c_12_2 -0.20075758 -0.5159511 0.11443599 0.3492034
codes_at_time(df4, my_code = 1, my_class = 3)
## Code is: 1; Class is: 3
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 2.521 0.8404 7.361 0.000114 ***
## Residuals 172 19.638 0.1142
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 44 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -0.31914894 -0.51650951 -0.12178836 0.0002531
## x7c_12_2-x6c_16_1 -0.25792445 -0.43690050 -0.07894839 0.0014251
## x7c_8_3-x6c_16_1 -0.14523589 -0.32704679 0.03657501 0.1663117
## x7c_12_2-x6c_6_2 0.06122449 -0.13443812 0.25688710 0.8488380
## x7c_8_3-x6c_6_2 0.17391304 -0.02434595 0.37217204 0.1077603
## x7c_8_3-x7c_12_2 0.11268855 -0.06727772 0.29265483 0.3676139
codes_at_time(df4, my_code = 2, my_class = 3)
## Code is: 2; Class is: 3
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 5.76 1.919 9.597 6.82e-06 ***
## Residuals 172 34.40 0.200
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 44 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.31476846 0.05355277 0.57598415 0.0110867
## x7c_12_2-x6c_16_1 -0.21884498 -0.45572792 0.01803795 0.0814988
## x7c_8_3-x6c_16_1 -0.03561517 -0.27625015 0.20501981 0.9806883
## x7c_12_2-x6c_6_2 -0.53361345 -0.79258179 -0.27464510 0.0000017
## x7c_8_3-x6c_6_2 -0.35038363 -0.61278842 -0.08797885 0.0037191
## x7c_8_3-x7c_12_2 0.18322981 -0.05496373 0.42142335 0.1936192
codes_at_time(df4, my_code = 3, my_class = 3)
## Code is: 3; Class is: 3
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 3.401 1.1337 9.076 1.31e-05 ***
## Residuals 172 21.485 0.1249
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 44 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.004380476 -0.2020555 0.21081645 0.9999399
## x7c_12_2-x6c_16_1 -0.278332610 -0.4655387 -0.09112655 0.0009244
## x7c_8_3-x6c_16_1 -0.275670675 -0.4658419 -0.08549942 0.0013162
## x7c_12_2-x6c_6_2 -0.282713085 -0.4873730 -0.07805317 0.0024678
## x7c_8_3-x6c_6_2 -0.280051151 -0.4874269 -0.07267545 0.0032538
## x7c_8_3-x7c_12_2 0.002661934 -0.1855799 0.19090375 0.9999822
codes_at_time(df4, my_code = 4, my_class = 3)
## Code is: 4; Class is: 3
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 18.41 6.137 51.56 <2e-16 ***
## Residuals 172 20.47 0.119
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 44 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 3.436967e-16 -0.2015201 0.2015201 1.0000000
## x7c_12_2-x6c_16_1 7.551020e-01 0.5723540 0.9378501 0.0000000
## x7c_8_3-x6c_16_1 4.565217e-01 0.2708791 0.6421644 0.0000000
## x7c_12_2-x6c_6_2 7.551020e-01 0.5553157 0.9548884 0.0000000
## x7c_8_3-x6c_6_2 4.565217e-01 0.2540843 0.6589592 0.0000001
## x7c_8_3-x7c_12_2 -2.985803e-01 -0.4823395 -0.1148211 0.0002337
codes_at_time(df4, my_code = 1, my_class = 4)
## Code is: 1; Class is: 4
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 16.42 5.472 30.85 <2e-16 ***
## Residuals 225 39.92 0.177
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 47 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.01713287 -0.1956947 0.2299604 0.9967933
## x7c_12_2-x6c_16_1 0.63076923 0.4372398 0.8242986 0.0000000
## x7c_8_3-x6c_16_1 0.07904509 -0.1178702 0.2759604 0.7267135
## x7c_12_2-x6c_6_2 0.61363636 0.3987403 0.8285324 0.0000000
## x7c_8_3-x6c_6_2 0.06191223 -0.1560380 0.2798625 0.8828050
## x7c_8_3-x7c_12_2 -0.55172414 -0.7508733 -0.3525750 0.0000000
codes_at_time(df4, my_code = 2, my_class = 4)
## Code is: 2; Class is: 4
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 8.66 2.8856 16.25 1.35e-09 ***
## Residuals 225 39.95 0.1775
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 47 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 0.11608392 -0.09682518 0.3289930 0.4936405
## x7c_12_2-x6c_16_1 -0.33846154 -0.53206509 -0.1448580 0.0000576
## x7c_8_3-x6c_16_1 0.14429708 -0.05269368 0.3412878 0.2326809
## x7c_12_2-x6c_6_2 -0.45454545 -0.66952381 -0.2395671 0.0000007
## x7c_8_3-x6c_6_2 0.02821317 -0.18982059 0.2462469 0.9870231
## x7c_8_3-x7c_12_2 0.48275862 0.28353320 0.6819840 0.0000000
codes_at_time(df4, my_code = 3, my_class = 4)
## Code is: 3; Class is: 4
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0.806 0.26870 3.638 0.0136 *
## Residuals 225 16.617 0.07386
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 47 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -0.04020979 -0.17753238 0.09711280 0.8732034
## x7c_12_2-x6c_16_1 -0.15384615 -0.27871701 -0.02897530 0.0087994
## x7c_8_3-x6c_16_1 -0.08488064 -0.21193619 0.04217491 0.3109941
## x7c_12_2-x6c_6_2 -0.11363636 -0.25229359 0.02502086 0.1494847
## x7c_8_3-x6c_6_2 -0.04467085 -0.18529875 0.09595706 0.8439287
## x7c_8_3-x7c_12_2 0.06896552 -0.05953135 0.19746238 0.5074316
codes_at_time(df4, my_code = 4, my_class = 4)
## Code is: 4; Class is: 4
## Df Sum Sq Mean Sq F value Pr(>F)
## time 3 0.809 0.26956 6.277 0.000415 ***
## Residuals 225 9.663 0.04295
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 47 observations deleted due to missingness
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = `1` ~ time, data = dfa_class1)
##
## $time
## diff lwr upr p adj
## x6c_6_2-x6c_16_1 -9.300699e-02 -0.19772317 0.01170919 0.1013262
## x7c_12_2-x6c_16_1 -1.384615e-01 -0.23368257 -0.04324050 0.0012160
## x7c_8_3-x6c_16_1 -1.384615e-01 -0.23534852 -0.04157455 0.0015418
## x7c_12_2-x6c_6_2 -4.545455e-02 -0.15118846 0.06027937 0.6820855
## x7c_8_3-x6c_6_2 -4.545455e-02 -0.15269121 0.06178212 0.6916646
## x7c_8_3-x7c_12_2 -1.804112e-16 -0.09798607 0.09798607 1.0000000
When latent class c is highly homogeneous, members of are likely to provide the same observed response pattern, implying that one response pattern is characteristic of the class. If homogeneity is low, no single response pattern stands out.
When latent class separation is good, the pattern of item-response probabiltiies across indicator variables clearly differentiates among the latent classes. When there is high separation, a response pattern that enmerges as characteristic of a particular latent class will be characteristic of that class only (and will not be characteristic of any of the other latent classes).
df3 %>%
dplyr::select(-class) %>%
gather(class, prob, C1_prob, C2_prob, C3_prob) %>%
mutate_if(is.integer, replace_na, 0) %>%
unite(response_pattern, x6c_6_2, x6c_16_1, x7c_8_3, x7c_12_2, sep = "-") %>%
group_by(class, response_pattern) %>%
summarize(mean_post_prob = mean(prob),
n = n()) %>%
ungroup() %>%
spread(class, mean_post_prob) %>%
mutate_if(is.double, round, 3) %>%
arrange(desc(n)) %>%
print(n = 20)
## # A tibble: 143 x 5
## response_pattern n C1_prob C2_prob C3_prob
## <chr> <int> <dbl> <dbl> <dbl>
## 1 NA-2-2-2 8 0.888 0.112 0
## 2 NA-2-4-2 5 1 0 0
## 3 NA-2-4-4 5 1 0 0
## 4 NA-4-4-4 5 0.497 0 0.503
## 5 2-2-1-1 4 0 1 0
## 6 2-2-2-4 4 0.879 0.121 0
## 7 NA-2-2-1 4 0 1 0
## 8 2-2-2-1 3 0 1 0
## 9 2-2-2-2 3 0.885 0.115 0
## 10 NA-1-1-1 3 0 0.551 0.449
## 11 NA-1-1-4 3 0 0.124 0.876
## 12 NA-1-2-1 3 0 1 0
## 13 NA-1-4-4 3 0.202 0 0.798
## 14 NA-1-NA-1 3 0 0.569 0.431
## 15 NA-2-2-4 3 0.882 0.118 0
## 16 NA-3-4-4 3 1 0 0
## 17 1-1-1-4 2 0 0.126 0.874
## 18 1-2-4-2 2 1 0 0
## 19 1-4-2-1 2 0 1 0
## 20 1-4-2-2 2 0.849 0.151 0
## # … with 123 more rows
df4 %>%
dplyr::select(-class) %>%
gather(class, prob, C1_prob, C2_prob, C3_prob, C4_prob) %>%
mutate_if(is.integer, replace_na, 0) %>%
unite(response_pattern, x6c_6_2, x6c_16_1, x7c_8_3, x7c_12_2, sep = "-") %>%
mutate(n_NA = str_count(response_pattern, "NA")) %>%
filter(n_NA <= 2) %>%
group_by(class, response_pattern) %>%
summarize(mean_post_prob = mean(prob),
n = n()) %>%
ungroup() %>%
spread(class, mean_post_prob) %>%
mutate_if(is.double, round, 3) %>%
arrange(desc(n)) %>%
print(n = 20)
## # A tibble: 143 x 6
## response_pattern n C1_prob C2_prob C3_prob C4_prob
## <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 NA-2-2-2 8 0.917 0 0.083 0
## 2 NA-2-4-2 5 0.873 0 0.127 0
## 3 NA-2-4-4 5 0.488 0 0.512 0
## 4 NA-4-4-4 5 0.253 0.747 0 0
## 5 2-2-1-1 4 0 0 0.176 0.824
## 6 2-2-2-4 4 0.449 0 0.551 0
## 7 NA-2-2-1 4 0 0 0.145 0.855
## 8 2-2-2-1 3 0 0 0.206 0.794
## 9 2-2-2-2 3 0.854 0 0.146 0
## 10 NA-1-1-1 3 0 0.145 0.096 0.759
## 11 NA-1-1-4 3 0 0.506 0.494 0
## 12 NA-1-2-1 3 0 0 0.133 0.867
## 13 NA-1-4-4 3 0.08 0.414 0.506 0
## 14 NA-1-NA-1 3 0 0.154 0.15 0.695
## 15 NA-2-2-4 3 0.606 0 0.394 0
## 16 NA-3-4-4 3 0.085 0 0.915 0
## 17 1-1-1-4 2 0 1 0 0
## 18 1-2-4-2 2 1 0 0 0
## 19 1-4-2-1 2 0 0 0 1
## 20 1-4-2-2 2 1 0 0 0
## # … with 123 more rows