Run the following code to install the development version:
See our website at (piecewiseSEM)[http://jslefche.github.io/piecewiseSEM/]
There is an online resource available for SEM, including
lavaan, available (here)[https://jslefche.github.io/sem_book/]
This version is a major update to the
piecewiseSEM package that uses a completely revised syntax that better reproduces the base R syntax and output. It is highly recommended that consult
vignette("piecewiseSEM") even if you have used the package before as it documents the many changes.
It also incorporates new functionality in the form of coefficient standardization and updated methods for R^2 for mixed models.
Currently supported model classes:
lm, glm, gls, pgls, sarlm, lme, glmmPQL, lmerMod, merModLmerTest, glmerMod
Frequently, we get requests to add new model classes. We'd like to accommodate wherever we can! Currently, to add a new model class, you will need to update the following functions in the following files:
getCoefficients() - will need a method to generate a standardized coefficient table from your class
GetSDy() - will need a method to get the proper SD of y, particularly for non-Gaussian error families
GetSingleData() - need a method to get a data frame from your class type
GetOLRE() - if your class has random effects, will need a method to get observation level random effects
nObs() - if your class has a non-standard way to get the number of observations, will need it here.
- You might need to write a
all.vars method for you class. See
all.vars.merMod() as an example.
evaluateClasses() - so we know that this class can work in
rsquared() - what function should be used to get the rsquared for your model class?
- Will need an
rsquared.youclass() method to get the R^2
# Install development branch from github library(devtools) install_github("jslefche/[email protected]", build_vignette = TRUE) # Load library library(piecewiseSEM) # Read vignette vignette("piecewiseSEM") # Create fake data set.seed(1) data <- data.frame( x = runif(100), y1 = runif(100), y2 = rpois(100, 1), y3 = runif(100) ) # Store in SEM list modelList <- psem( lm(y1 ~ x, data), glm(y2 ~ x, "poisson", data), lm(y3 ~ y1 + y2, data), data ) # Run summary summary(modelList) # Address conflict using conserve = T summary(modelList, conserve = T) # Address conflict using direction = c() summary(modelList, direction = c("y2 <- y1")) # Address conflict using correlated errors modelList2 <- update(modelList, y2 %~~% y1) summary(modelList2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.