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

Logit-Normal parameterisation for GSF Phi #375

Merged
merged 3 commits into from
Jul 2, 2024
Merged

Conversation

gowerc
Copy link
Collaborator

@gowerc gowerc commented Jun 28, 2024

Closes #374

A bit messy just because the GSF distribution is used all over the place so had to edit a lot of testing locations.

The implementation is slightly different compared to the other parameters. This is because Stan doesn't have a native logit-normal distribution. Some of their articles recommend implementing logit-normal via:

logit(phi) ~ normal(mu, sigma)

Problem is if you do it this way you need to apply a Jacobian adjustment which I didn't want to mess around with. So to avoid that instead of having phi as the parameter I have phi_logit as the parameter (thus placing the prior on phi_logit) and then transform it to the required value via phi = inv_logit(phi_logit)

Copy link
Contributor

github-actions bot commented Jun 28, 2024

badge

Code Coverage Summary

Filename                           Stmts    Miss  Cover    Missing
-------------------------------  -------  ------  -------  --------------------------------
R/brier_score.R                      167       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                          33       4  87.88%   52, 396, 416, 471
R/Grid.R                              27       1  96.30%   173
R/GridEven.R                          32       0  100.00%
R/GridEvent.R                         22       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                       126      10  92.06%   146-151, 201, 205, 247, 293, 299
R/JointModelSamples.R                 66       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/LongitudinalClaretBruno.R           83       6  92.77%   156-160, 175
R/LongitudinalGSF.R                   84       0  100.00%
R/LongitudinalModel.R                 19       0  100.00%
R/LongitudinalQuantities.R            71       0  100.00%
R/LongitudinalRandomSlope.R           42       5  88.10%   98-102
R/LongitudinalSteinFojo.R             76       5  93.42%   149-153
R/Parameter.R                         14       0  100.00%
R/ParameterList.R                     42       1  97.62%   184
R/Prior.R                            236       8  96.61%   481, 577, 589-607
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/SimLongitudinalClaretBruno.R        52       0  100.00%
R/SimLongitudinalGSF.R                60       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                        144       2  98.61%   13, 335
R/zzz.R                               28      25  10.71%   3, 8-12, 14-35, 47
TOTAL                               2974     122  95.90%

Diff against main

Filename                  Stmts    Miss  Cover
----------------------  -------  ------  --------
R/LongitudinalGSF.R          +1       0  +100.00%
R/SimLongitudinalGSF.R       +7       0  +100.00%
TOTAL                        +8       0  +0.01%

Results for commit: eceb927

Minimum allowed coverage is 80%

♻️ This comment has been updated with latest results

Copy link
Contributor

github-actions bot commented Jun 28, 2024

Unit Tests Summary

    1 files    154 suites   6m 28s ⏱️
  136 tests   133 ✅ 3 💤 0 ❌
1 021 runs  1 017 ✅ 4 💤 0 ❌

Results for commit eceb927.

♻️ This comment has been updated with latest results.

Copy link
Contributor

github-actions bot commented Jun 28, 2024

Unit Test Performance Difference

Test Suite $Status$ Time on main $±Time$ $±Tests$ $±Skipped$ $±Failures$ $±Errors$
JointModelSamples 💔 $8.36$ $+23.81$ $0$ $-1$ $0$ $0$
model_multi_chain 💚 $54.27$ $-52.34$ $0$ $0$ $0$ $0$
Additional test case details
Test Suite $Status$ Time on main $±Time$ Test Case
Grid 💚 $100.78$ $-95.73$ Grid_objects_work_with_QuantityGenerator_and_QuantityCollapser
GridPrediction 💔 $124.42$ $+2.96$ GridPrediction_works_as_expected_for_Survival_models
JointModelSamples 💔 $8.36$ $+23.81$ print_works_as_expected_for_JointModelSamples
LongitudinalClaretBruno 💚 $6.05$ $-1.51$ LongitudinalClaretBruno_works_as_expected_with_default_arguments
LongitudinalGSF 💚 $330.43$ $-326.77$ LongitudinalGSF_works_as_expected_with_default_arguments
LongitudinalRandomSlope 💚 $92.30$ $-85.41$ Print_method_for_LongitudinalRandomSlope_works_as_expected
LongitudinalSteinFojo 💚 $434.20$ $-430.15$ LongitudinalSteinFojo_works_as_expected_with_default_arguments
SurvivalLoglogistic 💚 $36.81$ $-11.69$ sim_os_loglogistic_is_consistant_with_flexsurv
SurvivalQuantities 💚 $57.92$ $-51.80$ SurvivalQuantities_and_autoplot.SurvivalQuantities_works_as_expected
brierScore 💔 $4.13$ $+24.19$ brierScore_SurvivalQuantities_returns_same_results_as_survreg
model_multi_chain 💚 $54.27$ $-52.34$ Can_recover_known_distribution_parameters_from_random_slope_model_when_using_multiple_chains
stan_functions 💚 $34.40$ $-5.41$ GSF_SLD_function_works_as_expected

Results for commit ab12707

♻️ This comment has been updated with latest results.

Copy link
Collaborator

@gravesti gravesti left a comment

Choose a reason for hiding this comment

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

One suggestion to improve the docs, otherwise looks good @gowerc

R/LongitudinalGSF.R Outdated Show resolved Hide resolved
R/SimLongitudinalGSF.R Outdated Show resolved Hide resolved
@gowerc gowerc merged commit 4d049cf into main Jul 2, 2024
23 checks passed
@gowerc gowerc deleted the 374-phi-parameterisation branch July 2, 2024 10:48
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.

Parameterization of GSF phi parameter
2 participants