umxGxEbiv: Purcell (2002) Bivariate GxE model: Suitable when twins...

View source: R/umx_build_umxGxEbiv.R

umxGxEbivR Documentation

Purcell (2002) Bivariate GxE model: Suitable when twins differ on the moderator.

Description

GxE interaction models test the hypothesis that the strength of genetic and environmental influences vary parametrically across levels of a measured environment.

Usage

umxGxEbiv(
  name = "GxEbiv",
  selDVs,
  selDefs,
  dzData,
  mzData,
  sep = NULL,
  lboundACE = 0,
  lboundM = NA,
  dropMissingDef = FALSE,
  autoRun = getOption("umx_auto_run"),
  tryHard = c("no", "yes", "ordinal", "search"),
  optimizer = NULL
)

Arguments

name

The name of the model (defaults to "GxEbiv")

selDVs

The dependent variable (e.g. IQ)

selDefs

The definition variable (e.g. socioeconomic status)

dzData

The DZ dataframe containing the Twin 1 and Twin 2 DV and moderator (4 columns)

mzData

The MZ dataframe containing the Twin 1 and Twin 2 DV and moderator (4 columns)

sep

Expand variable base names, i.e., "_T" makes var -> var_T1 and var_T2

lboundACE

If !NA, then lbound the main effects at this value (default = NA)

lboundM

If !NA, then lbound the moderators at this value (default = NA)

dropMissingDef

Whether to automatically drop missing def var rows for the user (gives a warning) default = FALSE

autoRun

Whether to run the model (default), or just to create it and return without running.

tryHard

Default ('no') uses normal mxRun. "yes" uses mxTryHard. Other options: "ordinal", "search"

optimizer

Optionally set the optimizer (default NULL does nothing)

Details

Whereas univariate umxGxE() models assume the twins share the moderator, or have zero correlation on the moderator, umxGxEbiv() allows testing moderation in cases where members of a twin pair differ on the moderator, (Purcell, 2002; van der Sluis et al., 2012).

This is the same model we teach at Boulder.

The following figure shows this bivariate GxE model as a path diagram (Twin 1 shown). Whereas the univariate model incorporates the moderator in the means model, the bivariate model incorporates the moderator as a first class variable, with its own ACE structure, shared pathways to the trait of interest, and the ability to moderate both specific and shared A, C, and E, influences on the trait of interest.

GxEbiv.png

Twin 1 and twin 2 A, C, and E latent traits are connected in the standard fashion, with the covariance of the T1 and T2 latent genetic traits set to .5 for DZ and 1.0 for MZ pairs. For the sake of clarity, C, and E paths are omitted here. These mirror those for A.

Value

  • GxEbiv OpenMx::mxModel()

References

  • Purcell, S. (2002). Variance components models for gene-environment interaction in twin analysis. Twin Research, 6, 554-571. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1375/twin.5.6.554")}.

  • van der Sluis, S., Posthuma, D., & Dolan, C. V. (2012). A note on false positives and power in G x E modelling of twin data. Behavior Genetics, 42, 170-186. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/s10519-011-9480-3")}.

See Also

  • plot(), umxSummary(), umxReduce()

Other Twin Modeling Functions: power.ACE.test(), umx, umxACE(), umxACEcov(), umxACEv(), umxCP(), umxDiffMZ(), umxDiscTwin(), umxDoC(), umxDoCp(), umxGxE(), umxGxE_window(), umxIP(), umxMRDoC(), umxReduce(), umxReduceACE(), umxReduceGxE(), umxRotate.MxModelCP(), umxSexLim(), umxSimplex(), umxSummarizeTwinData(), umxSummaryACE(), umxSummaryACEv(), umxSummaryDoC(), umxSummaryGxEbiv(), umxSummarySexLim(), umxSummarySimplex(), umxTwinMaker()

Examples

require(umx)
data(twinData)
selDVs  = "wt"
selDefs = "ht"
df = umx_scale_wide_twin_data(twinData, varsToScale = c("ht", "wt"), sep = "")
mzData  = subset(df, zygosity %in%  c("MZFF", "MZMM"))
dzData  = subset(df, zygosity %in%  c("DZFF", "DZMM", "DZOS"))

## Not run: 
m1 = umxGxEbiv(selDVs = selDVs, selDefs = selDefs, 
	dzData = dzData, mzData = mzData, sep = "", dropMissingDef = TRUE)

# Plot Moderation
umxSummaryGxEbiv(m1)
umxSummary(m1, location = "topright")
umxSummary(m1, separateGraphs = FALSE)
m2 = umxModify(m1, update = c("cBeta2_r1c1", "eBeta1_r1c1", "eBeta2_r1c1"), comparison = TRUE)

# TODO: teach umxReduce to test all relevant hypotheses for umxGxEbiv
umxReduce(m1)

## End(Not run)

tbates/umx documentation built on Dec. 14, 2024, 11:28 a.m.