InformativeTesting: Testing order/inequality Constrained Hypotheses in SEM

Description Usage Arguments Details Value Author(s) References Examples

View source: R/ctr_informative_testing.R

Description

Testing order/inequality constrained Hypotheses in SEM

Usage

1
2
3
4
5
6
7
8
InformativeTesting(model = NULL, data, constraints = NULL, 
                   R = 1000L, type = "bollen.stine",
                   return.LRT = TRUE, 
                   double.bootstrap = "standard",
                   double.bootstrap.R = 249L, 
                   double.bootstrap.alpha = 0.05,
                   parallel = c("no", "multicore", "snow"), 
                   ncpus = 1L, cl = NULL, verbose = FALSE, ...)

Arguments

model

Model syntax specifying the model. See model.syntax for more information.

data

The data frame containing the observed variables being used to fit the model.

constraints

The imposed inequality constraints on the model.

R

Integer; number of bootstrap draws. The default value is set to 1000.

type

If "parametric", the parametric bootstrap is used. If "bollen.stine", the semi-nonparametric Bollen-Stine bootstrap is used. The default is set to "bollen.stine".

return.LRT

Logical; if TRUE, the function returns bootstrapped LRT-values.

double.bootstrap

If "standard" (default) the genuine double bootstrap is used to compute an additional set of plug-in p-values for each bootstrap sample. If "no", no double bootstrap is used. If "FDB", the fast double bootstrap is used to compute second level LRT-values for each bootstrap sample. Note that the "FDB" is experimental and should not be used by inexperienced users.

double.bootstrap.R

Integer; number of double bootstrap draws. The default value is set to 249.

double.bootstrap.alpha

The significance level to compute the adjusted alpha based on the plugin p-values. Only used if double.bootstrap = "standard". The default value is set to 0.05.

parallel

The type of parallel operation to be used (if any). If missing, the default is set "no".

ncpus

Integer: number of processes to be used in parallel operation: typically one would chose this to the number of available CPUs.

cl

An optional parallel or snow cluster for use if parallel = "snow". If not supplied, a cluster on the local machine is created for the duration of the InformativeTesting call.

verbose

Logical; if TRUE, information is shown at each bootstrap draw.

...

Other named arguments from the lavaan package which are passed to the function. For example "group" in a multiple group model.

Details

The following hypothesis tests are available:

Value

An object of class InformativeTesting for which a print and a plot method is available.

Author(s)

Leonard Vanbrabant lgf.vanbrabant@gmail.com

References

Van de Schoot, R., Hoijtink, H., & Dekovic, M. (2010). Testing inequality constrained hypotheses in SEM models. Structural Equation Modeling, 17, 443-463.

Van de Schoot, R., Strohmeier, D. (2011). Testing informative hypotheses in SEM increases power: An illustration contrasting classical. International Journal of Behavioral Development, 35, 180-190.

Silvapulle, M.J. and Sen, P.K. (2005). Constrained Statistical Inference. Wiley, New York.

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
66
67
## Not run: 
#########################
### real data example ###
#########################
# Multiple group path model for facial burns example.

# model syntax with starting values.
  burns.model <- 'Selfesteem ~ Age + c(m1, f1)*TBSA + HADS +
                             start(-.10, -.20)*TBSA  
                 HADS ~ Age + c(m2, f2)*TBSA + RUM +
                        start(.10, .20)*TBSA '
 
 
# constraints syntax
 burns.constraints <- 'f2 > 0  ; m1 < 0
                       m2 > 0  ; f1 < 0
                       f2 > m2 ; f1 < m1'
 
# we only generate 2 bootstrap samples in this example; in practice
# you may wish to use a much higher number. 
# the double bootstrap was switched off; in practice you probably 
# want to set it to "standard".
example1 <- InformativeTesting(model = burns.model, data = FacialBurns,
                               R = 2, constraints = burns.constraints,
                               double.bootstrap = "no", group = "Sex")

example1

##########################
### artificial example ###
##########################
# Simple ANOVA model with 3 groups (N = 20 per group)
set.seed(1234)
Y <- cbind(c(rnorm(20,0,1), rnorm(20,0.5,1), rnorm(20,1,1)))
grp <- c(rep("1", 20), rep("2", 20), rep("3", 20))
Data <- data.frame(Y, grp)

#create model matrix
fit.lm <- lm(Y ~ grp, data = Data)
mfit <- fit.lm$model
mm <- model.matrix(mfit)

Y <- model.response(mfit)
X <- data.frame(mm[,2:3])
names(X) <- c("d1", "d2")
Data.new <- data.frame(Y, X)

# model
model <- 'Y ~ 1 + a1*d1 + a2*d2'

# fit without constraints
fit <- sem(model, data = Data.new)

# constraints syntax: mu1 < mu2 < mu3
constraints <- ' a1 > 0
                 a1 < a2 '

# we only generate 10 bootstrap samples in this example; in practice
# you may wish to use a much higher number, say > 1000. The double 
# bootstrap is not necessary in case of an univariate ANOVA model.
example2 <- InformativeTesting(model = model, data = Data.new, 
                               start = parTable(fit),
                               R = 10L, double.bootstrap = "no",
                               constraints = constraints)
example2

## End(Not run)

Example output

This is lavaan 0.5-23.1097
lavaan is BETA software! Please report any bugs.

InformativeTesting: Order/Inequality Constrained Hypothesis Testing:

  Variable names in model         : Selfesteem HADS Age TBSA RUM 
  Number of variables             : 5 
  Number of groups                : 2 
  Used sample size per group      : 60 17 
  Used sample size                : 77 
  Total sample size               : 77 

  Estimator                       : ML 
  Missing data                    : listwise 
  Bootstrap method                : bollen.stine 
  Double bootstrap method         : no 


  Type A test: H0: all restriktions active (=) 
           vs. H1: at least one restriktion strictly true (>) 
         Test statistic: 11.1374, unadjusted p-value: <0.0001 (alpha = 0.05) 

  Type B test: H0: all restriktions true 
           vs. H1: at least one restriktion false 
         Test statistic: 0.0000, unadjusted p-value: 1.0000 (alpha = 0.05) 

  No double bootstrap method is set. The results may be spurious.


InformativeTesting: Order/Inequality Constrained Hypothesis Testing:

  Variable names in model         : Y d1 d2 
  Number of variables             : 3 
  Number of groups                : 1 
  Used sample size per group      : 60 
  Used sample size                : 60 
  Total sample size               : 60 

  Estimator                       : ML 
  Missing data                    : listwise 
  Bootstrap method                : bollen.stine 
  Double bootstrap method         : no 


  Type A test: H0: all restriktions active (=) 
           vs. H1: at least one restriktion strictly true (>) 
         Test statistic: 8.0440, unadjusted p-value: <0.0001 (alpha = 0.05) 

  Type B test: H0: all restriktions true 
           vs. H1: at least one restriktion false 
         Test statistic: 0.0000, unadjusted p-value: 0.9000 (alpha = 0.05) 

  No double bootstrap method is set. The results may be spurious.

lavaan documentation built on March 10, 2021, 5:05 p.m.