This page details the version history of the development version of `merlin`

, hosted on this website, which can be installed by typing in Stata,

```
net install merlin, from(https://www.mjcrowther.co.uk/code/merlin)
```

or updated by typing `adoupdate merlin`

.

#### 22feb2021: version 1.15.3

- bug introduced in 1.15.2; survival models would error out if the user did not have
`multistate`

also installed, as it contained a subroutine used by`merlin`

, now fixed

#### 19feb2021: version 1.15.2

- bug fix;
`covariance()`

specification was not picked up by`predict`

, so the default`independent`

was always assumed - this has been fixed - bug fix; when predicting
`survival`

with`ci`

s, the lower and upper limits were labelled the wrong way around - this has been fixed - bug fix; rare index error could occur when
`predict`

was called with a restricted sample & a survival prediction, and 0 events were in the sample - now fixed

#### 09feb2021: version 1.15.1

- bug fix; indexing error caused interval censored survival models to error out, now fixed & cert. improved

#### 18jan2021: version 1.15.0

`pc()`

default behavior has changed. Now by default it does not include a binary indicator for the first interval i.e., before the first knot. To include an indicator for all intervals use the`noreference`

option.

#### 17dec2020: version 1.14.0

- added
`pc()`

element to specify a piecewise-constant spline function - added
`chintpoints()`

to let the user specify the number of Gauss-Legendre quadrature points used to evaluate analytically intractable cumulative hazard functions, with a default of 30

#### 15dec2020: version 1.13.0

`family(pwexponential)`

added to fit the piecewise-exponential survival model, with option`knots()`

for user-defined cut-points. It has also been added to`stmerlin`

.

#### 28oct2020: version 1.12.1

- bug fix:
`stmerlin, dist(rcs) noorthog`

failed; now fixed - bug fix:
`covariance(identity)`

with a 2+ level model error’d out, initial value dimension was incorrect; now fixed - bug fix: internal constraints were left behind after a
`predict`

call; now fixed

#### 20sep2020: version 1.12.0

`family(lognormal,...)`

added for the log normal AFT survival model, synced with`stmerlin`

`family(loglogistic,...)`

added for the log logistic AFT survival model, synced with`stmerlin`

#### 17sep2020: version 1.11.1

- bug fixes in
`family(ggamma)`

with`ltruncated()`

`ltruncated()`

efficiency improved

#### 16sep2020: version 1.11.0

- memory leak issue fixed; results in speed improvements, especially
`ci`

predictions, and repeated model fits - any constraints specified through
`@`

notation are now dropped post-estimation, otherwise the max limit could be met if used in simulations `stmerlin`

;`orthog`

default missed in`distribution(rcs)`

, now fixed

#### 21aug2020: version 1.10.1

- bug fix;
`zeros`

option of predict was ignored if`ci`

was specified - now fixed

#### 25jun2020: verison 1.10

`stmerlin`

added; wrapper function for standard survival models- survival
`family(ggamma)`

added for generalised gamma AFT model - bootstrap cis for
`family(cox)`

predictions sped up by adding starting values from main model `eta`

and`hratio`

predictions after fitting a Cox model use the delta method for cis- error check added for
`rp`

opts when`!family(rp)`

`galahad`

removed in prep for multistate merge- help file edits
- bug fix; predictions error’d out following Cox model, now fixed
- bug fix; indexing error with
`ltruncated()`

and ob level models when not all obs had left truncation; now fixed - bug fix; for
`family(gamma)`

, function name mismatch meant it never got called - bug fix; model specific
`in`

’s ignored, now fixed - bug fix; global
`if`

/`in`

conditions were ignored, now fixed - bug fix; model specific
`if`

/`in`

conditions were not passed to starting value call and caused an error, now fixed - bug fix;
`if`

/`in`

conditions now handled in predict - previously, any that were specified in the model were applied, which would restrict out of sample predictions, now fixed - bug fix;
`family(user)`

with`chfunction()`

error’d out - now fixed

#### 21mar2020: version 1.9.0

`survsim`

added to main help file as an associated command`galahad`

updated to 1.3.0:- some behind the scenes syncing with
`survsim`

- some behind the scenes syncing with

#### 17mar2020: version 1.8.1

`noorthog`

was missing from help file for`family(rp,...)`

-> now documented`galahad`

updated to 1.2.1:- bug fix;
`singleevent`

option failed -> now fixed - help file example fixes for new
`transprob`

option introduced in 1.8.0 - bug fix; missing error check, Cox model is not currently supported

- bug fix;

#### 07mar2020: version 1.8.0

- bug fix; when model had
`timevar()`

, but`predict`

didn’t,`predict`

erronesouly filled in outcome in`timevar()`

, for non-survival outcomes -> now fixed `galahad`

updated to 1.2.0:`hazard`

option added to`galahad`

to`predict`

each transition-specific hazard function`survival`

changed to`singleevent`

`survival`

now predicts transition-specific survival functions`transprob`

option now required to request transition probabilities- bug fix:
`visit`

with cis incorrectly returned`los`

predictions instead -> now fixed. - bug fix:
`visit`

with standardise didn’t divide by total obs -> now fixed - bug fix: contrasts with
`visit`

, new variable names were incorrect -> now fixed - bug fix:
`userlink`

, transformation was not applied to point estimate when calculating CI -> now fixed - bug fix: contrasts and
`ci`

, point estimates weren’t passed -> now fixed

#### 23feb2020: version 1.7.0

- left truncation now supported for
`family(cox)`

- almost all predictions now working for
`family(cox)`

, with`ci`

s calculated using bootstrapping `reps()`

added to predict for bootstrap cis for Cox model predictions, default`reps(100)`

`offset()`

and`moffset()`

can now both be specified simultaneously in`fp()`

,`rcs()`

and`bs()`

elements- bug fix:
`predict, cif`

with single survival outcome always used numerical integration, even when it was unnecessary; now fixed - help file updates

#### 04feb2020: version 1.6.0

`family(cox)`

added implementing the Cox model using maximum partial likelihood. Currently only available with an observation level, and univariate, model.`ltruncated()`

and`linterval()`

are also not currently supported with it.

#### 03feb2020: version 1.5.2

- improvements and bug fixes to
`exptorcs`

, now creates new variable for offset internally, with report - bug fixes in
`ghgraph`

`merlin`

help file improvements

#### 30jan2020: version 1.5.1

`moffset()`

added (documented) to add the negative of an offset variable for use in`rcs()`

,`fp()`

and`bs()`

elements- bug fix introduced in 1.5.0 preventing
`ci`

working with`predict`

- now fixed - updates to main help file, including documenting
`stmixed`

and`galahad`

`ghgraph`

added to create stacked transition probability plots post`galahad`

, including help file

#### 28jan2020: version 1.5.0

`galahad`

added to the package for multi-state model predictions

#### 21jan2020: version 1.4.0

- bug fix;
`merlin _t drug, family(rp, failure(_d) df(3))`

should have exited with a missing bracket error - now fixed `logchazard`

option added to`predict`

#### 04dec2019: version 1.3.0

`*ratio`

predictions added to obtain ratios of survival, hazard etc. functions, for different covariate patterns, specified in`at1()`

and`at2()`

`zeros`

option added to predict for baseline predictions- bug fix; error check added to ensure there is at least one observation per outcome, per cluster
- bug fix; predicting with an rp model displayed spline variable creation message, now suppressed
- bug fix; predicting survival at 0 when log(t) was included in a model gave a missing value - now replaced with a 1
- bug fix;
`at()`

,`at1()`

amd`at2()`

were not documented in the`predict`

help file - now fixed. - bug fix; multiple survival models and element
`rcs()`

with`event`

option caused an indexing error - now fixed

#### 21aug2019: version 1.2.6

- internal tidying

#### 30jun2019: version 1.2.5

- minor help file edits
- bug fix in predictions;
`cif`

with`timevar()`

and competing risks model caused an error when survival time was included in predictor, e.g. when modelling a time-dependent effect

#### 05jun2019: version 1.2.4

- some tidying

#### 28may2019: version 1.2.3

`iterate()`

added to`adaptopts()`

, help file for estimation updated

#### 24may2019: version 1.2.2

`exptorcs`

(and help file) added which turns expected rates into a spline based`merlin`

model, for Weibull et al. (Submitted)- bug fix; “timevar() required” error message appeared when
`rcs()`

,`fp()`

or`bs()`

was specified, even when it wasn’t required - now fixed

#### 25mar2019: version 1.2.1

- bug fix; predict from a model with multiple outcomes and model specific ifs/ins errored out - now fixed
- bug fix; overall weights could’ve been specified but would have been ignored - now not allowed

#### 18mar2019: version 1.2.0

- bug; poisson logl functions missed from build - now fixed
`weights()`

added to allow sampling weights`at1()`

and`at2()`

added to`predict`

for difference predictions;`hazard`

,`survival`

,`cif`

,`rmst`

,`mu`

,`eta`

difference options added- bug; survival model using log time + interval censoring + left interval contained a 0, would error - now fixed

#### 27feb2019: version 1.1.0

`family(logchazard)`

added for general models on the log cumulative hazard scale`family(rcs)`

replaced with more general`family(loghazard)`

for log hazard scale models- interval censoring added ->
`linterval()`

option added to survival familys, only allowed in one model - model-specific
`if`

s or`in`

s now allowed - bug fix; predict with ci and outcome() was ignored so defaulted to outcome(1) - now fixed
- doc fix for
`knots()`

with`family(rp)`

- does include boundary knots - bug fix for starting values with
`family(gompertz)`

which prevented fitting; now fixed

#### 07aug2018: version 1.0.7

- added error check for presence of
`*`

in predictor - bug introduced in 1.0.6 stopped matching of
`timevar()`

with`rcs()`

variable; now fixed - error check on
`.`

caused`merlin`

to error out when specifying decimal points in`knots()`

; now fixed

#### 27jul2018: version 1.0.6

- previously undocumented
`random`

option is now documented - draws starting values from a U(0,1) distribution `chazard`

and`survival`

predictions missing for`family(exp)`

; now added- note added to end of results table that baseline splines not shown when fitting a
`rp`

or`rcs`

model - when specifying only a random slope with no random intercept - an internal parsing error occurred; now fixed.

#### 16may2018: version 1.0.5

`ltruncated()`

added for delayed-entry/left-truncation in survival models. In models with random effects, the likelihood is divided through by the marginal survival function at the entry time, which results in a second set of numerical integration.

#### 06may2018: version 1.0.4

`bs()`

element added for B-spline functions. Note; if you try and`predict`

outside the range of the boundary knots, the spline function is set to 0 i.e. extrapolation outside the range of your data is not currently supported, and no warning is given if you do this.- minor edit to step size in numerical differentiation used in
`d?[]`

elements `mf()`

displayed function name left over from development; now removed- more error checks added
- bug fixes

#### 30apr2018: version 1.0.3

- bug fix;
`at()`

was ignored in`predict`

when`ci`

was specified - now fixed `predict, failure`

removed,`cif`

now used instead`predict, cif`

calculation improved for`family(rp)`

`predict, cif`

and`rmst`

can be used with competing risks`predict, ... causes()`

added for use with`cif`

and`rmst`

. If left unspecified, all survival models are assumed to be cause-specific models which can be overriden by`causes()`

.`predict, timelost`

added which is the integral of the cause-specific`cif`

`predict, totaltimelost`

added which is the integral of the sum of all cause-specific cifs- numerical differentiation used internally improved, thanks to Mark Clements
- subroutine left over from
`megenreg`

was required for`merlin`

to run; now fixed - documentation for
`adaptopts()`

had unavailable options - now removed

#### 25apr2018: version 1.0.2

`predict, cif`

added to calculate cumulative incidence functions from a competing risks model- bug fix in
`predict`

, if neither`fixedonly`

or`marginal`

were specified, no prediction was produced; now fixed

#### 24apr2018: version 1.0.1

`predict, failure`

added to calculate failure probabilities (1 - survival)`predict, rmft`

added to calculate restricted mean failure time i.e. expected time since failure within the prediction time interval (0,$\tau$]- postestimation help file was incomplete for some statistics, now updated

#### 23apr2018: version 1.0.0

- Initial release