Nothing
## ----setup, include=FALSE-----------------------------------------------------
library(GeometricMorphometricsMix)
## -----------------------------------------------------------------------------
set.seed(42)
X = matrix(rnorm(60), ncol=6) # Block 1: shape variables
Y = matrix(rnorm(60), ncol=6) # Block 2: ecological variables
## -----------------------------------------------------------------------------
pls_result = pls(X, Y, perm=999, global_RV_test=TRUE)
# Perform PLS analysis with permutation test
# pls_result contains scores, singular axes, and significance tests
pls_result$global_significance_RV
# Show global RV test result
pls_result$singular_axis_significance
# Show significance for each axis
## -----------------------------------------------------------------------------
set.seed(1234)
n = 50 # number of observations
p = 6 # variables per block
# Simulate a latent variable that drives covariation
latent = rnorm(n)
# latent variable
latent_mat = matrix(latent, nrow=n, ncol=p)
# latent variable replicated across columns for element-wise addition
X_assoc = matrix(rnorm(n*p), ncol=p) + 0.5 * latent_mat
# Block 1: shape variables influenced by latent + noise
Y_assoc = matrix(rnorm(n*p), ncol=p) + 0.4 * latent_mat
# Block 2: ecological variables influenced by latent + noise
# Now X_assoc and Y_assoc have shared structure and will show significant covariation
## -----------------------------------------------------------------------------
pls_assoc_result = pls(X_assoc, Y_assoc, perm=999, global_RV_test=TRUE)
# Perform PLS analysis with permutation test
pls_assoc_result$global_significance_RV # Show global RV test result
pls_assoc_result$singular_axis_significance # Show significance for each axis
## -----------------------------------------------------------------------------
Pred_major_axis = pls_major_axis(pls_assoc_result, axes_to_use=1)
# Compute projections and predictions based on the first pair of PLS axes
names(Pred_major_axis)
# Main elements returned (lists for projection, predictions, and optionally new data)
Proj_scores = Pred_major_axis$original_major_axis_projection[[1]]$original_data_PLS_projection
# Scores of original data projected on the major axis
hist(Proj_scores,
main="Original data - projections on the major axis",
xlab="Major axis score")
# Distribution of major axis scores (first axis pair)
Pred_block1 = Pred_major_axis$original_major_axis_predictions_reversed$Block1
# Predictions for block 1 back-transformed to original space
Pred_block2 = Pred_major_axis$original_major_axis_predictions_reversed$Block2
# Predictions for block 2 back-transformed to original space
## -----------------------------------------------------------------------------
set.seed(999)
X_new = X_assoc + matrix(rnorm(n * ncol(X_assoc), sd=0.2), ncol=ncol(X_assoc))
# New data for block 1 (perturbed version of original data)
Y_new = Y_assoc + matrix(rnorm(n * ncol(Y_assoc), sd=0.2), ncol=ncol(Y_assoc))
# New data for block 2 (perturbed version of original data)
Pred_major_axis_new = pls_major_axis(pls_assoc_result,
new_data_x = X_new,
new_data_y = Y_new,
axes_to_use = 1)
# Obtain major axis projections and predictions for new data
colnames(Pred_major_axis_new$new_data_results$new_data_major_axis_proj)
# Names (axes) for the major axis projections of new data
head(Pred_major_axis_new$new_data_results$new_data_major_axis_proj)
# Scores of new data on the major axis
head(Pred_major_axis_new$new_data_results$new_data_Block1_proj_prediction_revert)
# Predictions for block 1 new data (back-transformed)
head(Pred_major_axis_new$new_data_results$new_data_Block2_proj_prediction_revert)
# Predictions for block 2 new data (back-transformed)
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.