ZPDGrowthTrajectories: Function for creating simulated growth trajectories from the...

Description Usage Arguments Details Value See Also Examples

View source: R/ZPDGrowthTrajectories_function.r

Description

ZPDGrowthTrajectories creates synthetic academic achievement growth trajectories.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ZPDGrowthTrajectories(
  learn.rate,
  home.env,
  decay.rate,
  initial.ach,
  ZPD.width,
  ZPD.offset,
  home.learning.decay.rate,
  curriculum.start.points,
  curriculum.widths,
  curriculum.review.slopes,
  curriculum.advanced.slopes,
  assignment,
  dosage,
  adaptive.curriculum = FALSE,
  which.curriculum = NULL,
  school.weight,
  home.weight,
  decay.weight,
  integration.points = 250,
  threshold = 1e-05,
  verbose = TRUE
)

Arguments

learn.rate

Vector of learning rates, one per child. These values specify the global learning rate for each student. Values should be positive. The lengths of learn.rate, home.env, decay.rate, and initial.ach indicate the number of students to simulate and must match.

home.env

Vector of home environments, one per child. These values describe how conducive each student's home environment is for learning. Values should be positive.

decay.rate

Vector of decay rates, one per child. These values describe each student's rate of learning loss or decay. Values should be positive.

initial.ach

Vector of values describing the initial achievement level for each child. They should be zero or higher.

ZPD.width

Scalar value describing the radius of the ZPD. Affects the global growth rate. The function visualizeZPD() can be used to visualize different choices.

ZPD.offset

Scalar, measured on the same scale as achievement, describing where the ZPD peaks relative to the current achievement. A positive value means that the ZPD peaks at a higher achievement level that the student has currently attained. The function visualizeZPD can be used to select visualize, select, and understand this value. Positive values are generally appropriate, though the magnitude depends on ZPD.width.

home.learning.decay.rate

Scalar, the exponential decay parameter for the home learning function. Larger values indicate more rapid drop-off. Must be greater than 1. The functions visualizHome() and visualizeContext() can be used to visualize, understand, and select appropriate values.

curriculum.start.points

a matrix or list of matrices providing the start points of the school curriculum to be offered during each grade (or other time division). The matrices should have one column and one row per grade. Each list entry corresponds to a version of the curriculum, such as 'typical' or 'remedial.' The functions visualizeSchool() and visualizeContext() can be used to visualize, understand, and select appropriate values.

curriculum.widths

a matrix or list of matrices providing the widths or spans of the school curriculum to be offered during each grade (or other time division). The matrices should have one column and one row per grade. Each list entry corresponds to a version of the curriculum, such as 'typical' or 'remedial.' The functions visualizeSchool() and visualizeContext() can be used to visualize, understand, and select appropriate values.

curriculum.review.slopes

A matrix or list of matrices describing the steepness of the school curriculum cutoff at the lower range. Conceptually controls the amount of review content. Small numbers indicate a shallower slope and therefore more review content. As general guidance, values in the range of 10-20 describe heavy review, while 50-100 decribes little review, though this depends on the scale of the curriculum. The functions visualizeSchool() and visualizeContext() can be used to visualize, understand, and select appropriate values.

curriculum.advanced.slopes

a matrix or list of matrices describing the steepness of the school curriculum cutoff at the upper range. Conceptually controls the amount of advanced content. Small numbers indicate a shallower slope and therefore more advanced content. As general guidance, values in the range of 10-20 describe heavy review, while 50-100 decribes little review, though this depends on the scale of the curriculum. The functions visualizeSchool() and visualizeContext() can be used to visualize, understand, and select appropriate values.

assignment

A vector of integer values assigning school curricula to time intervals. The length is the number of time intervals to simulate. Each entry contains a number representing which grade-level curriculum to present. Zero denotes periods of no school instruction, such as summer breaks. The numbers correspond to the row index of the curriculum.start.points, curriculum.widths, curriculum.review.slopes, and curriculum.advanced.slopes objects.

dosage

Scalar dose parameter, controls mixing of school curriculum and home curriculum during school years, where 1 denotes all school and 0 denotes all home. Must be [0,1].

adaptive.curriculum

Logical; if there are multiple versions of the school curriculum for each time period, should they be assigned adaptively? TRUE means that the version that would produce the optimal achievement in each time period is presented. FALSE means that the curriculum assignment is based on which.curriculum. Defaults to FALSE

which.curriculum

Vector of integer values, one for each student, indicating which version of the curriculum is presented to each student. The values correspond to the list index for the curriculum.start.points, curriculum.widths, curriculum.review.slopes, and curriculum.advanced.slopes objects. If NULL, all students are assigned to the first curriculum. Defaults to NULL.

school.weight

A scalar for adjusting the overall growth from school exposure; prevents having to adjust all learn.rate values. Must be greater than or equal to 0. Defaults to 1.

home.weight

A scalar for adjusting the overall growth from home; prevents having to adjust all home.env values. Must be greater than or equal to 0. Defaults to 1.

decay.weight

A scalar for adjusting the overall rate of decay or forgetting; prevents having to adjust all decay.rate values. Defaults to 0.1.

integration.points

Integer number of integration points. Controls tradeoff between accuracy and execution speed. Defaults to 250.

threshold

A scalar value Used for determining the maximum achievement to be populated in the lookup tables, specified as a growth rate. The max achievement to be populated is the value at which the growth rate calls below the this number. Defaults to .00001.

verbose

logical, should status updates be printed to the console? Defaults to TRUE.

Details

This function creates synthetic achievement growth trajectories from a quantitative intepretation of Vygotsky theory based on an upcoming publication. The user describes the student characteristics (learning rate, decay rate, initial achievement, and home environment) as well as the home learning environment and the school curriculum. The function will then create a simulated growth trajectory for each student.

Value

An object of class ZPD, data.frame

See Also

visualizeContext, visualizeZPD, visualizeHome, and visualizeSchool for plotting the ZPD, home, and school learning context.

visualizeTrajectories for plotting the trajectories

describeTrajectories for calculating summary statistics

rescaleTrajectories for linear rescaling of the trajectories

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# learning rate
learn.rate <- c(.08, .10, .12, .18)

# decay rate
decay.rate <- c(.04, .03, .02, .01)

# initial achievement
initial.ach <- rep(0, times=4)

# quality of home environment
home.env <- c(.06, .12, .15, .20)

# assignment object simulating starting kindergarten on time 801
#  Kindergarten for 200 days, followed by 100 days of summer
#  then 200 days of first grade
assignment <- c(rep(0, times=800), rep(1, times=200),
                rep(0, times=100), rep(2, times=200))

# define school curriculum
curriculum.start.points <- list(
    # "typical curriculum" start points for K and first grade
  matrix(c(.2, .26), nrow=2, ncol=1),
    # "advanced curriculum" start points for K and first grade
  matrix(c(.22, .29), nrow=2, ncol=1)
)

curriculum.widths <- list(
  # "typical curriculum" widths for K and first grade
  matrix(c(.04, .04), nrow=2, ncol=1),
  # "advanced curriculum" widths for K and first grade
  matrix(c(.05, .05), nrow=2, ncol=1)
)

curriculum.review.slopes <- list(
  # "typical curriculum" review slopes for K and first grade
  matrix(c(30, 30), nrow=2, ncol=1),
  # "advanced curriculum" review slopes for K and first grade
  matrix(c(60, 60), nrow=2, ncol=1)
)

curriculum.advanced.slopes <- list(
  # "typical curriculum" advanced slopes for K and first grade
  matrix(c(50, 50), nrow=2, ncol=1),
  # "advanced curriculum" advanced slopes for K and first grade
  matrix(c(25, 25), nrow=2, ncol=1)
)

# students 1 and 2 get typical curriculum, 3 and 4 get advanced
which.curriculum <- c(1,1,2,2)

y <- ZPDGrowthTrajectories(learn.rate=learn.rate, home.env=home.env,
                           decay.rate=decay.rate, initial.ach=initial.ach,
                           ZPD.width=.05, ZPD.offset=.02,
                           home.learning.decay.rate=6,
                           curriculum.start.points=curriculum.start.points,
                           curriculum.widths=curriculum.widths,
                           curriculum.review.slopes=curriculum.review.slopes,
                           curriculum.advanced.slopes=curriculum.advanced.slopes,
                           assignment=assignment, dosage=.8,
                           adaptive.curriculum=FALSE,
                           which.curriculum=which.curriculum,
                           school.weight=.5, home.weight=1, decay.weight=.05,
                           verbose=TRUE)

head(y)

mcbeem/ZPDGrowthTrajectories documentation built on May 18, 2020, 2:04 p.m.