Nothing
## -----------------------------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 6,
fig.height = 4
)
## -----------------------------------------------------------------------------
library(neuromapr)
## -----------------------------------------------------------------------------
set.seed(1)
neuromapr:::random_rotation_euler()
## -----------------------------------------------------------------------------
set.seed(1)
neuromapr:::random_rotation_rodrigues()
## -----------------------------------------------------------------------------
set.seed(42)
n_lh <- 50
n_rh <- 50
coords <- list(
lh = matrix(rnorm(n_lh * 3), ncol = 3),
rh = matrix(rnorm(n_rh * 3), ncol = 3)
)
coords$lh <- t(apply(coords$lh, 1, function(x) x / sqrt(sum(x^2))))
coords$rh <- t(apply(coords$rh, 1, function(x) x / sqrt(sum(x^2))))
data_x <- rnorm(n_lh + n_rh)
data_y <- 0.3 * data_x + rnorm(n_lh + n_rh, sd = 0.9)
## -----------------------------------------------------------------------------
nulls_euler <- null_alexander_bloch(
data_x,
coords,
n_perm = 500L,
seed = 1,
rotation = "euler"
)
nulls_rodrigues <- null_alexander_bloch(
data_x,
coords,
n_perm = 500L,
seed = 1,
rotation = "rodrigues"
)
## -----------------------------------------------------------------------------
null_cors_euler <- apply(nulls_euler$nulls, 2, cor, data_y)
null_cors_rodrigues <- apply(nulls_rodrigues$nulls, 2, cor, data_y)
df <- data.frame(
r = c(null_cors_euler, null_cors_rodrigues),
method = rep(c("Euler (ZYZ)", "Rodrigues (axis-angle)"), each = 500)
)
ggplot2::ggplot(df, ggplot2::aes(x = r, fill = method)) +
ggplot2::geom_density(alpha = 0.5) +
ggplot2::scale_fill_manual(values = c("steelblue", "darkorange")) +
ggplot2::labs(x = "Null correlation (r)", y = "Density", fill = "Method") +
ggplot2::theme_minimal()
## -----------------------------------------------------------------------------
obs_r <- cor(data_x, data_y)
p_euler <- mean(abs(null_cors_euler) >= abs(obs_r))
p_rodrigues <- mean(abs(null_cors_rodrigues) >= abs(obs_r))
data.frame(
method = c("euler", "rodrigues"),
p_value = c(p_euler, p_rodrigues)
)
## -----------------------------------------------------------------------------
# null_alexander_bloch(
# data,
# coords,
# n_perm = 1000L,
# rotation = "rodrigues"
# )
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.