Create a revisit design for panels in a survey that specifies the time periods that members of each panel will be sampled. Three basic panel design structures may be created: always revisit panel, serially alternating panels, or rotating panels.

revisit_dsgn(n_period, panels, begin = 1, skip = 1)

Arguments

n_period

Number of time periods for the panel design. For example, number of periods if sampling occurs once per period or number of months if sampling occurs once per month.

panels

List of lists where each list specifies a revisit panel structure. Each sublist consists of four components: n - sample size for each panel in the sublist, pnl_dsgn - a vector with an even number of elements specifying the panel revisit schedule in terms of the number of consecutive time periods sample units will be sampled, followed by number of consecutive time periods skipped, and then repeated as necessary. pnl_n - number of panels in the sublist, and start_option - option for starting the revisit_dsgn (None, Partial_Begin, or Partial_End) which must be the same a pnl_dsgn. Three basic panel structures are possible: a) if pnl_dsgn ends in 0, then the sample units are visited on all subsequent time periods, b) if pnl_dsgn ends in NA, then panel follows a rotating panel structure, and c) if pnl_dsgn ends in any number > 0, then panel follows a serially alternating panel structure. See details for further information.

begin

Numeric name of first sampling occasion, e.g. a specific period.

skip

Number of time periods to skip between planned sampling periods, e.g., sampling will occur only every 5 periods if skip = 5.

Value

A two-dimensional array of sample sizes to be sampled at each combination of panel and time period.

Details

The function creates revisit designs using the concepts in McDonald (2003) to specify the revisit pattern across time periods for each panel. The panel revisit schedule is specified by a vector. Odd positions in vector specify the number of consecutive time periods when panel units are sampled. Even positions in vector specify the number of consecutive time periods when panel units are not sampled.

If last even position is a "0", then a single panel follows an always revisit panel structure. After satisfying the initial revisit schedule specified prior to the "0", units in a panel are always visited for rest of the time periods. The simplest always revisit panel design is to revisit every sample unit on every time period, specified as pnl_dsgn = c(1,0) or using McDonald's notation [1-0].

If the last even position is NA, the panels follow a rotating panel structure. For example, pnl_dsgn = c(1, NA) designates that sample units in a panel will be visited once and then never again, [1-n] in McDonald's notation. pnl_dsgn =c(1, 4, 1, NA) designates that sample units in a panel will be visited once, then not sampled on next four time periods, then sampled again once at the next time period and then never sampled again, [1-4-1-n] in McDonald/s notation.

If the last even position is > 0, the panels follow a serially alternating panel structure. For example, pnl_dsgn = c(1, 4) designates that sample units in a panel will be visited once, then not sampled during the next four time periods, then sampled once and not sampled for next four time periods, and that cycle repeated until end of the number of time periods, [1-4] in McDonald's notation. pnl_dsgn = c(2, 3, 1, 4) designates that the cycle has sample units in a panel being visited during two consecutive time periods, not sampled for three consecutive time periods, sampled for one time period and then not sampled on next four time periods, and the cycle is repeated until end of the number of time periods, [2-3-1-4] in McDonald's notation.

The number of panels in a single panel design is specified by pnl_n. For an always revisit panel structure, a single panel is created and pnl_n is ignored. For a rotating panel structure, when pnl_n = NA, the number of panels is equal to n_period. Note that this should only be used when the rotating panel structure is the only panel design, i.e., no split panel design (see below for split panel details). If pnl_n = m is specified for a rotating panel design, then then number of panels will be m. For example, pnl_dsgn = c( 1, 4, 1, NA) and and pnl_n = 5 means that only 5 panels will be constructed and the last time period to be sampled will be time period 10. In McDonald's notation the panel design structure is [(1-4-1-n)^5]. If the number of time periods, n_period, is 20 and no other panel design structure is specified, then the last 10 time periods will not be sampled. For serially alternating panels, when pnl_n = NA, the number of panels will be the sum of the elements in pan_dsgn (ignoring NA). If pnl_n is specified as m, then m panels will be created. For example, pnl_dsgn = c(1, 4, 1, 4) and pnl_n = 3, [(1-4-1-4)^3] in McDonald's notation, will create first three panels of the 510 serially alternating panels specified by pnl_dsgn.

A serially alternating or rotating panel revisit design may not result in the same number of units being sampled during each time period, particularly during the initial start up period. The default is to not specify a startup option ("None"). Start up option "Partial_Begin" initiates the revisit design at the last time period scheduled for sampling in the first panel. For example, a [2-3-1-4] design starts at time period 6 instead of time period 1 under the Partial_Begin option. For a serially alternating panel structure, start up option "Partial_End" initiates the revisit design at the time period that begins the second serially alternating pattern. For example, a [2-3-1-4] design starts at time period 11 instead of time period 1. For a rotating panel structure design, use of Partial_End makes the assumption that the number of panels equals the number of time periods and adds units to the last "m" panels for time periods 1 to "m" as if number of time periods was extended by "m" where "m" is one less than then the sum of the panel design. For example, a [1-4-1-4-1-n] design would result in m = 10. Note that some designs with pnl_n not equal to the number of sample occasions can produce unexpected panel designs. See examples.

Different types of panel structures can be combined, these are termed split panels by many authors, by specifying more than one list for the panels parameter. The total number of panels is the sum of the number of panels in each of the panel structures specified by the split panel design.

References

McDonald, T. (2003). Review of environmental monitoring methods: survey designs. Environmental Monitoring and Assessment 85, 277-292.

See also

revisit_bibd

to create a balanced incomplete block panel revisit design

revisit_rand

to create a revisit design with random assignment to panels and time periods

pd_summary

to summarize characteristics of a panel revisit design

Author

Tony Olsen Olsen.Tony@epa.gov

Examples

# One panel of  60 sample units sampled at every time period: [1-0]
revisit_dsgn(20, panels = list(
  Annual = list(
    n = 60, pnl_dsgn = c(1, 0), pnl.n = NA,
    start_option = "None"
  )
), begin = 1)
#>         1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
#> Annual 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60
#> attr(,"class")
#> [1] "paneldesign"

# Rotating panels of 60 units sampled once and never again: [1-n].  Number
# of panels equal n_period.
revisit_dsgn(20,
  panels = list(
    R60N = list(n = 60, pnl_dsgn = c(1, NA), pnl_n = NA, start_option = "None")
  ),
  begin = 1
)
#>          1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
#> R60N_01 60  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> R60N_02  0 60  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> R60N_03  0  0 60  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> R60N_04  0  0  0 60  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> R60N_05  0  0  0  0 60  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> R60N_06  0  0  0  0  0 60  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> R60N_07  0  0  0  0  0  0 60  0  0  0  0  0  0  0  0  0  0  0  0  0
#> R60N_08  0  0  0  0  0  0  0 60  0  0  0  0  0  0  0  0  0  0  0  0
#> R60N_09  0  0  0  0  0  0  0  0 60  0  0  0  0  0  0  0  0  0  0  0
#> R60N_10  0  0  0  0  0  0  0  0  0 60  0  0  0  0  0  0  0  0  0  0
#> R60N_11  0  0  0  0  0  0  0  0  0  0 60  0  0  0  0  0  0  0  0  0
#> R60N_12  0  0  0  0  0  0  0  0  0  0  0 60  0  0  0  0  0  0  0  0
#> R60N_13  0  0  0  0  0  0  0  0  0  0  0  0 60  0  0  0  0  0  0  0
#> R60N_14  0  0  0  0  0  0  0  0  0  0  0  0  0 60  0  0  0  0  0  0
#> R60N_15  0  0  0  0  0  0  0  0  0  0  0  0  0  0 60  0  0  0  0  0
#> R60N_16  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 60  0  0  0  0
#> R60N_17  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 60  0  0  0
#> R60N_18  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 60  0  0
#> R60N_19  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 60  0
#> R60N_20  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 60
#> attr(,"class")
#> [1] "paneldesign"

# Serially alternating panel with three visits to sample unit then skip
# next two time periods: [3-2]
revisit_dsgn(20, panels = list(
  SA60PE = list(
    n = 20, pnl_dsgn = c(3, 2), pnl_n = NA,
    start_option = "Partial_End"
  )
), begin = 1)
#>           1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
#> SA60PE_1 20 20 20  0  0 20 20 20  0  0 20 20 20  0  0 20 20 20  0  0
#> SA60PE_2  0 20 20 20  0  0 20 20 20  0  0 20 20 20  0  0 20 20 20  0
#> SA60PE_3  0  0 20 20 20  0  0 20 20 20  0  0 20 20 20  0  0 20 20 20
#> SA60PE_4 20  0  0 20 20 20  0  0 20 20 20  0  0 20 20 20  0  0 20 20
#> SA60PE_5 20 20  0  0 20 20 20  0  0 20 20 20  0  0 20 20 20  0  0 20
#> attr(,"class")
#> [1] "paneldesign"

# Split panel of sample units combining above two panel designs: [1-0, 1-n]
revisit_dsgn(n_period = 20, begin = 2017, panels = list(
  Annual = list(
    n = 60, pnl_dsgn = c(1, 0), pnl.n = NA,
    start_option = "None"
  ),
  R60N = list(n = 60, pnl_dsgn = c(1, NA), pnl_n = NA, start_option = "None")
))
#>         2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030
#> Annual    60   60   60   60   60   60   60   60   60   60   60   60   60   60
#> R60N_01   60    0    0    0    0    0    0    0    0    0    0    0    0    0
#> R60N_02    0   60    0    0    0    0    0    0    0    0    0    0    0    0
#> R60N_03    0    0   60    0    0    0    0    0    0    0    0    0    0    0
#> R60N_04    0    0    0   60    0    0    0    0    0    0    0    0    0    0
#> R60N_05    0    0    0    0   60    0    0    0    0    0    0    0    0    0
#> R60N_06    0    0    0    0    0   60    0    0    0    0    0    0    0    0
#> R60N_07    0    0    0    0    0    0   60    0    0    0    0    0    0    0
#> R60N_08    0    0    0    0    0    0    0   60    0    0    0    0    0    0
#> R60N_09    0    0    0    0    0    0    0    0   60    0    0    0    0    0
#> R60N_10    0    0    0    0    0    0    0    0    0   60    0    0    0    0
#> R60N_11    0    0    0    0    0    0    0    0    0    0   60    0    0    0
#> R60N_12    0    0    0    0    0    0    0    0    0    0    0   60    0    0
#> R60N_13    0    0    0    0    0    0    0    0    0    0    0    0   60    0
#> R60N_14    0    0    0    0    0    0    0    0    0    0    0    0    0   60
#> R60N_15    0    0    0    0    0    0    0    0    0    0    0    0    0    0
#> R60N_16    0    0    0    0    0    0    0    0    0    0    0    0    0    0
#> R60N_17    0    0    0    0    0    0    0    0    0    0    0    0    0    0
#> R60N_18    0    0    0    0    0    0    0    0    0    0    0    0    0    0
#> R60N_19    0    0    0    0    0    0    0    0    0    0    0    0    0    0
#> R60N_20    0    0    0    0    0    0    0    0    0    0    0    0    0    0
#>         2031 2032 2033 2034 2035 2036
#> Annual    60   60   60   60   60   60
#> R60N_01    0    0    0    0    0    0
#> R60N_02    0    0    0    0    0    0
#> R60N_03    0    0    0    0    0    0
#> R60N_04    0    0    0    0    0    0
#> R60N_05    0    0    0    0    0    0
#> R60N_06    0    0    0    0    0    0
#> R60N_07    0    0    0    0    0    0
#> R60N_08    0    0    0    0    0    0
#> R60N_09    0    0    0    0    0    0
#> R60N_10    0    0    0    0    0    0
#> R60N_11    0    0    0    0    0    0
#> R60N_12    0    0    0    0    0    0
#> R60N_13    0    0    0    0    0    0
#> R60N_14    0    0    0    0    0    0
#> R60N_15   60    0    0    0    0    0
#> R60N_16    0   60    0    0    0    0
#> R60N_17    0    0   60    0    0    0
#> R60N_18    0    0    0   60    0    0
#> R60N_19    0    0    0    0   60    0
#> R60N_20    0    0    0    0    0   60
#> attr(,"class")
#> [1] "paneldesign"