-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
It doesn't make much sense to update prior covariance matrices with weights that are zero, or near zero. @stephens999 @yunqiyang0215 @zouyuxin Ideas are welcome.
Here's an example (thanks to Yuxin):
set.seed(1)
dat <- readRDS("dat.rds")
f0 <- ud_init(X = as.matrix(dat$data),V = dat$S,U_scaled = list(),
U_unconstrained = dat$Ulist,n_rank1 = 0)
res <- ud_fit(f0,control = list(unconstrained.update = "teem",
resid.update = "none",
version = "R"))
# Performing Ultimate Deconvolution on 600 x 20 matrix (udr 0.3-30, "R"):
# data points are i.i.d. (same V)
# prior covariances: 0 scaled, 0 rank-1, 10 unconstrained
# prior covariance updates: none (scaled), none (rank-1), teem (unconstrained)
# mixture weights update: em
# residual covariance update: none
# max 20 updates, conv tol 1.0e-06
# iter log-likelihood |w - w'| |U - U'| |V - V'|
# 1 -3.0699325059934326e+04 4.65e-01 1.22e+02 0.00e+00
# 2 -3.0330311442511782e+04 9.41e-02 1.11e+02 0.00e+00
# ...
# 19 -2.9720957242869852e+04 2.79e-05 2.27e-01 0.00e+00
# 20 -2.9720891074856361e+04 7.07e-05 4.21e-01 0.00e+00
print(round(res$w,digits = 6))
# FLASH_1 FLASH_2 FLASH_3 FLASH_4 tFLASH PCA_1 PCA_2 PCA_3
# 0.000000 0.000000 0.001667 0.004884 0.229977 0.000000 0.000000 0.000116
# tPCA XX
# 0.265002 0.498354Metadata
Metadata
Assignees
Labels
No labels