diff options
| author | Chris Sobczak <chris@sobczak.family> | 2026-06-10 20:28:32 -0700 |
|---|---|---|
| committer | Chris Sobczak <chris@sobczak.family> | 2026-06-10 20:28:32 -0700 |
| commit | cbed2931c9244daa2e1e8d4c0b13958f8e5e0148 (patch) | |
| tree | ad7f4afbc8974c1c020278392fdfe3d372f2270f /R/stability_score.R | |
| parent | 9f8518e1ef17fd23b5923bc37a50ccddcbeb299d (diff) | |
Add weights option to scale thresholded values
Diffstat (limited to 'R/stability_score.R')
| -rw-r--r-- | R/stability_score.R | 5 |
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)]) } |
