semID: Identifiability of linear structural equation models.

View source: R/utils.R

semIDR Documentation

Identifiability of linear structural equation models.

Description

This function can be used to check global and generic identifiability of linear structural equation models (L-SEMs). In particular, this function takes a MixedGraph object corresponding to the L-SEM and checks different conditions known for global and generic identifiability.

Usage

semID(
  mixedGraph,
  testGlobalID = TRUE,
  testGenericNonID = TRUE,
  genericIdStepFunctions = list(htcIdentifyStep),
  tianDecompose = TRUE
)

Arguments

mixedGraph

a MixedGraph object representing the L-SEM.

testGlobalID

TRUE or FALSE if the graph should be tested for global identifiability. This uses the globalID function.

testGenericNonID

TRUE of FALSE if the graph should be tested for generic non-identifiability, that is, if for every generic choice of parameters for the L-SEM there are infinitely many other choices that lead to the same covariance matrix. This currently uses the graphID.nonHtcID function.

genericIdStepFunctions

a list of the generic identifier step functions that should be used for testing generic identifiability. See generalGenericID for a discussion of such functions. If this list is empty then generic identifiability is not tested. By default this will (only) run the half-trek criterion (see htcIdentifyStep) for generic identifiability.

tianDecompose

TRUE or FALSE if the mixed graph should be Tian decomposed before running the identification algorithms (when appropriate). In general letting this be TRUE will make the algorithm faster and more powerful. Note that this is a version of the Tian decomposition that works also with cyclic graphs.

Value

returns an object of class 'SEMIDResult,' this object is just a list with 6 components:

isGlobalID

If testGlobalID == TRUE, then TRUE or FALSE if the graph is globally identifiable. If testGlobalID == FALSE then NA.

isGenericNonID

If testGenericNonID == TRUE, then TRUE if the graph is generically non-identifiable or FALSE the test is inconclusive. If testGenericNonID == FALSE then NA.

genericIDResult

If length(genericIdStepFunctions) != 0 then a GenericIDResult object as returned by generalGenericID. Otherwise a list of length 0.

mixedGraph

the inputted mixed graph object.

tianDecompose

the argument tianDecompose.

call

the call made to this function.

Examples

## Not run: 
L = t(matrix(
  c(0, 1, 0, 0, 0,
    0, 0, 1, 0, 0,
    0, 0, 0, 1, 0,
    0, 0, 0, 0, 1,
    0, 0, 0, 0, 0), 5, 5))
O = t(matrix(
  c(0, 0, 1, 1, 0,
    0, 0, 0, 1, 1,
    0, 0, 0, 0, 0,
    0, 0, 0, 0, 0,
    0, 0, 0, 0, 0), 5, 5))
O = O + t(O)
graph = MixedGraph(L,O)
semID(graph)

## Examples from Foygel, Draisma & Drton (2012)
demo(SEMID)

## End(Not run)

Lucaweihs/SEMID documentation built on July 22, 2023, 7:49 a.m.