| Type: | Package | 
| Title: | Fully-Latent Principal Stratification | 
| Version: | 1.1.0 | 
| Date: | 2024-03-27 | 
| Description: | Simulation and analysis of Fully-Latent Principal Stratification (FLPS) with measurement models. Lee, Adam, Kang, & Whittaker (2023). <doi:10.1007/978-3-031-27781-8_25>. This package is supported by the Institute of Education Sciences, U.S. Department of Education, through Grant R305D210036. | 
| License: | GPL-3 | 
| Depends: | R (≥ 3.5.0) | 
| Imports: | rstan, Rcpp (≥ 1.0.8.3), methods, mirt, MASS, utils, stats, mvtnorm, ggplot2, glue | 
| Suggests: | testthat (≥ 3.0.0), knitr, rmarkdown, lavaan, data.table | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| RoxygenNote: | 7.3.1 | 
| VignetteBuilder: | knitr | 
| Collate: | 'flps-package.r' 'load_rstan.r' 'make_FLPSdata.r' 'run_FLPS.r' 'priors.r' 'sim_gen_measurement.r' 'sim_gen_structure.r' 'sim_gen_standata.r' 'sim_make_data.r' 'sim_utils.r' 'z_utils.r' 'z_validate.r' 'plot_function.r' 'summary_function.r' 'data_desc.r' 'zzz.r' | 
| URL: | https://sooyongl.github.io/flps/ | 
| NeedsCompilation: | no | 
| Packaged: | 2024-04-21 19:59:59 UTC; sooyo | 
| Author: | Sooyong Lee [aut, cre], Adam Sales [aut], Hyeon-Ah Kang [aut], Tiffany Whittaker [aut] | 
| Maintainer: | Sooyong Lee <sooyongl09@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2024-04-21 21:22:38 UTC | 
Fully latent principal stratification
Description
The FLPS package conducts Bayesian analysis for fully latent principal stratification via rstan.
_PACKAGE
Details
The 'flps' package.
Author(s)
Sooyong Lee sooyongl09@gmail.com
References
Sales, A. C., & Pane, J. F. (2019). The role of mastery learning in an intelligent tutoring system: Principal stratification on a latent variable. The Annals of Applied Statistics, 13(1), 420-443. Lee, S., Adam, S., Kang, H.-A., & Whittaker, T. A. (2022). Fully latent principal stratification: Combining ps with model-based measurement models. In The annual meeting of the psychometric society (pp. 287–298).
binary.rda
Description
A data set containing binary items information. Example data regenerated from CTA1
Usage
binary
Format
A data frame with variables:
- schid
 School ID
- id
 Student ID
- sex
 0 = boys; 1 = girls
- race
 0 = White; 1 = Others
- pretest
 Pre test scores
- stdscore
 Standardized scores
- cm_sex
 Cluster-mean of sex
- cm_race
 Cluster-mean of race
- cm_pretest
 Cluster-mean of Pre test scores
- cm_stdscore
 Cluster-mean of of Standardized scores
- trt
 Treatment assignment; 0 = control, 1 = treatment
- Y
 Outcome
- q1
 Binary item
- q2
 Binary item
- q3
 Binary item
- q4
 Binary item
- q5
 Binary item
- q6
 Binary item
- q7
 Binary item
- q8
 Binary item
- q9
 Binary item
- q10
 Binary item
- q11
 Binary item
- q12
 Binary item
- q13
 Binary item
- q14
 Binary item
- q15
 Binary item
- q16
 Binary item
- q17
 Binary item
- q18
 Binary item
- q19
 Binary item
- q20
 Binary item
Source
CTA1
Examples
data(binary)
summary(binary)
continuous.rda
Description
A data set containing continuous items information. Example data regenerated from CTA1
Usage
continuous
Format
A data frame with variables:
- schid
 School ID
- id
 Student ID
- sex
 0 = boys; 1 = girls
- race
 0 = White; 1 = Others
- pretest
 Pre test scores
- stdscore
 Standardized scores
- cm_sex
 Cluster-mean of sex
- cm_race
 Cluster-mean of race
- cm_pretest
 Cluster-mean of Pre test scores
- cm_stdscore
 Cluster-mean of of Standardized scores
- trt
 Treatment assignment; 0 = control, 1 = treatment
- Y
 Outcome
- q1
 Continuous item
- q2
 Continuous item
- q3
 Continuous item
- q4
 Continuous item
- q5
 Continuous item
- q6
 Continuous item
- q7
 Continuous item
- q8
 Continuous item
- q9
 Continuous item
- q10
 Continuous item
- q11
 Continuous item
- q12
 Continuous item
- q13
 Continuous item
- q14
 Continuous item
- q15
 Continuous item
- q16
 Continuous item
- q17
 Continuous item
- q18
 Continuous item
- q19
 Continuous item
- q20
 Continuous item
Source
CTA1
Examples
data(continuous)
summary(continuous)
example0.rda
Description
A generated data set for rasch FLPS to mimic CTA1 data.
Usage
example0
Format
A data frame with variables:
- Y
 Outcome
- trt
 Treatment assignment; 0 = control, 1 = treatment
- sex
 0 = boys; 1 = girls
- race
 0 = White; 1 = Others
- pretest
 Pre test scores
- stdscore
 Standardized scores
- V1
 Binary item
- V2
 Binary item
- V3
 Binary item
- V4
 Binary item
- V5
 Binary item
- V6
 Binary item
- V7
 Binary item
- V8
 Binary item
- V9
 Binary item
- V10
 Binary item
- V11
 Binary item
- V12
 Binary item
example1.rda
Description
A generated data set containing binary items information.
Usage
example1
Format
A data frame with variables:
- Y
 Outcome
- trt
 Treatment assignment; 0 = control, 1 = treatment
- X1
 Continuous covariate 1
- X2
 Continuous covariate 2
- q1
 Binary item
- q2
 Binary item
- q3
 Binary item
- q4
 Binary item
- q5
 Binary item
- q6
 Binary item
- q7
 Binary item
- q8
 Binary item
- q9
 Binary item
- q10
 Binary item
example2.rda
Description
A generated data set containing continuous items information.
Usage
example2
Format
A data frame with variables:
- Y
 Outcome
- trt
 Treatment assignment; 0 = control, 1 = treatment
- X1
 Continuous covariate 1
- X2
 Continuous covariate 2
- q1
 Continuous item
- q2
 Continuous item
- q3
 Continuous item
- q4
 Continuous item
- q5
 Continuous item
- q6
 Continuous item
- q7
 Continuous item
- q8
 Continuous item
- q9
 Continuous item
- q10
 Continuous item
example3.rda
Description
A generated data set for multidimensional FLPS.
Usage
example3
Format
A data frame with variables:
- Y
 Outcome
- Z
 Treatment assignment; 0 = control, 1 = treatment
- X1
 Continuous covariate 1
- X2
 Continuous covariate 2
- X3
 Continuous covariate 2
- X4
 Continuous covariate 2
- V1
 Continuous item
- V2
 Continuous item
- V3
 Continuous item
- V4
 Continuous item
- V5
 Continuous item
- V6
 Continuous item
- V7
 Continuous item
- V8
 Continuous item
- V9
 Continuous item
- V10
 Continuous item
- V11
 Continuous item
- V12
 Continuous item
Make plots related to FLPS models
Description
Make plots related to FLPS models
Usage
flps_plot(object, type = "causal", ...)
Arguments
object | 
 a   | 
type | 
 a character indicating the type of plots  | 
... | 
 Additional features related to plots  | 
Value
A ggplot object that can be further customized
using the ggplot2 package.
graded.rda
Description
A data set containing graded response items information. Example data regenerated from CTA1
Usage
graded
Format
A data frame with variables:
- schid
 School ID
- id
 Student ID
- sex
 0 = boys; 1 = girls
- race
 0 = White; 1 = Others
- pretest
 Pre test scores
- stdscore
 Standardized scores
- cm_sex
 Cluster-mean of sex
- cm_race
 Cluster-mean of race
- cm_pretest
 Cluster-mean of Pre test scores
- cm_stdscore
 Cluster-mean of of Standardized scores
- trt
 Treatment assignment; 0 = control, 1 = treatment
- Y
 Outcome
- q1
 Graded response item
- q2
 Graded response item
- q3
 Graded response item
- q4
 Graded response item
- q5
 Graded response item
- q6
 Graded response item
- q7
 Graded response item
- q8
 Graded response item
- q9
 Graded response item
- q10
 Graded response item
- q11
 Graded response item
- q12
 Graded response item
- q13
 Graded response item
- q14
 Graded response item
- q15
 Graded response item
- q16
 Graded response item
- q17
 Graded response item
- q18
 Graded response item
- q19
 Graded response item
- q20
 Graded response item
Source
CTA1
Examples
data(graded)
summary(graded)
Import compiled Stan object
Description
Import compiled Stan object
Usage
importModel(lv_type, multilevel = FALSE, lv_randomeffect = FALSE)
Arguments
lv_type | 
 a character indicating the type of FLPS model.  | 
multilevel | 
 a logical indicating multilevel Stan model.  | 
lv_randomeffect | 
 A logical indicating whether to estimate random effects for latent variables.  | 
Value
a Stan compiled stanmodel object generated by modelBuilder
Generate a matrix style data for simulation
Description
makeInpData is a function for generating a data based on
the given information.
Usage
makeInpData(
  N,
  R2Y,
  R2eta,
  omega,
  tau0,
  tau1,
  betaL,
  betaY,
  linear = TRUE,
  ydist = "n",
  lambda,
  nitem,
  nfac = 1,
  lvmodel,
  fcovmat,
  item.missing = TRUE,
  misspec = FALSE,
  cov.res = 0,
  relsize = 0.6
)
Arguments
N | 
 a numeric indicating sample size.  | 
R2Y | 
 a numeric indicating predictive power of covariates.  | 
R2eta | 
 a numeric indicating Predictive power of latent variable  | 
omega | 
 a numeric indicating the size of effect of latent factor on the outcome.  | 
tau0 | 
 a numeric indicating the size of difference in the outcome between the treatment and the control.  | 
tau1 | 
 a numeric indicating the principal effect  | 
betaL | 
 a numeric vector indicating the effects of covariates on the latent factor  | 
betaY | 
 a numeric vector indicating the effects of covariates on the outcome  | 
linear | 
 a logical whether the relationship between the outcome and covariates is linear (default is   | 
ydist | 
 a character indicating the outcome distribution (default is   | 
lambda | 
 a numeric indicating the mean of Worked problems/person. (extent to which covariates predict eta).  | 
nitem | 
 a numeric indicating the number of maximum measurement items given to students.  | 
nfac | 
 a numeric indicating the number of latent factors  | 
lvmodel | 
 a character specifying a type of latent variable model.  | 
fcovmat | 
 a matrix indicating the variance-covariance matrix of latent factors when nfac > 1  | 
item.missing | 
 a logical to make the measurement item data missing for
the control group (default is   | 
misspec | 
 a logical to allow cross-loadings across latent factors
when nfac > 1 (default is   | 
cov.res | 
 a logical to allow for residual correlations
(only for CFA model) (default is   | 
relsize | 
 a numeric indicating the degree to which the latent factor explain the variances of continuous items (only for CFA model) (default is   | 
Value
a list containing all the data related to population values and running FLPS.
Examples
sdat <- makeInpData(
N       = 200,  # sample size
R2Y     = 0.2,  # r^2 of outcome
R2eta   = 0.5,  # r^2 of eta by one covariates
omega   = 0.2,  # the effect of eta
tau0    = 0.13, # direct effect
tau1    = -0.06,# interaction effect between Z and eta
betaL   = 0.2,
betaY   = 0.4,
lambda  = 0.8,  # the proportion of administered items
nitem    = 10,   # the total number of items
nfac    = 1,    # the number of latent factors
lvmodel = '2pl' )
Generate Fully Latent Principal Stratification data for simulation
Description
makeInpData is a function for generating a data based on
the given information.
Usage
makeSimData(
  N,
  R2Y,
  R2eta,
  omega,
  tau0,
  tau1,
  betaL,
  betaY,
  linear = TRUE,
  ydist = "n",
  lambda,
  nitem,
  nfac,
  lvmodel,
  fcovmat,
  item.missing = TRUE,
  misspec = FALSE,
  cov.res = 0,
  relsize = 0.6
)
Arguments
N | 
 a numeric indicating sample size.  | 
R2Y | 
 a numeric indicating predictive power of covariates.  | 
R2eta | 
 a numeric indicating Predictive power of latent variable  | 
omega | 
 a numeric indicating the size of effect of latent factor on the outcome.  | 
tau0 | 
 a numeric indicating the size of difference in the outcome between the treatment and the control.  | 
tau1 | 
 a numeric indicating the principal effect  | 
betaL | 
 a numeric vector indicating the effects of covariates on the latent factor  | 
betaY | 
 a numeric vector indicating the effects of covariates on the outcome  | 
linear | 
 a logical whether the relationship between the outcome and covariates is linear (default is   | 
ydist | 
 a character indicating the outcome distribution (default is   | 
lambda | 
 a numeric indicating the mean of Worked problems/person. (extent to which covariates predict eta).  | 
nitem | 
 a numeric indicating the number of maximum measurement items given to students.  | 
nfac | 
 a numeric indicating the number of latent factors  | 
lvmodel | 
 a character specifying a type of latent variable model.  | 
fcovmat | 
 a matrix indicating the variance-covariance matrix of latent factors when nfac > 1  | 
item.missing | 
 a logical to make the measurement item data missing for
the control group (default is   | 
misspec | 
 a logical to allow cross-loadings across latent factors
when nfac > 1 (default is   | 
cov.res | 
 a logical to allow for residual correlations
(only for CFA model) (default is   | 
relsize | 
 a numeric indicating the degree to which the latent factor explain the variances of continuous items (only for CFA model) (default is   | 
Value
a list containing all the data related to population values and running FLPS.
Examples
sdat <- makeSimData(
N       = 200,  # sample size
R2Y     = 0.2,  # r^2 of outcome
R2eta   = 0.5,  # r^2 of eta by one covariates
omega   = 0.2,  # the effect of eta
tau0    = 0.13, # direct effect
tau1    = -0.06,# interaction effect between Z and eta
betaL   = 0.2,
betaY   = 0.4,
lambda  = 0.8,  # the proportion of administered items
nitem    = 10,   # the total number of items
nfac    = 1,    # the number of latent factors
lvmodel = '2pl' )
Generate compiled Stan object to facilitate the analysis
Description
Generate compiled Stan object to facilitate the analysis
Usage
modelBuilder(lv_type, multilevel = FALSE, lv_randomeffect = FALSE)
Arguments
lv_type | 
 A character string specifying the type of FLPS model  | 
multilevel | 
 a logical indicating multilevel Stan model.  | 
lv_randomeffect | 
 A logical indicating whether to estimate random effects for latent variables.  | 
Value
There's no return, but the compiled objects are saved in the package root directory.
Plot
Description
Plot
Usage
## S3 method for class 'flps'
plot(x, type = NULL, pars = c("tau0", "tau1"), ...)
Arguments
x | 
 an object of class   | 
type | 
 a string for the type of plot  | 
pars | 
 a character vector indicating the target parameters  | 
... | 
 additional options for   | 
Value
A ggplot object that can be further customized
using the ggplot2 package.
Print results
Description
Print results
Usage
## S3 method for class 'flps'
print(x, ...)
Arguments
x | 
 an object of class   | 
... | 
 additional options for future development  | 
Value
Summary of FLPS model are printed.
Print summary of results
Description
Print summary of results
Usage
## S3 method for class 'summary.flps'
print(x, type = "structures", ...)
Arguments
x | 
 an object of class   | 
type | 
 a string for the part of FLPS model 
  | 
... | 
 additional options for future development  | 
Value
Summary of FLPS model are printed.
Conduct fully latent principal stratification
Description
Conduct fully latent principal stratification
Usage
runFLPS(
  inp_data = NULL,
  compiled_stan = NULL,
  outcome = NULL,
  trt = NULL,
  covariate = NULL,
  lv_model = NULL,
  lv_type = NULL,
  priors_input = NULL,
  stan_options = list(),
  ...
)
Arguments
inp_data | 
 A matrix or data frame containing the input data.  | 
compiled_stan | 
 An object of S4 class stanmodel produced by the
  | 
outcome | 
 A character string specifying the outcome variable's name.  | 
trt | 
 A character string specifying the treatment or control group variable's name.  | 
covariate | 
 A character string specifying the covariate variable names.  | 
lv_model | 
 A description of the latent variable model using syntax akin to the lavaan package. Key operators include: 
  | 
lv_type | 
 A character string indicating the type of latent variable models.  | 
priors_input | 
 A list specifying the priors or defaults to N(0, 5) if not provided.
Relevant parameters:  
  | 
stan_options | 
 A list of options for [rstan::stan()], specified as 'name = value'.  | 
... | 
 Additional parameters for the latent variable models 
  | 
Value
An object of class flps encompassing a stanfit object.
Components include:
call | 
 Function call with arguments.  | 
inp_data | 
 The input data frame provided.  | 
flps_model | 
 The Stan syntax used in [rstan::stan()].  | 
flps_data | 
 Data list used for [rstan::stan()].  | 
flps_fit | 
 Resulting   | 
time | 
 A numeric; Time taken for computation  | 
See Also
[rstan::stan()]
Examples
inp_data <- flps::makeInpData(
  N       = 200,
  R2Y     = 0.2,
  R2eta   = 0.5,
  omega   = 0.2,
  tau0    = 0.23,
  tau1    = -0.16,
  betaL   = 0.1,
  betaY   = 0.2,
  lambda  = 0.8,
  nitem    = 10,
  nfac    = 1,
  lvmodel = 'rasch' )
res <- runFLPS(
   inp_data = inp_data,
   outcome = "Y",
   trt = "Z",
   covariate = c("X1"),
   lv_type = "rasch",
   lv_model = "F =~ v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10",
   stan_options = list(iter = 1000, warmup = 500, cores = 1, chains = 2)
   )
Summarize the results
Description
Summarize the results
Usage
## S3 method for class 'flps'
summary(object, type = "structures", ...)
Arguments
object | 
 an object of class   | 
type | 
 a string for the part of FLPS model 
  | 
... | 
 additional options for future development  | 
Value
Summary of FLPS model are printed.