Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implements growth link function #330

Merged
merged 3 commits into from
May 22, 2024
Merged

Implements growth link function #330

merged 3 commits into from
May 22, 2024

Conversation

gowerc
Copy link
Collaborator

@gowerc gowerc commented May 21, 2024

Partially addresses #170

Only thing that is making me a bit nervous about this is that the confidence intervals for this link parameter in my testing seem all most excessively wide. For example with ~12 observations per subject and 800 subjects and a real value of 3 I'm getting:

# A tibble: 2 × 7
  variable       mean   q01   q99  rhat ess_bulk ess_tail
  <chr>         <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
1 link_growth   2.99  2.04   3.91  1.00    2035.    1249.

That might not seem so bad but then compare it to the other model parameters:

> dat
# A tibble: 5 × 7
  variable           mean    q01    q99  rhat ess_bulk ess_tail
  <chr>             <dbl>  <dbl>  <dbl> <dbl>    <dbl>    <dbl>
1 lm_sf_mu_bsld[1] 60.3   59.9   60.9    1.00    1895.     624.
2 lm_sf_mu_ks[1]    0.200  0.197  0.203  1.00    1879.    1311.
3 lm_sf_mu_ks[2]    0.251  0.248  0.254  1.00    1814.    1210.
4 lm_sf_mu_kg[1]    0.150  0.146  0.154  1.00    1691.     803.
5 lm_sf_mu_kg[2]    0.300  0.293  0.307  1.00    1770.    1302.

The confidence intervals are noticeably tighter. Admittedly this isn't really a unique problem for the growth link as it happens with all of them, but still makes me a little nervous... maybe its fine ?

Either way the full link testing code takes ages to run so I've marked it as "not for cran" meaning it will only run in our twice a month CRON job. I done a parser check though, e.g. it checks stans static parser to ensure the stan code is syntactically valid.

@gowerc gowerc requested a review from danielinteractive May 21, 2024 15:52
Copy link
Contributor

Unit Tests Summary

  1 files   42 suites   8m 15s ⏱️
138 tests 106 ✅ 32 💤 0 ❌
929 runs  897 ✅ 32 💤 0 ❌

Results for commit 43ceccb.

Copy link
Contributor

Unit Test Performance Difference

Test Suite $Status$ Time on main $±Time$ $±Tests$ $±Skipped$ $±Failures$ $±Errors$
Grid 💔 $203.88$ $+4.90$ $0$ $0$ $0$ $0$
GridPrediction 💚 $130.96$ $-4.67$ $0$ $0$ $0$ $0$
Additional test case details
Test Suite $Status$ Time on main $±Time$ Test Case
Grid 💔 $76.66$ $+3.54$ GridObservered_Constructs_correct_quantities
Grid 💔 $38.02$ $+1.42$ GridPopulation_works_as_expected_for_GSF_models
GridPrediction 💚 $106.38$ $-3.66$ GridPrediction_works_as_expected_for_Survival_models
GridPrediction 💚 $24.20$ $-1.01$ GridPrediction_works_for_survival_only_models
LongitudinalSteinFojo 👶 $+0.01$ Can_recover_known_distributional_parameters_from_a_SF_joint_model_with_growth_link

Results for commit 960c9eb

♻️ This comment has been updated with latest results.

Copy link
Contributor

badge

Code Coverage Summary

Filename                           Stmts    Miss  Cover    Missing
-------------------------------  -------  ------  -------  --------------------------------
R/brier_score.R                      166       0  100.00%
R/DataJoint.R                         76       2  97.37%   264, 270
R/DataLongitudinal.R                 119       1  99.16%   244
R/DataSubject.R                       85       1  98.82%   142
R/DataSurvival.R                      98       0  100.00%
R/defaults.R                          10       6  40.00%   18-57, 84
R/generics.R                          30       3  90.00%   51, 394, 444
R/Grid.R                              27       1  96.30%   170
R/GridEven.R                          32       0  100.00%
R/GridFixed.R                         30       0  100.00%
R/GridGrouped.R                       52       0  100.00%
R/GridManual.R                        23       3  86.96%   78-80
R/GridObserved.R                      20       0  100.00%
R/GridPopulation.R                    31       4  87.10%   61, 69-71
R/GridPrediction.R                    36       6  83.33%   83, 91-95
R/JointModel.R                       123       8  93.50%   141-143, 193, 197, 239, 285, 291
R/JointModelSamples.R                 59       0  100.00%
R/link_generics.R                     13       3  76.92%   59, 76, 91
R/Link.R                              62       4  93.55%   200-203
R/LinkComponent.R                     19       3  84.21%   88, 120-121
R/LongitudinalGSF.R                   82       0  100.00%
R/LongitudinalModel.R                 19       0  100.00%
R/LongitudinalQuantities.R            71       0  100.00%
R/LongitudinalRandomSlope.R           41       5  87.80%   93-97
R/LongitudinalSteinFojo.R             75       5  93.33%   143-147
R/Parameter.R                         14       0  100.00%
R/ParameterList.R                     42       1  97.62%   184
R/Prior.R                            236       8  96.61%   480, 576, 588-606
R/Promise.R                           25       0  100.00%
R/Quantities.R                        60       0  100.00%
R/QuantityGeneratorPopulation.R       22       0  100.00%
R/QuantityGeneratorPrediction.R       48       0  100.00%
R/QuantityGeneratorSubject.R          19       0  100.00%
R/settings.R                          12      12  0.00%    55-69
R/SimGroup.R                           5       0  100.00%
R/SimJointData.R                      72       1  98.61%   103
R/SimLongitudinal.R                    5       2  60.00%   22, 40
R/SimLongitudinalGSF.R                53       0  100.00%
R/SimLongitudinalRandomSlope.R        42       0  100.00%
R/SimLongitudinalSteinFojo.R          50       0  100.00%
R/SimSurvival.R                      104       0  100.00%
R/StanModel.R                         15       0  100.00%
R/StanModule.R                       176       6  96.59%   192-193, 235, 246, 383, 411
R/SurvivalExponential.R               10       0  100.00%
R/SurvivalLoglogistic.R               11       0  100.00%
R/SurvivalModel.R                     19       0  100.00%
R/SurvivalQuantities.R               170       1  99.41%   125
R/SurvivalWeibullPH.R                 11       0  100.00%
R/utilities.R                        143       1  99.30%   13
R/zzz.R                               28      25  10.71%   3, 8-12, 14-35, 47
TOTAL                               2791     112  95.99%

Diff against main

Filename                        Stmts    Miss  Cover
----------------------------  -------  ------  --------
R/link_generics.R                  +3      +1  -3.08%
R/LongitudinalGSF.R                +5       0  +100.00%
R/LongitudinalRandomSlope.R        +5      +5  -12.20%
R/LongitudinalSteinFojo.R          +5       0  +0.48%
R/SimLongitudinalGSF.R             +2       0  +100.00%
R/SimLongitudinalSteinFojo.R       +2       0  +100.00%
TOTAL                             +22      +6  -0.18%

Results for commit: 43ceccb

Minimum allowed coverage is 80%

♻️ This comment has been updated with latest results

Copy link
Collaborator

@danielinteractive danielinteractive left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good, I think this just means that there is not a lot of information in the data about the link coefficient...

@gowerc gowerc merged commit 9e51ea6 into main May 22, 2024
22 checks passed
@gowerc gowerc deleted the 170-growth-link branch May 22, 2024 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants