The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
review/bench-stem.R, nA=10000, nB=15000,
n_links=7500, 22 sweeps: 238.7 s -> 2.29 s); on a 100k/150k-record
problem (75k links, 22 sweeps) a serial run takes 88 s and
threads = 8 brings it to ~51 s. The candidate-pair
log-likelihood is now a plain per-pair vector (the nA x nB sparse matrix
and data-frame row subsetting are gone), candidate pairs are built by a
single C++ call (buildCandidatePairs()), the per-sweep
likelihood pieces are computed by one fused C++ pass
(pairLogLik()), sampleL samples the joint
(H^A, H^B) through an exact O(nval) factorization, and all kernels draw
from pre-drawn uniform blocks.sampleD() signature is now
(S, LLA, LLB, LLL, gamma, nlinkrec, links, threads).
gamma is a single scalar; the linkage state is passed as
links, a 0-based k x 2 matrix of (A, B) record pairs (0x2
when nothing is linked), replacing the
sumRowD/sumColD arguments — the flags are
derived from links and still returned. The return list
gains links (the updated 0-based pairs) next to
linksQ (1-based rows of S);
loglik was dropped from the inputs (the value cancels in
every acceptance ratio and is reconstructed internally).simulateD() likewise takes the current
linksR and no sumRowD/sumColD; it
gains threads and model_dynamics.initDeltaMap()
and Deltafind() — is gone: a sweep carries no state between
calls, everything it needs lives in its arguments.sampleNL() takes a unif argument;
sampleL() takes
(survivalpSameH, nval, phikA, phikB, eta, unif) and returns
the joint (H^A, H^B) matrix.set.seed() the realised draws differ from <= 1.0.0
(distributions do not).threads argument on StEM()
(default 4; on a build without OpenMP the code runs sequentially
regardless). Results are bitwise identical for any thread count. The
package still builds — and runs sequentially — on platforms without
OpenMP.survivalS_cpp) instead of R-level matrix algebra; custom
survival functions are unaffected and keep working exactly as before.
Values agree with the previous R implementation to ~1e-16 (BLAS
rounding); survival_model() objects gain a
cuts field.tests/testthat/test-golden-parity.R compares the current
kernels to golden fixtures generated from the pre-optimisation build
(review/generate-goldens.R, baseline glm-notes
@ 4b09088) — likelihoods and candidate-pair sets exactly, StEM seed
clouds and the tiny problem’s stationary frequencies at Monte-Carlo
level. See review/PARITY-REPORT.md.survival_model(): the change over time of a
structured PIV can be modelled with an exponential (default), Weibull,
Gompertz, piecewise-constant or user-defined survival function, passed
to StEM() through the survival_model argument.
alpha chains are named after the model parameters.
SurvivalUnstable() and loglikSurvival() are
obsolete. cond_hazard_params are now given on the parameter
scale of the model (log-hazards for the exponential model).RL_diagnostics(): provides record linkage
diagnostics over linkage decision rules (thresholds from 0.50 to 0.99);
internally computes FDP_measures and discrepancy_measures useful for
downstream inference; print(x, threshold = ) and
plot(x, type = ) display the diagnostics,link_with_<pkg>() record linkage wrappers
created for several packages: multilink, fastLink, BRL, reclin2, diyar,
fedmatch, FlexRL. They return a named list (idxA,
idxB, LinkScore) that can be passed directly
to RL_diagnostics().These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.