Nothing
## ----include = FALSE----------------------------------------------------------
have_packages = all(sapply( c("phylopath"), FUN=requireNamespace))
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
eval = have_packages # https://r-pkgs.org/vignettes.html#sec-vignettes-eval-option
)
# To isntall
# devtools::install_local( R'(C:\Users\James.Thorson\Desktop\Git\phylosem)', force=TRUE )
# Test build:
# setwd( R'(C:\Users\James.Thorson\Desktop\Git\phylosem\vignettes)' ); devtools::build_rmd( R'(vignettes\phylopath.Rmd)' )
# Render example
# library(rmarkdown); setwd( R'(C:\Users\James.Thorson\Desktop\Git\phylosem\vignettes)' ); render( "phylopath.Rmd", pdf_document())
## ----package_warning, include=isFALSE(have_packages)--------------------------
print("Must install ggplot2, phylopath, phylolm, ape")
## ----setup--------------------------------------------------------------------
data(rhino, rhino_tree, package = 'phylopath')
## -----------------------------------------------------------------------------
rhino_std <- rhino[-1]
rhino_std[] <- lapply(rhino_std, scale)
## -----------------------------------------------------------------------------
models_pp <- phylopath::define_model_set(
one = c(RS ~ DD),
two = c(DD ~ NL, RS ~ LS + DD),
three = c(RS ~ NL),
four = c(RS ~ BM + NL),
five = c(RS ~ BM + NL + DD),
six = c(NL ~ RS, RS ~ BM),
seven = c(NL ~ RS, RS ~ LS + BM),
eight = c(NL ~ RS),
nine = c(NL ~ RS, RS ~ LS),
.common = c(LS ~ BM, NL ~ BM, DD ~ NL)
)
## -----------------------------------------------------------------------------
models_ps <- list(
one = 'RS = b1 * DD',
two = 'DD = b1 * NL; RS = b2 * LS + b3 * DD',
three = 'RS = b1 * NL',
four = 'RS = b * BM + b2 * NL',
five = 'RS = b1 * BM + b2 * NL + b3 * DD',
six = 'NL = b1 * RS; RS = b2 * BM',
seven = 'NL = b1 * RS; RS = b2 * LS + b3 * BM',
eight = 'NL = b1 * RS',
nine = 'NL = b1 * RS; RS = b2 * LS'
)
# we add the .common paths, by pasting them at the end of each of the model strings, e.g.:
models_ps <- lapply(
models_ps,
\(x) paste(x, c('LS = b1_ * BM; NL = b2_ * BM; DD = b3_ * NL'), sep = '; ')
)
## ----eval=have_packages, results=FALSE, message=FALSE-------------------------
result_pp <- phylopath::phylo_path(
models_pp, data = rhino_std, tree = rhino_tree, model = 'BM'
)
library(phylosem)
result_ps <- phylosem::compare_phylosem(
models_ps, tree = rhino_tree, data = rhino_std
)
## -----------------------------------------------------------------------------
summary(result_pp)
## -----------------------------------------------------------------------------
sapply(result_ps, AIC) |> sort()
## -----------------------------------------------------------------------------
best_pp <- phylopath::best(result_pp)
best_ps <- phylosem::best(result_ps)
## ----eval=have_packages, fig.dim = c(6, 6), out.width = "50%"-----------------
plot(best_pp)
plot(as_fitted_DAG(best_ps))
## ----eval=have_packages, results=FALSE, message=FALSE, fig.dim = c(6, 6), out.width = "50%"----
phylopath::est_DAG(
models_pp$five, data = rhino_std, tree = rhino_tree, model = 'lambda'
) |> plot()
phylosem::phylosem(
models_ps$five, tree = rhino_tree, data = rhino_std, estimate_lambda = TRUE
) |> as_fitted_DAG() |> plot()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.