# SGP Data Analysis

#### Damian W Betebenner & Adam R Van Iwaarden

#### February 20th, 2019

# Introduction

SGP analyses can be conducted in many ways with several variations. In general, one can always conduct the analyses using the lower level functions `studentGrowthPercentiles` and `studentGrowthProjections`. However, it is often easier to use higher level functions (wrapper functions) for the lower level functions, particularly for operational analyses. Both approaches to running SGP analyses are discussed below.

# SGP analysis using lower level functions

# SGP analysis using higher level functions

## SGP Analysis in 6 Steps

1. `prepareSGP`
2. `analyzeSGP`
3. `combineSGP`
4. `summarizeSGP`
5. `visualizeSGP`
6. `outputSGP`

## SGP Analysis in 1 Step

Because these steps are almost always conducted simultaneously in operational SGP analyses, the SGP Package has wrapper functions `abcSGP` and `updateSGP` that “wrap” the above 6 steps into a single function call, simplifying the source code associated with the analysis.

    #####################################################################################
    ###
    ### R Script for Demonstration SGP analyses
    ###
    #####################################################################################

    ### Load SGP & SGPdata packages

    require(SGP)
    require(SGPdata)

    ### abcSGP

    Demonstration_SGP <- abcSGP(
        sgp_object=sgpData_LONG,
        data_supplementary=list(INSTRUCTOR_NUMBER=sgpData_INSTRUCTOR_NUMBER),
        parallel.config=list(BACKEND="PARALLEL", WORKERS=list(PERCENTILES=4, BASELINE_PERCENTILES=4, PROJECTIONS=4, LAGGED_PROJECTIONS=4, SGP_SCALE_SCORE_TARGETS=4, SUMMARY=4, GA_PLOTS=4, SG_PLOTS=1)))

    ### Save results

    save(Demonstration_SGP, file="Data/Demonstration_SGP.Rdata")

Running this script will run the six steps mentioned earlier by performing the following:

1. `prepareSGP` Take exemplar LONG data, sgpData_LONG, and INSTRUCTOR-STUDENT lookup files, sgpData_INSTRUCTOR_NUMBER and create the SGP object Demonstration_SGP that includes them.
2. `analyzeSGP` Performs SGP analyses for all years and content areas including: student growth percentiles, baseline student growth percentiles, student growth projections, baseline student growth projections, lagged student growth projections, lagged baseline student growth projections.
3. `combineSGP` Merges results derived from analyzeSGP back into the master longitudinal record, Demonstration_SGP@Data, and calculates/creates scale scores associated with SGP targets.
4. `summarizeSGP` Calculates summary tables and puts them results into the Demonstration_SGP@Summary slot.
5. `visualizeSGP` Creates state level summary bubble plots, growth achievement plots (wave charts), and demonstration student growth plots.
6. `outputSGP` Exports data in multiple formats:

- Demonstration_SGP_Data_LONG.txt.zip a pipe delimited copy of Demonstration_SGP@Data, the complete master longitudinal record.
- Demonstration_SGP_Data_LONG_2020.txt.zip a pipe delimited copy of the 2020 longitudinal record subsetted from Demonstration_SGP@Data.
- Demonstration_SGPData_WIDE.txt.zip a pipe delimited WIDE version of the master longitudinal record, Demonstration_SGP@Data.
- Demonstration_SGP_INSTRUCTOR_Data.txt.zip a pipe delimited LONG version of the INSTRUCTOR_NUMBER file merged with the master longitudinal data record.

The parallel.config argument is used to take advantage of computing resources with multiple processors/cores. In general, parallel computation works better on Linux/OSX than on Windows, though the package is tested on all three operating systems. Removing the parallel.config argument will result in the analyses being run sequentially — same results, just takes longer.

# Contributions & Requests

If you have a contribution or topic request for this vignette, don’t hesitate to write or set up an issue on GitHub.