class: center, middle, my-title, title-slide .title[ # Academic Impact Part 2 ] .subtitle[ ## Data Visualization and Analysis in the Era of COVID-19 ] .author[ ### Damian Betebenner, Adam VanIwaarden & Nathan Dadey ] .institute[ ### Center for Assessment ] .date[ ### March 22nd, 2022 (updated: April 20th, 2022) ] --- class: inverse, center, middle
# Academic Impact --- ## Learning Deceleration/Acceleration -- - Summarization of assessment data (either for diagnostic or accountability purposes) of emphasizes two types of data results: Status (i.e. student attainment) and Growth (i.e., student academic progress). - With the pandemic, emaphasis has changed to look at _academic impact_. - In yesterday's introduction we discussed status impact (odometer) and growth impact (speedometer). - We emphasize that Impact is synonymous with _decleration_ and Recovery is synonymous with _acceleration_. - Deceleration, by definition, is the change in velocity (i.e. growth). - Improvement (increasing student attainment/status in a system over time) is indicative of acceleration (unless the population is changing leading to the increased attainment/status) - One of the most informative and least appreciated papers that discusses this is [Focusing State Educational Accountability Systems: Four Methods of Judging School Quality and Progress](https://www.nciea.org/sites/default/files/publications/Dale020402.pdf) --- <img src="Academic_Impact_Part_2_files/figure-html/unnamed-chunk-1-1.png" width="4400" /> --- # Data to Investigate Academic Impact - The data set we will utilize is called __sgpData_LONG_COVID__ and is a part of the __SGPdata__ package you've installed. - Load the package into your R environment: - Explore the dataset: ```r summary(sgpData_LONG_COVID) ``` --- # Status Based Academic Impact - To analyze and visualize status based impact we will investigate changes to the Empirical Cummulative Distribution Functions (ECDFs) for grade by cohort pairs. - We begin by analyzing ECDFs for Grade 8 mathematics in 2019 versus Grade 8 mathematics in 2021. ```r math_g8_2019 <- sgpData_LONG_COVID[CONTENT_AREA=="MATHEMATICS" & GRADE=="8" & YEAR=="2019"] math_g8_2021 <- sgpData_LONG_COVID[CONTENT_AREA=="MATHEMATICS" & GRADE=="8" & YEAR=="2021"] math_g8_2019_quantiles <- quantile(math_g8_2019$SCALE_SCORE, probs=0:100/100) math_g8_2021_quantiles <- quantile(math_g8_2021$SCALE_SCORE, probs=0:100/100) ``` --- ## Academic Impact: Status <img src="Academic_Impact_Part_2_files/figure-html/unnamed-chunk-4-1.png" width="3184" /> --- ## Create Plot of Status Based Academic Impact ```r par(mai=c(0.5, 0.5, 0.25, 0)) plot(x=50, y=500, type="n", xlim=c(0,100), ylim=c(350, 700), axes=FALSE, main="Status Academic Impact: Mathematics Grade 8") points(0:100, math_g8_2019_quantiles, type="l", col="black") points(0:100, math_g8_2021_quantiles, type="l", col="red") axis(1, at=0:10*10) axis(2, at=c(350, 400, 450, 500, 550, 600, 650, 700), cex.axis=0.7) ``` <img src="Academic_Impact_Part_2_files/figure-html/unnamed-chunk-5-1.png" style="display: block; margin: auto;" /> --- ## Create Plot of Status Based Academic Impact ```r par(mai=c(0.5, 0.5, 0.25, 0)) plot(x=50, y=500, type="n", xlim=c(0,100), ylim=c(350, 700), axes=FALSE, main="Status Academic Impact: Mathematics Grade 8") points(0:100, math_g8_2019_quantiles, type="l", col="black") points(0:100, math_g8_2021_quantiles, type="l", col="red") axis(1, at=0:10*10) axis(2, at=c(350, 400, 450, 500, 550, 600, 650, 700), cex.axis=0.7) abline(h=c(472, 500, 542), lty=2, col="blue") ``` <img src="Academic_Impact_Part_2_files/figure-html/unnamed-chunk-6-1.png" style="display: block; margin: auto;" /> --- ## Identifying percent at/above proficient - Normally, you will have the percentage of students in a grade/content area at above proficient. - However, they can be derived from the data we are using. - From above, we know that 577 is the proficient cutscore for grade 8, mathematics - We can use ECDFs to calculate these ```r math_g8_2019_ecdf <- ecdf(math_g8_2019$SCALE_SCORE) math_g8_2021_ecdf <- ecdf(math_g8_2021$SCALE_SCORE) 100 - 100*math_g8_2019_ecdf(500) ``` ``` ## [1] 55.26433 ``` ```r 100 - 100*math_g8_2021_ecdf(500) ``` ``` ## [1] 43.5762 ``` --- ```r par(mai=c(0.5, 0.5, 0.25, 0)) plot(x=50, y=500, type="n", xlim=c(0,100), ylim=c(350, 700), axes=FALSE, main="Status Academic Impact: Mathematics Grade 8") points(0:100, math_g8_2019_quantiles, type="l", col="black") points(0:100, math_g8_2021_quantiles, type="l", col="red") axis(1, at=0:10*10) axis(2, at=c(350, 400, 450, 500, 550, 600, 650, 700), cex.axis=0.7) abline(h=c(472, 500, 542), lty=2, col="blue") abline(v=c(55.26, 43.58), col="black", lty=3) ``` <img src="Academic_Impact_Part_2_files/figure-html/unnamed-chunk-8-1.png" style="display: block; margin: auto;" /> --- ## To facilitate plotting convert LONG data to WIDE data ```r SGP::outputSGP(sgpData_LONG_COVID, output.type='WIDE') ``` --- ## Growth Based Academic Impact ```r load('Data/Demonstration_COVID_SGP_WIDE_Data.Rdata') g8_2019_2021_data <- Demonstration_COVID_SGP_WIDE_Data[GRADE.2019.MATHEMATICS=="6" & GRADE.2021.MATHEMATICS=="8"] g8_2017_2019_data <- Demonstration_COVID_SGP_WIDE_Data[GRADE.2017.MATHEMATICS=="6" & GRADE.2019.MATHEMATICS=="8"] attach(g8_2019_2021_data) plot(SCALE_SCORE.2019.MATHEMATICS, SCALE_SCORE.2021.MATHEMATICS, pch=".", cex=0.5, xlab="Scaled Score 2019: Grade 6", ylab="Scaled Score 2021: Grade 8") ``` <img src="Academic_Impact_Part_2_files/figure-html/unnamed-chunk-10-1.png" style="display: block; margin: auto;" /> ```r detach(g8_2019_2021_data) ``` --- ## Calculate conditional status splines ```r load('Data/Demonstration_COVID_SGP_WIDE_Data.Rdata') g8_2019_2021_data <- Demonstration_COVID_SGP_WIDE_Data[GRADE.2019.MATHEMATICS=="6" & GRADE.2021.MATHEMATICS=="8"] g8_2017_2019_data <- Demonstration_COVID_SGP_WIDE_Data[GRADE.2017.MATHEMATICS=="6" & GRADE.2019.MATHEMATICS=="8"] attach(g8_2019_2021_data) spline_2019_to_2021 <- lm(SCALE_SCORE.2021.MATHEMATICS ~ bs(SCALE_SCORE.2019.MATHEMATICS)) detach(g8_2019_2021_data) attach(g8_2017_2019_data) spline_2017_to_2019 <- lm(SCALE_SCORE.2019.MATHEMATICS ~ bs(SCALE_SCORE.2017.MATHEMATICS)) detach(g8_2017_2019_data) ``` --- ```r attach(g8_2019_2021_data) plot(SCALE_SCORE.2019.MATHEMATICS, SCALE_SCORE.2021.MATHEMATICS, pch=".", cex=0.5, xlab="Scaled Score 2019: Grade 6", ylab="Scaled Score 2021: Grade 8") x_coors <- min(SCALE_SCORE.2019.MATHEMATICS, na.rm=TRUE):max(SCALE_SCORE.2019.MATHEMATICS) points(x_coors, predict(spline_2017_to_2019, data.frame(SCALE_SCORE.2017.MATHEMATICS=x_coors)), col="black", type="l") points(x_coors, predict(spline_2019_to_2021, data.frame(SCALE_SCORE.2019.MATHEMATICS=x_coors)), col="red", type="l") detach(g8_2019_2021_data) ``` --- <img src="Academic_Impact_Part_2_files/figure-html/unnamed-chunk-13-1.png" width="3151" /> ---