From f1377e230dd4e689ce24d8ca17d3779df591f0e5 Mon Sep 17 00:00:00 2001 From: gowerc Date: Tue, 20 Feb 2024 13:45:15 +0000 Subject: [PATCH] Changed to British Spelling --- DESCRIPTION | 2 +- R/DataLongitudinal.R | 6 +++--- R/LongitudinalGSF.R | 10 +++++----- README.Rmd | 6 +++--- README.md | 8 ++++---- design/Intro_to_jmpost.Rmd | 18 +++++++++--------- design/bibliography.bib | 2 +- design/compare_sim_gsf.Rmd | 10 +++++----- design/tests/gsf-no-link.R | 2 +- inst/WORDLIST | 10 ++++++++++ inst/stan/base/longitudinal.stan | 18 +++++++++--------- inst/stan/lm-gsf/model.stan | 6 +++--- man/LongitudinalGSF-class.Rd | 4 ++-- man/jmpost-package.Rd | 2 +- tests/testthat/test-LongitudinalGSF.R | 6 +++--- tests/testthat/test-initialValues.R | 2 +- vignettes/extending-jmpost.Rmd | 4 ++-- 17 files changed, 63 insertions(+), 53 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 76bd36fc..9c44fd8a 100755 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -17,7 +17,7 @@ Description: Implements joint models combining a non-linear mixed effects model In phase 1 studies patients are followed until progression only. Thus, reliable overall survival data and hence estimates are not available. However, we can use additional information from previous clinical trials - or real-world data - we can correlate the tumor response data, that are + or real-world data - we can correlate the tumour response data, that are longitudinal measurements, with the overall survival of the patients or their hazard ratios. Thereby we can predict the overall survival from our phase 1 study data and therefore make better decisions. diff --git a/R/DataLongitudinal.R b/R/DataLongitudinal.R index d68f1caa..13d79913 100644 --- a/R/DataLongitudinal.R +++ b/R/DataLongitudinal.R @@ -190,7 +190,7 @@ as_stan_list.DataLongitudinal <- function(object, subject_var, ...) { model_data <- list( Nta_total = nrow(df), - # Number of individuals and tumor assessments. + # Number of individuals and tumour assessments. Nta_obs_y = length(index_obs), Nta_cens_y = length(index_cen), @@ -204,7 +204,7 @@ as_stan_list.DataLongitudinal <- function(object, subject_var, ...) { Ythreshold = adj_threshold, # Sparse matrix parameters - # Matrix of individuals x observed tumor assessments. + # Matrix of individuals x observed tumour assessments. n_mat_inds_obs_y = c( length(sparse_mat_inds_obs_y$w), length(sparse_mat_inds_obs_y$v), @@ -214,7 +214,7 @@ as_stan_list.DataLongitudinal <- function(object, subject_var, ...) { v_mat_inds_obs_y = sparse_mat_inds_obs_y$v, u_mat_inds_obs_y = sparse_mat_inds_obs_y$u, - # Matrix of individuals x censored tumor assessments. + # Matrix of individuals x censored tumour assessments. n_mat_inds_cens_y = c( length(sparse_mat_inds_cens_y$w), length(sparse_mat_inds_cens_y$v), diff --git a/R/LongitudinalGSF.R b/R/LongitudinalGSF.R index 93ace14b..174a6d13 100755 --- a/R/LongitudinalGSF.R +++ b/R/LongitudinalGSF.R @@ -36,7 +36,7 @@ NULL #' @param a_phi (`Prior`)\cr for the alpha parameter for the fraction of cells that respond to treatment. #' @param b_phi (`Prior`)\cr for the beta parameter for the fraction of cells that respond to treatment. #' -#' @param centered (`logical`)\cr whether to use the centered parameterization. +#' @param centred (`logical`)\cr whether to use the centred parameterization. #' #' @export LongitudinalGSF <- function( @@ -54,12 +54,12 @@ LongitudinalGSF <- function( sigma = prior_lognormal(log(0.1), 1), - centered = FALSE + centred = FALSE ) { gsf_model <- StanModule(decorated_render( .x = paste0(read_stan("lm-gsf/model.stan"), collapse = "\n"), - centered = centered + centred = centred )) parameters <- list( @@ -82,8 +82,8 @@ LongitudinalGSF <- function( Parameter(name = "lm_gsf_sigma", prior = sigma, size = 1) ) - assert_flag(centered) - parameters_extra <- if (centered) { + assert_flag(centred) + parameters_extra <- if (centred) { list( Parameter( name = "lm_gsf_psi_bsld", diff --git a/README.Rmd b/README.Rmd index 089bbd7f..8f975501 100644 --- a/README.Rmd +++ b/README.Rmd @@ -28,10 +28,10 @@ The goal of the `jmpost` package is to fit joint models involving: 1. a nonlinear (or linear) mixed-effect sub-model, describing individual time profiles (_i.e._ trajectories) for a continuous marker, 1. a link function (_a.k.a._ association term). -More specifically, the model implemented in this package utilizes a modeling framework described previously **[1-3]** to link overall survival to tumor size data in oncology clinical trials. +More specifically, the model implemented in this package utilizes a modelling framework described previously **[1-3]** to link overall survival to tumour size data in oncology clinical trials. -**[1]** [Tardivon _et al._ Association between tumor size kinetics and survival in patients with urothelial carcinoma treated with atezolizumab: Implications for patient follow-up. _Clin Pharm Ther_, 2019](https://doi.org/10.1002/cpt.1450). -**[2]** [Kerioui _et al._ Bayesian inference using Hamiltonian Monte-Carlo algorithm for nonlinear joint modeling in the context of cancer immunotherapy. _Stat in Med_, 2020](https://doi.org/10.1002/sim.8756). +**[1]** [Tardivon _et al._ Association between tumour size kinetics and survival in patients with urothelial carcinoma treated with atezolizumab: Implications for patient follow-up. _Clin Pharm Ther_, 2019](https://doi.org/10.1002/cpt.1450). +**[2]** [Kerioui _et al._ Bayesian inference using Hamiltonian Monte-Carlo algorithm for nonlinear joint modelling in the context of cancer immunotherapy. _Stat in Med_, 2020](https://doi.org/10.1002/sim.8756). **[3]** [Kerioui _et al._ Modelling the association between biomarkers and clinical outcome: An introduction to nonlinear joint models. _Br J Clin Pharm_, 2022](https://doi.org/10.1111/bcp.15200). The models are implemented in [STAN](https://mc-stan.org/), and the package provides a flexible user interface. diff --git a/README.md b/README.md index 4bf9eb55..803fcc01 100755 --- a/README.md +++ b/README.md @@ -22,15 +22,15 @@ The goal of the `jmpost` package is to fit joint models involving: 3. a link function (*a.k.a.* association term). More specifically, the model implemented in this package utilizes a -modeling framework described previously **\[1-3\]** to link overall -survival to tumor size data in oncology clinical trials. +modelling framework described previously **\[1-3\]** to link overall +survival to tumour size data in oncology clinical trials. -**\[1\]** [Tardivon *et al.* Association between tumor size kinetics and +**\[1\]** [Tardivon *et al.* Association between tumour size kinetics and survival in patients with urothelial carcinoma treated with atezolizumab: Implications for patient follow-up. *Clin Pharm Ther*, 2019](https://doi.org/10.1002/cpt.1450). **\[2\]** [Kerioui *et al.* Bayesian inference using Hamiltonian -Monte-Carlo algorithm for nonlinear joint modeling in the context of +Monte-Carlo algorithm for nonlinear joint modelling in the context of cancer immunotherapy. *Stat in Med*, 2020](https://doi.org/10.1002/sim.8756). **\[3\]** [Kerioui *et al.* Modelling the association between biomarkers diff --git a/design/Intro_to_jmpost.Rmd b/design/Intro_to_jmpost.Rmd index 8b5995da..306c6b20 100755 --- a/design/Intro_to_jmpost.Rmd +++ b/design/Intro_to_jmpost.Rmd @@ -36,7 +36,7 @@ In clinical development of new cancer medicines a key challenge is to decide on In phase 1 studies patients are followed until the cancer is growing again (progression event). Thus, reliable overall survival data are not available. However, we can use additional information from previous clinical trials or real-world data to understand the time between progression and death. -Specifically, we can correlate the tumor response data, that are longitudinal measurements, (i.e. the shrinkage and growth of tumor lesions over time) with the overall survival of the patients or their hazard ratios [@beyer2020multistate]. +Specifically, we can correlate the tumour response data, that are longitudinal measurements, (i.e. the shrinkage and growth of tumour lesions over time) with the overall survival of the patients or their hazard ratios [@beyer2020multistate]. Thereby we can predict the overall survival in our Phase 1 studies and therefore make better decisions [@kerioui2020bayesian]. The sum of the longest diameters (SLD) of the cancer lesions provides an effective and representative biomarker for longitudinal measurements in solid cancer. @@ -44,15 +44,15 @@ SLD is relatively easy to measure with reasonable accuracy while also being a go The association between the longitudinal data and the overall survival can be achieved in different ways. The predicted SLD value or its first derivative over time can be directly treated as the linking factor in the hazard model for survival. -Other factors such as the time to growth, the tumor shrinkage rate or the tumor growth rate can also be used to associate longitudinal outcomes with overall survival. +Other factors such as the time to growth, the tumour shrinkage rate or the tumour growth rate can also be used to associate longitudinal outcomes with overall survival. Bayesian methodology provides an important tool for the analysis of similar data. Firstly, the use of historical data from previous trials is improving the performance of the models. Secondly, prior definition allows the adjustment of the models according to the specific factors of each analysis. Although these statistical methods provide significant advantages in decision making processes in cancer drug development, their implementation is relatively intricate and time consuming. -Compared to other R-packages such as `joineR` and `jmbayes`, `jmpost` provides the flexibility of non-linear mixed effects modeling for the longitudinal part of the joint model. -Non-linear parametrization respects the biological implications of clinical trials in oncology where the observed tumor response usually follows non-linear patterns. +Compared to other R-packages such as `joineR` and `jmbayes`, `jmpost` provides the flexibility of non-linear mixed effects modelling for the longitudinal part of the joint model. +Non-linear parametrization respects the biological implications of clinical trials in oncology where the observed tumour response usually follows non-linear patterns. # Minimal usage @@ -79,7 +79,7 @@ Secondly, the summary report of the model run. # Customizing the analysis `jmpost` is a package aiming to optimize the procedure of developing a new Bayesian joint model. -The package provides complete examples of joint modeling code. +The package provides complete examples of joint modelling code. Here we explain the workflow of the package `jmpost` using `stan` libraries as an example. \begin{figure}[!] @@ -116,7 +116,7 @@ Here we explain the workflow of the package `jmpost` using `stan` libraries as a Figure~1 illustrates the main workflow of the `jmpost` package. Three objects need to be combined for the construction of the full Bayesian joint model. -The longitudinal sub-model, including all the required information for the modeling of the longitudinal measurements, the survival sub-model, including information of for the time to event data and the link or association factor, containing information for the conection of the two sub-models. +The longitudinal sub-model, including all the required information for the modelling of the longitudinal measurements, the survival sub-model, including information of for the time to event data and the link or association factor, containing information for the conection of the two sub-models. ```{r Longitudinal model} Long_mod <- LongModel( @@ -296,7 +296,7 @@ y_{ij} \sim N(SLD_{ij}, SLD^2_{ij}\sigma^2) Where: \begin{itemize} -\item $y_{ij}$ is the observed tumor mesasurements +\item $y_{ij}$ is the observed tumour mesasurements \item $SLD_{ij}$ is the expected sum of longest diameter for subject $i$ at time point $j$ \end{itemize} ### Expected SLD @@ -314,7 +314,7 @@ Where: \item $SLD_{ij}$ is the observed SLD measurement for subject $i$ at visit $j$ \item $b_i$ is the Baseline sld measurement \item $s_i$ is the kinetics shrinkage parameter -\item $g_i$ is the kinetics tumor growth parameter +\item $g_i$ is the kinetics tumour growth parameter \item $\phi_i$ is the proportion of cells affected by the treatment \end{itemize} @@ -405,7 +405,7 @@ Where: \item $G_i$ is the time to growth for subject $i$ \item $b_i$ is the baseline SLD measurement \item $s_i$ is the kinetics shrinkage parameter -\item $g_i$ is is the kinetics tumor growth parameter +\item $g_i$ is is the kinetics tumour growth parameter \item $\phi_i$ is the proportion of cells affected by the treatment \end{itemize} diff --git a/design/bibliography.bib b/design/bibliography.bib index 8473f5a2..459429b5 100755 --- a/design/bibliography.bib +++ b/design/bibliography.bib @@ -1,5 +1,5 @@ @article{kerioui2020bayesian, - title={Bayesian inference using Hamiltonian Monte-Carlo algorithm for nonlinear joint modeling in the context of cancer immunotherapy}, + title={Bayesian inference using Hamiltonian Monte-Carlo algorithm for nonlinear joint modelling in the context of cancer immunotherapy}, author={Kerioui, Marion and Mercier, Francois and Bertrand, Julie and Tardivon, Coralie and Bruno, Ren{\'e} and Guedj, J{\'e}r{\'e}mie and Desm{\'e}e, Sol{\`e}ne}, journal={Statistics in Medicine}, volume={39}, diff --git a/design/compare_sim_gsf.Rmd b/design/compare_sim_gsf.Rmd index 17a581ee..964594e0 100644 --- a/design/compare_sim_gsf.Rmd +++ b/design/compare_sim_gsf.Rmd @@ -18,22 +18,22 @@ knitr::opts_chunk$set(echo = TRUE) #' #' Simulation code slightly adapted from supplementary materials from #' Kerioui, M, Mercier, F, Bertrand, J, et al. Bayesian inference using Hamiltonian -#' Monte-Carlo algorithm for nonlinear joint modeling in the context of cancer immunotherapy. +#' Monte-Carlo algorithm for nonlinear joint modelling in the context of cancer immunotherapy. #' Statistics in Medicine. 2020; 39: 4853– 4868. https://doi.org/10.1002/sim.8756 #' #' @param N number of patients #' @param BSLD baseline sum of longest diameters (SLD) -#' @param s exponential tumor shrinkage rate -#' @param g exponential tumor growth rate +#' @param s exponential tumour shrinkage rate +#' @param g exponential tumour growth rate #' @param phi proportion of cells responding to treatment #' @param omega_BSLD standard deviation of random effects for `BSLD` #' @param omega_s standard deviation of random effects for `s` #' @param omega_g standard deviation of random effects for `g` #' @param omega_phi standard deviation of random effects for `phi` -#' @param sigma standard deviation of of tumor size +#' @param sigma standard deviation of of tumour size #' @param lambda scale parameter for Weibull survival distribution #' @param beta coefficient of link of SLD in proportional hazards -#' @param times observation times for tumor size. Should not exceed 693. +#' @param times observation times for tumour size. Should not exceed 693. #' #' @return A data.frame with columns #' ID: patient id diff --git a/design/tests/gsf-no-link.R b/design/tests/gsf-no-link.R index c2822300..ed44c2e6 100644 --- a/design/tests/gsf-no-link.R +++ b/design/tests/gsf-no-link.R @@ -114,7 +114,7 @@ jm <- JointModel( a_phi = prior_lognormal(log(6), 1), b_phi = prior_lognormal(log(8), 1), sigma = prior_lognormal(log(0.01), 1), - centered = FALSE + centred = FALSE ), survival = SurvivalExponential( lambda = prior_lognormal(log(1 / (400 / 365)), 1) diff --git a/inst/WORDLIST b/inst/WORDLIST index c0948a41..9cb3c337 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -122,3 +122,13 @@ behaviour initialise customisation dSLD +prior's +R's +Stat +etc +bl +Br +BS +nonlinear +sim +u diff --git a/inst/stan/base/longitudinal.stan b/inst/stan/base/longitudinal.stan index 6e5af1d2..90faad06 100755 --- a/inst/stan/base/longitudinal.stan +++ b/inst/stan/base/longitudinal.stan @@ -6,33 +6,33 @@ data{ // // Longitudinal data - int Nta_total; // Total number of tumor assessments. - int Nta_obs_y; // Number of observed tumor assessments (not censored). - int Nta_cens_y; // Number of censored tumor assessments (below threshold). + int Nta_total; // Total number of tumour assessments. + int Nta_obs_y; // Number of observed tumour assessments (not censored). + int Nta_cens_y; // Number of censored tumour assessments (below threshold). - array[Nta_total] int ind_index; // Index of individuals for each tumor assessment. - array[Nta_obs_y] int obs_y_index; // Index of observed tumor assessments (not censored). - array[Nta_cens_y] int cens_y_index; // Index of censored tumor assessments. + array[Nta_total] int ind_index; // Index of individuals for each tumour assessment. + array[Nta_obs_y] int obs_y_index; // Index of observed tumour assessments (not censored). + array[Nta_cens_y] int cens_y_index; // Index of censored tumour assessments. vector[Nta_total] Yobs; // Array of individual responses. vector[Nta_total] Tobs; // Individual timepoints. real Ythreshold; // Censoring threshold. - // Matrix of individuals x observed tumor assessments (sparse matrix of 0s and 1s), + // Matrix of individuals x observed tumour assessments (sparse matrix of 0s and 1s), // so the dimension is Nind x Nta_obs_y. array [3] int n_mat_inds_obs_y; vector[n_mat_inds_obs_y[1]] w_mat_inds_obs_y; array[n_mat_inds_obs_y[2]] int v_mat_inds_obs_y; array[n_mat_inds_obs_y[3]] int u_mat_inds_obs_y; - // Matrix of individuals x censored tumor assessments (sparse matrix of 0s and 1s). + // Matrix of individuals x censored tumour assessments (sparse matrix of 0s and 1s). // so the dimension is Nind x Nta_cens_y. array [3] int n_mat_inds_cens_y; vector[n_mat_inds_cens_y[1]] w_mat_inds_cens_y; array[n_mat_inds_cens_y[2]] int v_mat_inds_cens_y; array[n_mat_inds_cens_y[3]] int u_mat_inds_cens_y; - // Matrix of all individuals x tumor assessments (sparse matrix of 0s and 1s). + // Matrix of all individuals x tumour assessments (sparse matrix of 0s and 1s). // so the dimension is Nind x Nta_total. array [3] int n_mat_inds_all_y; vector[n_mat_inds_all_y[1]] w_mat_inds_all_y; diff --git a/inst/stan/lm-gsf/model.stan b/inst/stan/lm-gsf/model.stan index cdb35f5b..a49da912 100755 --- a/inst/stan/lm-gsf/model.stan +++ b/inst/stan/lm-gsf/model.stan @@ -15,7 +15,7 @@ parameters{ real lm_gsf_omega_ks; real lm_gsf_omega_kg; -{% if centered -%} +{% if centred -%} vector[Nind] lm_gsf_psi_bsld; vector[Nind] lm_gsf_psi_ks; vector[Nind] lm_gsf_psi_kg; @@ -44,7 +44,7 @@ transformed parameters{ // Source - lm-gsf/model.stan // -{% if not centered -%} +{% if not centred -%} vector[Nind] lm_gsf_psi_bsld = exp( lm_gsf_mu_bsld[pt_study_index] + (lm_gsf_eta_tilde_bsld * lm_gsf_omega_bsld) ); @@ -100,7 +100,7 @@ model { // // Source - lm-gsf/model.stan // -{% if centered %} +{% if centred %} lm_gsf_psi_bsld ~ lognormal(lm_gsf_mu_bsld[pt_study_index], lm_gsf_omega_bsld); lm_gsf_psi_ks ~ lognormal(lm_gsf_mu_ks[pt_arm_index], lm_gsf_omega_ks); lm_gsf_psi_kg ~ lognormal(lm_gsf_mu_kg[pt_arm_index], lm_gsf_omega_kg); diff --git a/man/LongitudinalGSF-class.Rd b/man/LongitudinalGSF-class.Rd index dd026fd2..ce45c572 100644 --- a/man/LongitudinalGSF-class.Rd +++ b/man/LongitudinalGSF-class.Rd @@ -17,7 +17,7 @@ LongitudinalGSF( a_phi = prior_lognormal(log(5), 1), b_phi = prior_lognormal(log(5), 1), sigma = prior_lognormal(log(0.1), 1), - centered = FALSE + centred = FALSE ) } \arguments{ @@ -39,7 +39,7 @@ LongitudinalGSF( \item{sigma}{(\code{Prior})\cr for the variance of the longitudinal values \code{sigma}.} -\item{centered}{(\code{logical})\cr whether to use the centered parameterization.} +\item{centred}{(\code{logical})\cr whether to use the centred parameterization.} } \description{ This class extends the general \code{\link{LongitudinalModel}} class for using the diff --git a/man/jmpost-package.Rd b/man/jmpost-package.Rd index 1abe3b75..7fd987f5 100644 --- a/man/jmpost-package.Rd +++ b/man/jmpost-package.Rd @@ -8,7 +8,7 @@ \description{ \if{html}{\figure{logo.png}{options: style='float: right' alt='logo' width='120'}} -Implements joint models combining a non-linear mixed effects model for longitudinal measurements with a time-to-event model for the survival outcome. The acronym 'jmpost' stands for Joint Models for Predicting Overall Survival Trajectories, which refers to the application. In phase 1 studies patients are followed until progression only. Thus, reliable overall survival data and hence estimates are not available. However, we can use additional information from previous clinical trials or real-world data - we can correlate the tumor response data, that are longitudinal measurements, with the overall survival of the patients or their hazard ratios. Thereby we can predict the overall survival from our phase 1 study data and therefore make better decisions. +Implements joint models combining a non-linear mixed effects model for longitudinal measurements with a time-to-event model for the survival outcome. The acronym 'jmpost' stands for Joint Models for Predicting Overall Survival Trajectories, which refers to the application. In phase 1 studies patients are followed until progression only. Thus, reliable overall survival data and hence estimates are not available. However, we can use additional information from previous clinical trials or real-world data - we can correlate the tumour response data, that are longitudinal measurements, with the overall survival of the patients or their hazard ratios. Thereby we can predict the overall survival from our phase 1 study data and therefore make better decisions. } \author{ \strong{Maintainer}: Craig Gower-Page \email{craig.gower-page@roche.com} diff --git a/tests/testthat/test-LongitudinalGSF.R b/tests/testthat/test-LongitudinalGSF.R index b1265478..3d338841 100644 --- a/tests/testthat/test-LongitudinalGSF.R +++ b/tests/testthat/test-LongitudinalGSF.R @@ -25,7 +25,7 @@ test_that("Print method for LongitudinalGSF works as expected", { test_that("Centralised parameterisation compiles without issues", { - jm <- JointModel(longitudinal = LongitudinalGSF(centered = TRUE)) + jm <- JointModel(longitudinal = LongitudinalGSF(centred = TRUE)) expect_false(any( c("lm_gsf_eta_tilde_kg", "lm_gsf_eta_tilde_bsld") %in% names(jm@parameters) )) @@ -37,7 +37,7 @@ test_that("Centralised parameterisation compiles without issues", { test_that("Non-Centralised parameterisation compiles without issues", { - jm <- JointModel(longitudinal = LongitudinalGSF(centered = FALSE)) + jm <- JointModel(longitudinal = LongitudinalGSF(centred = FALSE)) expect_true(all( c("lm_gsf_eta_tilde_kg", "lm_gsf_eta_tilde_bsld") %in% names(jm@parameters) )) @@ -117,7 +117,7 @@ test_that("Can recover known distributional parameters from a full GSF joint mod a_phi = prior_lognormal(log(6), 1), b_phi = prior_lognormal(log(8), 1), sigma = prior_lognormal(log(0.01), 1), - centered = TRUE + centred = TRUE ), survival = SurvivalExponential( lambda = prior_lognormal(log(1 / (400 / 365)), 1) diff --git a/tests/testthat/test-initialValues.R b/tests/testthat/test-initialValues.R index fd4745d4..415f4163 100644 --- a/tests/testthat/test-initialValues.R +++ b/tests/testthat/test-initialValues.R @@ -86,7 +86,7 @@ test_that("ensure_initial_values() works as expected", { test_that("intial values for fixed distributions gives valid values", { set.seed(3150) - gsfmodel <- LongitudinalGSF(centered = TRUE) + gsfmodel <- LongitudinalGSF(centred = TRUE) ivs <- initialValues(gsfmodel, n_chains = 100) for (values in ivs) { diff --git a/vignettes/extending-jmpost.Rmd b/vignettes/extending-jmpost.Rmd index 913d30fa..38a4a779 100644 --- a/vignettes/extending-jmpost.Rmd +++ b/vignettes/extending-jmpost.Rmd @@ -110,7 +110,7 @@ Where: that patient. The `LinkComponent` object is responsible for then integrating these functions -into the final Stan model. For reference the following is roughly the implmentation of the +into the final Stan model. For reference the following is roughly the implementation of the dSLD link for the `LongitudinalRandomSlope` model: ```R @@ -152,7 +152,7 @@ particular model. If you wish to provide implementations of these for new models then you need to provide method implementations for your model to `linkDSLD()`, -`linkIdentity()` and `linkTTG()` respectively. For example the following is the actual implmentation +`linkIdentity()` and `linkTTG()` respectively. For example the following is the actual implementation of the `linkDSLD` method for the `LongitudinalGSF` model which enables the use of `link_dsld()`: ```R