summaryrefslogtreecommitdiff
path: root/R/stability_score.R
diff options
context:
space:
mode:
authorChris Sobczak <chris@sobczak.family>2026-06-10 20:28:32 -0700
committerChris Sobczak <chris@sobczak.family>2026-06-10 20:28:32 -0700
commitcbed2931c9244daa2e1e8d4c0b13958f8e5e0148 (patch)
treead7f4afbc8974c1c020278392fdfe3d372f2270f /R/stability_score.R
parent9f8518e1ef17fd23b5923bc37a50ccddcbeb299d (diff)
Add weights option to scale thresholded values
Diffstat (limited to 'R/stability_score.R')
-rw-r--r--R/stability_score.R5
1 files changed, 3 insertions, 2 deletions
diff --git a/R/stability_score.R b/R/stability_score.R
index 7841214..45fc078 100644
--- a/R/stability_score.R
+++ b/R/stability_score.R
@@ -20,7 +20,8 @@ stability_score <- function(X, K = 25, subsample_fraction = 0.7){
theta <- acos(pmax(pmin(R, 1), -1))
delta <- theta - pi/2
delta_sd <- apply(delta, c(1, 2), sd)
- delta_sd <- pmax(delta_sd, quantile(delta_sd[upper.tri(delta_sd)], 0.05))
+ delta_sd <- pmax(delta_sd, quantile(delta_sd[lower.tri(delta_sd)], 0.05))
score <- 1 / delta_sd
- score / median(score[upper.tri(score)])
+ W <- score / median(score[lower.tri(score)])
+ return(W[lower.tri(W)])
}