Nothing
## ----setup, include=FALSE-----------------------------------------------------
old_ops <- options()
suppressPackageStartupMessages(library(TemporalForest))
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 7,
fig.height = 5,
message = FALSE,
warning = FALSE
)
options(stringsAsFactors = FALSE)
suppressPackageStartupMessages({
ok_wgcna <- requireNamespace("WGCNA", quietly = TRUE)
})
if (ok_wgcna && "disableWGCNAThreads" %in% getNamespaceExports("WGCNA")) {
suppressMessages(WGCNA::disableWGCNAThreads())
}
## ----eval=FALSE---------------------------------------------------------------
# # install.packages("remotes")
# remotes::install_github("SisiShao/TemporalForest")
## -----------------------------------------------------------------------------
set.seed(11) # For reproducibility
n_subjects <- 60; n_timepoints <- 2; p <- 20
# Build X (two time points) with matching colnames
X <- replicate(n_timepoints, matrix(rnorm(n_subjects * p), n_subjects, p), simplify = FALSE)
colnames(X[[1]]) <- colnames(X[[2]]) <- paste0("V", 1:p)
# Long view and IDs
X_long <- do.call(rbind, X)
id <- rep(seq_len(n_subjects), each = n_timepoints)
time <- rep(seq_len(n_timepoints), times = n_subjects)
# Strong signal on V1, V2, V3 + modest subject random effect + small noise
u_subj <- rnorm(n_subjects, 0, 0.7)
eps <- rnorm(length(id), 0, 0.08)
Y <- 4*X_long[, "V1"] + 3.5*X_long[, "V2"] + 3.2*X_long[, "V3"] +
rep(u_subj, each = n_timepoints) + eps
# Lightweight dissimilarity to skip Stage 1 (fast on CRAN)
A <- 1 - abs(stats::cor(X_long)); diag(A) <- 0
dimnames(A) <- list(colnames(X[[1]]), colnames(X[[1]]))
## -----------------------------------------------------------------------------
# Run TemporalForest with minimal settings for vignette
tf_result <- temporal_forest(
X = X, Y = Y, id = id, time = time,
dissimilarity_matrix = A, # skip WGCNA/TOM (Stage 1)
n_features_to_select = 3,
n_boot_screen = 4, # Very low for quick demo
n_boot_select =8, # Very low for quick demo
keep_fraction_screen = 1, # Permissive screening
min_module_size = 2,
alpha_screen = 0.5, # Permissive screening
alpha_select = 0.6
)
## -----------------------------------------------------------------------------
print(tf_result)
## -----------------------------------------------------------------------------
# Validate against ground truth
true_predictors <- c("V1", "V2", "V3")
cat("True predictors found:", sum(true_predictors %in% tf_result$top_features),
"out of", length(true_predictors), "\n")
## ----error=TRUE---------------------------------------------------------------
try({
# This will produce a clear error message
mat1 <- matrix(1:4, nrow=2, dimnames=list(NULL, c("A", "B")))
mat2 <- matrix(1:4, nrow=2, dimnames=list(NULL, c("A", "C")))
bad_X <- list(mat1, mat2)
TemporalForest::check_temporal_consistency(bad_X)
})
## ----citation-----------------------------------------------------------------
citation("TemporalForest")
## -----------------------------------------------------------------------------
sessionInfo()
options(old_ops)
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.