In this section, we start out by doing:
library(tidyverse)
library(tidyLPA)
library(psych)
usethis::use_git_ignore("*.csv")
## ✔ Setting active project to '/Users/joshuarosenberg/Documents/tetc-analysis'
Read the data:
d <- read_csv("tetcs-survey-export.csv", skip = 0)
## Parsed with column specification:
## cols(
## .default = col_character()
## )
## See spec(...) for full column specifications.
df <- read_csv("full-tetcs-dataset.csv")
## Parsed with column specification:
## cols(
## .default = col_character(),
## StartDate = col_datetime(format = ""),
## EndDate = col_datetime(format = ""),
## RecipientLastName = col_logical(),
## RecipientFirstName = col_logical(),
## RecipientEmail = col_logical(),
## ExternalDataReference = col_logical(),
## Finished = col_double(),
## Status = col_double(),
## Q1 = col_double(),
## Q5_1 = col_double(),
## Q5_2 = col_double(),
## LocationLatitude = col_double(),
## LocationLongitude = col_double(),
## LocationAccuracy = col_double()
## )
## See spec(...) for full column specifications.
d <- d %>% slice(-c(1:2))
Check that the data loaded:
d
## # A tibble: 337 x 65
## StartDate EndDate Status IPAddress Progress `Duration (in s… Finished
## <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 2018-09-… 2018-0… 0 152.33.5… 100 499 1
## 2 2018-09-… 2018-0… 0 152.33.6… 100 1569 1
## 3 2018-09-… 2018-0… 0 152.33.7… 100 667 1
## 4 2018-09-… 2018-0… 0 134.139.… 100 555 1
## 5 2018-09-… 2018-0… 0 152.33.1… 100 600 1
## 6 2018-09-… 2018-0… 0 49.199.2… 100 1006 1
## 7 2018-09-… 2018-0… 0 120.151.… 100 491 1
## 8 2018-09-… 2018-0… 0 1.128.10… 100 868 1
## 9 2018-09-… 2018-0… 0 121.222.… 100 674 1
## 10 2018-09-… 2018-0… 0 144.133.… 100 616 1
## # ... with 327 more rows, and 58 more variables: RecordedDate <chr>,
## # ResponseId <chr>, RecipientLastName <chr>, RecipientFirstName <chr>,
## # RecipientEmail <chr>, ExternalReference <chr>, LocationLatitude <chr>,
## # LocationLongitude <chr>, DistributionChannel <chr>,
## # UserLanguage <chr>, Q2 <chr>, Q3 <chr>, Q3_8_TEXT <chr>, Q4 <chr>,
## # Q5_1 <chr>, Q5_2 <chr>, Q6 <chr>, Q6_6_TEXT <chr>, Q7 <chr>,
## # Q7_7_TEXT <chr>, Q8 <chr>, Q8_12_TEXT <chr>, Q9_4 <chr>, Q9_5 <chr>,
## # Q9_6 <chr>, Q9_7 <chr>, `Q10#1_1` <chr>, `Q10#1_2` <chr>,
## # `Q10#1_3` <chr>, `Q10#1_4` <chr>, `Q10#1_5` <chr>, Q11_1 <chr>,
## # Q11_2 <chr>, Q11_3 <chr>, Q11_4 <chr>, Q11_5 <chr>, Q11_6 <chr>,
## # Q11_7 <chr>, Q11_8 <chr>, Q11_9 <chr>, Q11_10 <chr>, Q11_11 <chr>,
## # Q11_12 <chr>, Q12 <chr>, Q13 <chr>, Q14 <chr>, Q15 <chr>, Q16 <chr>,
## # Q17 <chr>, Q18_1 <chr>, Q18_2 <chr>, Q18_3 <chr>, Q18_4 <chr>,
## # Q18_5 <chr>, Q18_6 <chr>, Q18_7 <chr>, Q18_8 <chr>, Q18_9 <chr>
Process the TETCs variables:
ds <- d %>%
select(Q11_1:Q11_12) %>%
set_names(1:12) %>%
mutate_all(str_extract, "\\(?[0-9,.]+\\)?") %>%
mutate_all(as.integer) %>%
set_names(str_c("v", 1:12))
parallel <- fa.parallel(ds, fm = 'minres', fa = 'fa')
## Parallel analysis suggests that the number of factors = 3 and the number of components = NA
parallel
## Call: fa.parallel(x = ds, fm = "minres", fa = "fa")
## Parallel analysis suggests that the number of factors = 3 and the number of components = NA
##
## Eigen Values of
##
## eigen values of factors
## [1] 6.25 0.34 0.30 0.14 0.05 -0.01 -0.06 -0.08 -0.13 -0.15 -0.18
## [12] -0.21
##
## eigen values of simulated factors
## [1] 0.48 0.26 0.19 0.14 0.09 0.05 0.00 -0.05 -0.10 -0.14 -0.19
## [12] -0.26
##
## eigen values of components
## [1] 6.71 0.85 0.79 0.68 0.57 0.51 0.44 0.38 0.33 0.28 0.25 0.21
##
## eigen values of simulated components
## [1] NA
There seems to be just one factor.
o <- ds %>% compare_solutions_mplus(v1:v12)
write_rds(o,"compare-solutions-mplus.rds")
x <- ds %>%
estimate_profiles_mplus(v1:v12, n_profiles = 3, variances = 'equal', covariances = 'zero')
write_rds(x, "x.rds")
o <- read_rds("compare-solutions-mplus.rds")
x <- read_rds("x.rds")
o[[2]] %>% knitr::kable()
n_profiles | model_number | variances | covariances | cluster_ID | LL | npar | AIC | BIC | SABIC | CAIC | AWE | Entropy | LL_replicated | cell_size | VLMR_val | VLMR_p | LMR_val | LMR_p | BLRT_val | BLRT_p |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | 1 | equal | zero | NA | -5380.308 | 37 | 10834.616 | 10975.85 | 10858.481 | 10844.05 | 11302.08 | 0.918 | 10/10 | 159, 177 | 1579.425 | 0.0000 | 1558.812 | 0.0000 | 1579.425 | 0 |
2 | 2 | varying | zero | NA | -5253.411 | 49 | 10604.823 | 10791.86 | 10636.427 | 10621.96 | 11223.90 | 0.942 | 10/10 | 199, 137 | 1833.218 | 0.0004 | 1820.699 | 0.0004 | 1833.218 | 0 |
3 | 1 | equal | zero | NA | -5125.000 | 50 | 10349.999 | 10540.85 | 10382.249 | 10367.89 | 10981.71 | 0.920 | 10/10 | 83, 137, 116 | 510.617 | 0.0000 | 503.953 | 0.0000 | 510.617 | 0 |
4 | 1 | equal | zero | NA | -5066.325 | 63 | 10258.651 | 10499.13 | 10299.285 | 10288.30 | 11054.61 | 0.916 | 10/10 | 18, 74, 115, 129 | 117.348 | 0.0591 | 115.817 | 0.0616 | 117.348 | 0 |
6 | 1 | equal | zero | NA | -4982.306 | 89 | 10142.612 | 10482.33 | 10200.016 | 10207.73 | 11267.06 | 0.870 | 10/10 | 16, 64, 70, 33, 58, 95 | 79.371 | 0.7194 | 78.335 | 0.7204 | 79.371 | 0 |
7 | 1 | equal | zero | NA | -4944.716 | 102 | 10093.431 | 10482.78 | 10159.220 | 10183.61 | 11382.12 | 0.886 | 5/10 | 17, 50, 76, 20, 20, 63, 90 | 75.180 | 0.2291 | 74.199 | 0.2300 | 75.180 | 0 |
2 | 3 | equal | equal | NA | -4917.573 | 103 | 10041.146 | 10434.31 | 10107.581 | 10133.49 | 11342.47 | 0.862 | 10/10 | 97, 239 | 76.527 | 0.1675 | 75.529 | 0.1721 | 76.527 | 0 |
3 | 3 | equal | equal | NA | -4830.263 | 116 | 9892.527 | 10335.31 | 9967.346 | 10016.47 | 11358.10 | 1.000 | 4/10 | 70, 110, 156 | 174.620 | 0.5565 | 172.341 | 0.5600 | 174.620 | 0 |
4 | 3 | equal | equal | NA | -4805.529 | 129 | 9869.057 | 10361.47 | 9952.261 | 10031.87 | 11498.87 | 0.991 | 2/10 | 70, 110, 8, 148 | 49.469 | 0.4715 | 48.824 | 0.4791 | 49.469 | 0 |
The fit statistics don’t suggest a clear pattern.
Perhaps a three profile solution:
plot_profiles_mplus(x, to_center = TRUE)
There really seems to be groups only in terms of overall level of the twelve items; not any combinations of them variables in characteristic ways.
Proportion by grade level:
df %>%
count(Q7_7)%>%
knitr::kable()
Q7_7 | n |
---|---|
Other | 54 |
NA | 283 |
There are a number of others, see
df %>%
select(Q7_7_TEXT) %>%
filter(!is.na(Q7_7_TEXT)) %>%
slice(1:25)%>%
knitr::kable()
Q7_7_TEXT |
---|
K-12 Licensure Area |
Specialists |
K-12 specialty area and K-12 special education |
Special Education |
CTE, Special Education, Principals |
K-16 |
Post-Secondary |
international teaching assistants |
Adults |
K-12 special Education teachers |
Special Education |
Further Education (post high school) but not University/College |
I currently work with only in-service teachers. |
special education, reading |
Higher education/ professors |
special education teachers (ages 3-21) |
Through our BAES program I also prepare people to work in informal educational settings. |
Community College |
Informal STEM educators |
Special education |
Special Education |
Special Education |
Lateral Entry Beginning Teachers (BT1-BT3) |
librarians |
parenting educators (licensed) |
Let’s look at the counts of the main ones for now:
df %>%
select(Q7_1:Q7_4) %>%
count(Q7_1, Q7_2,Q7_3, Q7_4) %>%
arrange(desc(n))%>%
knitr::kable()
Q7_1 | Q7_2 | Q7_3 | Q7_4 | n |
---|---|---|---|---|
NA | Elementary / primary teachers | Middle grades / junior high school teachers | Secondary / high school teachers | 83 |
Early childhood teachers | Elementary / primary teachers | Middle grades / junior high school teachers | Secondary / high school teachers | 73 |
NA | NA | Middle grades / junior high school teachers | Secondary / high school teachers | 43 |
NA | Elementary / primary teachers | NA | NA | 35 |
NA | NA | NA | Secondary / high school teachers | 32 |
Early childhood teachers | Elementary / primary teachers | NA | NA | 21 |
NA | Elementary / primary teachers | Middle grades / junior high school teachers | NA | 15 |
NA | NA | NA | NA | 13 |
Early childhood teachers | Elementary / primary teachers | Middle grades / junior high school teachers | NA | 7 |
NA | NA | Middle grades / junior high school teachers | NA | 6 |
Early childhood teachers | NA | NA | NA | 3 |
Early childhood teachers | Elementary / primary teachers | NA | Secondary / high school teachers | 2 |
Early childhood teachers | NA | Middle grades / junior high school teachers | Secondary / high school teachers | 2 |
NA | Elementary / primary teachers | NA | Secondary / high school teachers | 2 |
This is quite messy but I think is instructive; how to process this is a bit tricky.
There are a bunch of others:
df %>%
count(Q8_12)%>%
knitr::kable()
Q8_12 | n |
---|---|
Other | 64 |
NA | 273 |
Some specifics:
df %>%
select(Q8_12_TEXT) %>%
filter(!is.na(Q8_12_TEXT)) %>%
slice(1:25) %>%
knitr::kable()
Q8_12_TEXT |
---|
Math/science and social-emotional within early childhood, but it’s fairly interdisciplinary |
Business |
Literacy |
ESL/Bilingual Education |
educational technology |
ESL |
Curriculum and Instruction |
Some specialism in ICT/Computing |
Digital Learning |
Pedagogy |
LIbrary Media Specialist |
Literacy |
Ethics |
Reading |
Teaching English as a Second Language |
Leadership |
ELL |
classroom mangement |
Biology |
Multicultural |
English as a Second Language |
Engineering |
ESOL |
Literacy |
I teach child development and family engagement courses within teacher ed programs |
df %>%
select(Q8_1:Q8_11) %>%
count( Q8_1,Q8_2,Q8_3,Q8_4, Q8_5, Q8_6, Q8_7, Q8_8, Q8_9 ,Q8_10,Q8_11) %>%
arrange(desc(n))%>%
knitr::kable()
Q8_1 | Q8_2 | Q8_3 | Q8_4 | Q8_5 | Q8_6 | Q8_7 | Q8_8 | Q8_9 | Q8_10 | Q8_11 | n |
---|---|---|---|---|---|---|---|---|---|---|---|
NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 79 |
NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | Technology | 42 |
NA | NA | Science | NA | NA | NA | NA | NA | NA | NA | NA | 37 |
English / Language Arts | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 34 |
NA | NA | NA | NA | NA | NA | NA | NA | Special Education | NA | NA | 24 |
NA | NA | NA | History / Social Studies | NA | NA | NA | NA | NA | NA | NA | 23 |
NA | Mathematics | NA | NA | NA | NA | NA | NA | NA | NA | NA | 18 |
NA | Mathematics | Science | NA | NA | NA | NA | NA | NA | NA | NA | 9 |
NA | NA | Science | NA | NA | NA | NA | NA | NA | NA | Technology | 6 |
English / Language Arts | NA | NA | NA | NA | NA | NA | NA | NA | NA | Technology | 5 |
NA | NA | NA | NA | NA | Music | NA | NA | NA | NA | NA | 4 |
NA | NA | NA | NA | NA | NA | NA | NA | NA | Career Technical Education | NA | 4 |
English / Language Arts | Mathematics | Science | History / Social Studies | Physical Education & Health | Music | Fine Arts | World Languages | Special Education | NA | Technology | 3 |
NA | NA | NA | NA | Physical Education & Health | NA | NA | NA | NA | NA | NA | 3 |
English / Language Arts | Mathematics | Science | History / Social Studies | Physical Education & Health | NA | NA | NA | NA | NA | NA | 2 |
English / Language Arts | Mathematics | Science | History / Social Studies | NA | NA | Fine Arts | NA | NA | NA | NA | 2 |
English / Language Arts | Mathematics | Science | History / Social Studies | NA | NA | NA | World Languages | NA | NA | NA | 2 |
English / Language Arts | NA | NA | NA | NA | NA | NA | NA | Special Education | NA | NA | 2 |
NA | Mathematics | Science | NA | NA | NA | NA | NA | Special Education | NA | NA | 2 |
NA | NA | NA | History / Social Studies | NA | NA | NA | NA | NA | NA | Technology | 2 |
NA | NA | NA | NA | NA | NA | NA | NA | Special Education | NA | Technology | 2 |
English / Language Arts | Mathematics | Science | History / Social Studies | Physical Education & Health | Music | Fine Arts | World Languages | Special Education | Career Technical Education | Technology | 1 |
English / Language Arts | Mathematics | Science | History / Social Studies | Physical Education & Health | Music | Fine Arts | World Languages | Special Education | NA | NA | 1 |
English / Language Arts | Mathematics | Science | History / Social Studies | Physical Education & Health | Music | Fine Arts | World Languages | NA | NA | NA | 1 |
English / Language Arts | Mathematics | Science | History / Social Studies | Physical Education & Health | Music | NA | World Languages | Special Education | Career Technical Education | Technology | 1 |
English / Language Arts | Mathematics | Science | History / Social Studies | Physical Education & Health | Music | NA | World Languages | Special Education | NA | NA | 1 |
English / Language Arts | Mathematics | Science | History / Social Studies | Physical Education & Health | NA | Fine Arts | NA | Special Education | NA | Technology | 1 |
English / Language Arts | Mathematics | Science | History / Social Studies | NA | NA | NA | World Languages | Special Education | NA | NA | 1 |
English / Language Arts | Mathematics | Science | History / Social Studies | NA | NA | NA | NA | NA | NA | NA | 1 |
English / Language Arts | Mathematics | Science | NA | Physical Education & Health | NA | NA | NA | NA | NA | NA | 1 |
English / Language Arts | Mathematics | Science | NA | NA | NA | NA | NA | Special Education | NA | NA | 1 |
English / Language Arts | Mathematics | NA | History / Social Studies | NA | NA | NA | NA | NA | NA | NA | 1 |
English / Language Arts | Mathematics | NA | NA | Physical Education & Health | NA | NA | NA | NA | NA | Technology | 1 |
English / Language Arts | Mathematics | NA | NA | NA | NA | NA | NA | Special Education | NA | NA | 1 |
English / Language Arts | Mathematics | NA | NA | NA | NA | NA | NA | NA | NA | NA | 1 |
English / Language Arts | NA | NA | History / Social Studies | NA | NA | Fine Arts | NA | Special Education | NA | NA | 1 |
English / Language Arts | NA | NA | History / Social Studies | NA | NA | NA | World Languages | NA | NA | Technology | 1 |
English / Language Arts | NA | NA | History / Social Studies | NA | NA | NA | NA | Special Education | NA | NA | 1 |
English / Language Arts | NA | NA | History / Social Studies | NA | NA | NA | NA | NA | NA | Technology | 1 |
English / Language Arts | NA | NA | History / Social Studies | NA | NA | NA | NA | NA | NA | NA | 1 |
English / Language Arts | NA | NA | NA | NA | Music | Fine Arts | NA | NA | NA | NA | 1 |
English / Language Arts | NA | NA | NA | NA | NA | NA | NA | Special Education | NA | Technology | 1 |
NA | Mathematics | Science | History / Social Studies | NA | NA | NA | NA | NA | NA | NA | 1 |
NA | Mathematics | Science | NA | NA | NA | NA | NA | NA | NA | Technology | 1 |
NA | Mathematics | NA | NA | NA | NA | NA | NA | Special Education | NA | Technology | 1 |
NA | Mathematics | NA | NA | NA | NA | NA | NA | NA | NA | Technology | 1 |
NA | NA | Science | NA | NA | NA | NA | NA | Special Education | NA | NA | 1 |
NA | NA | NA | History / Social Studies | NA | NA | NA | NA | Special Education | NA | Technology | 1 |
NA | NA | NA | NA | Physical Education & Health | NA | NA | NA | NA | NA | Technology | 1 |
NA | NA | NA | NA | NA | Music | Fine Arts | NA | NA | NA | NA | 1 |
NA | NA | NA | NA | NA | NA | Fine Arts | NA | NA | NA | NA | 1 |
NA | NA | NA | NA | NA | NA | NA | World Languages | NA | NA | NA | 1 |
NA | NA | NA | NA | NA | NA | NA | NA | NA | Career Technical Education | Technology | 1 |
A big mess, but perhaps instructive, still.