SGP (version 0.0-8.0)

studentGrowthProjections: Student Growth Projections

Description

Function to calculate percentile growth projections/trajectories using large scale assessment data and results derived from student growth percentile calculation. Function can produce percentile growth trajectories, as well as growth percentiles, sufficient for each student to reach a set of predefined scale score cut.

Usage

studentGrowthProjections(panel.data, 
                         sgp.labels,               
                         grade.progression,       
                         max.forward.progression, 
                         max.order.for.progression,  
                         use.my.knots.boundaries,   
                         use.my.coefficient.matrices,  
                         panel.data.vnames,         
                         performance.level.cutscores, 
                         chunk.size=5000,          
                         convert.0and100=TRUE,    
                         projection.unit="YEAR",       
                         percentile.trajectory.values=NULL, 
                         isotonize=TRUE,     
                         projcuts.digits=0)

Arguments

panel.data
Object of class list containing longitudinal student data in wide format in panel.data$Panel_Data. See studentGrowthPercentiles for data requirements. List obj
sgp.labels
REQUIRED. A list, sgp.labels, of the form list(my.year= , my.subject= ). The user-specified values are used to save the percentile growth projections/trajectories and identify coefficient matrices and knots & bound
grade.progression
REQUIRED. Argument to specify a student grade/time progression in the data to be used for percentile growth projection/trajectory calculation. This argument helps in replacing previous arguments num.panels, max.num.scores, an
max.forward.progression
The MAXIMUM number of years/grades/time periods to project forward conditional upon available coefficient matrices. If missing, function will project forward as far as allowed by available coefficient matrices.
max.order.for.progression
Argument to specify the maximum coefficient matrix order to be used for percentile growth projection/trajectory calculation. If missing, the function utilizes the highest matrix order available.
use.my.knots.boundaries
A list of the form list(my.year= , my.subject= ) specifying the set of pre-calculated knots and boundaries for B-spline calculations. Knot and boundaries are stored (and must be made available) with panel.data supplied as a
use.my.coefficient.matrices
A list of the form list(my.year= , my.subject= ) specifying the set of pre-calculated coefficient matrices to use for percentile growth projection/trajectory calculations. Coefficient matrices are stores (and must be available) with
panel.data.vnames
Vector of variables to use in percentile growth projection/trajectory calculations. If not specified, function attempts to use all available variables.
performance.level.cutscores
Argument for supplying performance level cutscores to be used for determining growth-to-standard percentile growth trajectory calculations. Argument accepts a two letter state acronym (e.g., "CO") that retrieves cutscores that are automatically embedded i
chunk.size
An integer (default of 5,000) indicating the number of rows in the block of data to process separately (so that the program doesn't overwhelm memory).
convert.0and100
Boolean argument (defaults to TRUE) indicating whether conversion of growth percentiles of 0 and 100 to growth percentiles of 1 and 99, respectively, occurs. The default produces growth percentiles ranging from 1 to 99.
projection.unit
Argument specifying the units in which the projections/trajectories and cuts are reported. Either "GRADE", the default, or "YEAR".
percentile.trajectory.values
Returns a vector of percentile trajectories (defaults to 1 to 99) associated with percentile growth projections/trajectories produced, in addition to the percentiles sufficient to reach the performance thresholds. If no percentile trajectories are desir
isotonize
Boolean argument (defaults to TRUE) indicating whether quantile regression results are isotonized to prevent quantile crossing following the methods derived by Dette & Volgushev (2008).
projcuts.digits
The number of digits (defaults to 0) percentile trajectories (if requested) are formatted.

Value

  • Function returns the input panel.data list object with the additional percentile growth trajectories/percentiles stored in panel.data$SGProjections$my.year.my.subject consisting of student IDs and the associated percentile growth projections/trajectories and cuts. The data frame contains projections/trajectories for each performance level cut-point supplied and each percentile cut the user specifies.

References

Betebenner, D. W. (2009). Norm- and criterion-referenced student growth. Educational Measurement: Issues and Practice, 28(4):42-51.

Betebenner, D. W. (2008). Toward a normative understanding of student growth. In K. E. Ryan & L. A. Shepard (Eds.), The Future of Test Based Accountability (pp. 155-170). New York: Routledge.

Dette, H. & Volgushev, S. (2008). Non-crossing non-parametric estimates of quantile curves. Journal of the Royal Statistical Society B, 70(3), 609-627.

See Also

studentGrowthPercentiles, sgpData, stateData

Examples

Run this code
## First calculate SGPs for 2011
my.grade.sequences <- list(3:4, 3:5, 3:6, 3:7, 4:8)
my.sgpData <- list(Panel_Data = sgpData)

for (i in seq_along(my.grade.sequences)) {
     my.sgpData <- studentGrowthPercentiles(panel.data=my.sgpData,
                     sgp.labels=list(my.year=2011, my.subject="Reading"),
                     use.my.knots.boundaries="DEMO",
                     grade.progression=my.grade.sequences[[i]])
}

## Calculate Growth Projections

my.grade.progressions <- list(3, 3:4, 3:5, 3:6, 4:7)

for (i in seq_along(my.grade.progressions)) {
     my.sgpData <- studentGrowthProjections(panel.data=my.sgpData,
                      sgp.labels=list(my.year=2011, my.subject="Reading"),
                      projcuts.digits=0,
                      projection.unit="GRADE",
                      performance.level.cutscores="DEMO",
                      percentile.trajectory.values=c(25, 50, 75),
                      grade.progression=my.grade.progressions[[i]])
}

##  Save the Student Growth Projections Results to a .csv file:
write.csv(my.sgpData$SGProjections$READING.2011, 
file= "2011_Reading_SGProjections.csv", row.names=FALSE, quote=FALSE)

Run the code above in your browser using DataLab