Commit Graph

47 Commits

Author SHA1 Message Date
RunasSudo 307aff6f14
turnbull: Disregard ICM step when computing likelihood-ratio confidence intervals
ICM step performance is heavily degraded when constraints are required
It is much faster to rely on the EM step alone
1275% speedup!
2023-12-25 22:25:50 +11:00
RunasSudo c9a8b5b8a5
turnbull: Terminate search for likelihood-ratio confidence intervals based on precision
81% speedup
Also resolves issue where confidence interval search would occasionally never terminate
2023-12-25 20:08:40 +11:00
RunasSudo c67965478d
turnbull: Gracefully handle the case where ICM does not increase the log-likelihood 2023-12-24 22:43:10 +11:00
RunasSudo 606c1636e0
turnbull: Fix issue with likelihood ratio-based confidence intervals
Previous logic resulted in EM-ICM algorithm terminating too early when constrained, resulting in imprecise confidence intervals
2023-12-24 22:17:32 +11:00
RunasSudo 434b432cf7
turnbull: Allow skipping computation of standard errors 2023-11-11 22:06:52 +11:00
RunasSudo 793e6309cf
turnbull: Add TODO 2023-11-11 22:06:44 +11:00
RunasSudo 8914cf3507
turnbull: Custom CSV implementation
Avoid unnecessary String allocation
13% speedup
2023-11-11 00:25:19 +11:00
RunasSudo b691c5a8d7
turnbull: Parallelise recoding times as indexes
11% speedup
2023-11-09 23:39:32 +11:00
RunasSudo b23ff26eac
turnbull: Implement CIs by likelihood ratio test 2023-10-29 17:09:49 +11:00
RunasSudo 993e4ba3e2
turnbull: Handle situation where EM algorithm yields exact solution 2023-10-29 13:53:20 +11:00
RunasSudo c87f42a042
turnbull: Rename other references from s to p post change to EM-ICM 2023-10-29 12:45:59 +11:00
RunasSudo f4d436e608
turnbull: Update documentation to reflect EM-ICM algorithm 2023-10-29 00:40:41 +11:00
RunasSudo 2880fe866d
Merge branch 'turnbull-emicm'
Change to EM-ICM algorithm to fit Turnbull estimator

Much more efficient - 19.7x speedup compared with old algorithm!
2023-10-29 00:01:35 +11:00
RunasSudo e726fad99b
turnbull: Improve efficiency of ICM step as suggested by Anderson-Bergman 2023-10-28 23:47:00 +11:00
RunasSudo 85e3ee0dcd
turnbull: Improve efficiency of EM step as suggested by Anderson-Bergman 2023-10-28 23:28:42 +11:00
RunasSudo 37c904bf34
turnbull: Refactor for profiling 2023-10-28 23:16:14 +11:00
RunasSudo 81b0b3f9b5
turnbull: Pre-compute survival probabilities 2023-10-28 23:08:03 +11:00
RunasSudo 250cfd8798
turnbull: Initial implementation of EM-ICM algorithm 2023-10-28 22:48:59 +11:00
RunasSudo 79c53895b0
turnbull: Change convergence tolerance to based on log-likelihood 2023-10-28 01:01:54 +11:00
RunasSudo 0e39402d3d
turnbull: Compute and display log-likelihood 2023-10-28 00:49:44 +11:00
RunasSudo 6fd0980277
turnbull: Parallelise compute_pi
37% speedup
2023-10-27 23:28:01 +11:00
RunasSudo 2c54c2be02
turnbull: Parallelise get_sum_fail_prob
37% speeedup
2023-10-27 23:11:29 +11:00
RunasSudo 18a0679476
turnbull: Use Vec<f64> throughout for better performance
Further 15% speedup
2023-10-22 19:09:01 +11:00
RunasSudo 8205e4acbc
turnbull: Improve performance of compute_pi
Faster to repeatedly index Vec than DVector, so work directly with Vec
80% speedup!
2023-10-22 18:56:27 +11:00
RunasSudo 22a2deca89
turnbull: Further refactoring for profiling 2023-10-22 18:41:40 +11:00
RunasSudo f043f7c67d
turnbull: Introduce analytical solution to computing Hessian
Makes runtime of computing Hessian negligible!
2023-10-20 20:47:49 +11:00
RunasSudo 0a8c77fa2c
turnbull: Refactor to aid profiling 2023-10-20 20:16:19 +11:00
RunasSudo dd24de5813
turnbull: Allow dropping columns/rows of Hessian corresponding to intervals with zero failure probability 2023-10-20 20:15:56 +11:00
RunasSudo 072d453d11
Add supplemental documentation for turnbull 2023-10-14 06:36:14 +11:00
RunasSudo fb4ca07131
Add test for turnbull 2023-10-14 06:20:37 +11:00
RunasSudo 67ce046522
Implement turnbull 2023-10-14 06:20:15 +11:00
RunasSudo 6c5ab0dd60
Transpose data_time_indexes in memory to avoid unnecessary matrix transposition 2023-05-01 00:13:32 +10:00
RunasSudo 1c08116f10
Avoid unnecessary Vec reallocations when computing time_points 2023-04-30 15:59:42 +10:00
RunasSudo 8aad020521
Fix help text references to E-M algorithm 2023-04-30 15:46:13 +10:00
RunasSudo 14c1944f92
Improve performance
Avoid unnecessary zeroing of input data matrices
2023-04-30 15:45:55 +10:00
RunasSudo 5876f724ad
Update intcox documentation 2023-04-29 19:08:12 +10:00
RunasSudo a1bb1568ad
Tidy update_beta 2023-04-29 18:29:33 +10:00
RunasSudo a58a52f682
Improve performance
Mostly, use BLAS functions to reduce unnecessary allocations for intermediate steps
2023-04-29 17:39:25 +10:00
RunasSudo cdc59da178
Change to ICM/Newton-Raphson algorithm 2023-04-29 00:37:30 +10:00
RunasSudo 1497e2d5cb
Add --ll_tolerance parameter for intcox 2023-04-23 18:36:28 +10:00
RunasSudo d0d92f2a78
Add supplemental documentation about intcox technical details 2023-04-23 15:54:23 +10:00
RunasSudo 45585a2b38
Add comments to M step 2023-04-22 23:57:17 +10:00
RunasSudo 461eb8db5f
Parse CSV robustly 2023-04-21 17:40:43 +10:00
RunasSudo f6f44c64ab
Force progress bar to output to stderr even when not a terminal 2023-04-21 17:21:33 +10:00
RunasSudo 9893657bb0
Also report and unit test cumulative hazard curve 2023-04-18 16:18:19 +10:00
RunasSudo 6ac2d9f055
Add test for intcox 2023-04-18 15:32:27 +10:00
RunasSudo 46e3b189ce
Initial commit 2023-04-17 17:50:43 +10:00