2013-05-25 * create package 2013-08-14 * add set.seed(1) to chngpt.score.test so that the results are reproducible * rename chngpt.score.test to chngpt.test * MASS is used for generating reference distribution samples while mvrnorm is used in sim.sigmoid. In principle, should be able to use a single package, but since the simulation studies for the paper has already been run, just leave it as it is * let search.all.thresholds be true if n < 500 2015-09-01 * when glm warns, set the log likelihood to NA 2015-09-29 * implement more vcov * add e.effective.maxit to deal with non-convergence 2015-10-18 * when est.method==smoothapprox, effective chgnpt needs to be determined to stop infinite loops. It used to be defined in between two observed data values, but is not set to one observed data value 2015-11-19 * make.chngpt.var now takes b. as an argument, the results of smoothapprox estimation will change! 2016-01-24 * add testing for linear model 2017-05-13 * modify make.chngpt.var to fit smooth transition model * add sandwich variance estimator * add segmented2 * change b to -b 2017-09-16 * this version contains some commented out code related to indices, which was used to compare with R implemention 2017-10-27 * a major cleanup of sim.chngpt * weighted estimation now works 2018-03-30 * change how chngpts are defined in chngpt.test * weighted estimation now works * chngptm used to use chngpt.test to initialize when doing smooth approximation. now chngptm uses chngptm to initialize in that situation. This way chngptm does not depend on chngpt.test anymore 2018-05-02 * Add support for cbind() on the lhs for the binomial family. Both grid and smoothapprox are supported. * Add support for Poisson family * Many thanks to Helen R. Sofaer for the questions resulting in the update 2018-06-02 * Implement fastgrid for thinned thresholds. * Deprecate useC for grid search * Revamp vignette * Add approximate p value when var.method is bootstrap * Change summary chngptm output to remove empirical percentile of the estimated threshold 2018-07-02 * Add chngptm.xy (x,y,...) to provide an alternative way of fitting chngptm without data frame and formula 2018-07-16 * Replace %+% by %.% throughout to work with the udpated kyotil package 2018-07-25 * Change robust testing implementation * RDR is changed to R.h %*% D.h when not robust. This requires a change of values in the unit testing function 2018-08-07 * Add upper hinge model implementation * Remove smooth as a var.type, comment out var.est.smooth and remove smooth from unit testing * Implement superfastgrid * Merge fastgrid_search and boot_fastgrid_search into one C function * Implement grid search in C for upperhinge2 2018-10-08 * A naive implementation of the test inversion CI is added when search method is grid 2019-01-02 * Michal Jurask reported a bug when the glm has a NA coef. Fix at line 897. 2019-03-08 * Bug fix, delete to delete[] 2019-03-12 * Bug fix, add X.col(p-2) = (x-e)%(x>e); in fastgrid_binomial.cpp 2019-04 * Fix vcov implementation when var.type is bootstrap * Add multicore parallel support for bootstrap. ncpus controls the number of cores. Thanks to JDS for the question resulting in the update 2019-04-21 * Discovered that adding support for thinned thresholds back in 2018-10-2 (compared to 2018-10-1) slows things down by two fold. Fixed it. 2019-06-17 * This version has an unsuccesful attempt to add upper hinge quadratic model 2019-06-17 * Revert back to before 6.17 2019-06-30 * Revert back to 6.17 and work from there * Change the implementation of upperhingequad in chngptm from based on formula.2 to type 2019-07-23 * Bug fix in SEXP fastgrid2quad_gaussian so that bootstrap for upperhingequad works too 2019-08-16 * Allow subsampling bootstrap m-out-of-n for discontinuous threshold effects in chngptm(). Thanks to Jeremy Nguyen for the question resulting in the update 2019-08-17 * Allow more than one variables to be interacting with the threshold variable. chngptm updated, unit testing code added. A quick test for consistency performed (test_multi_itxn.R). Thanks to Jeremy Nguyen for the question resulting in the update 2019-08-26 * chngpt.test throws an exception. Modify chngpt.test() to check if the min and max are part of the candidate change points and if yes, remove them. Thanks to Eric Scott for the question resulting in the update * Add CXX_STD = CXX11 to Makevars and Makevars.win. Replace ptr_fun by cref in smath.h. Thanks Prof Brian Ripley * Change ncpus default to 1 to avoid an error on debian 2019-08-28 * Remove fastgrid_binomial_wrapper.cpp and fastgrid_binomial.cpp for now. They lead to check errors on CRAN. Namespace and description file also changed accordingly * Vignette updated 2019-09-02 * Replace bind1st and bind2nd by bind in matrix.h and smath.h in the scythe library. Thanks Prof Brian Ripley 2019-09-05 * Add estimation and CI for hingequad model * Vignette updated * Add LIDAR data (lidar) 2019-09-15 * add argument checking for weights * add support for offset to chngptm and plot.chngptm * Thanks to Ryan Terrill for the questions resulting in the updates 2019-09-19 * add support for offset in fastgrid2 * implement double.hinge 2019-10-04 * implement segmented quadratic models: M1, M2, M3a, and M3b in chngptm 2019-10-15 * change how the step effect is implemented in make.chngpt.var(), from I(x>=e) to I(x>e) to be consistent with Fong et al. (2017) * implement fastgrid2 for step 2019-10-17 * fix a bug in chngptm relate to hingequad.to.upperhingequad, which causes the lower and upper CI bounds for some models to be reversed 2019-10-29 * implement upper hinge and hinge cubic model 2019-11-09 * implement segmented cubic models 2019-11-13 * implement x4hinge and x4upperhinge models to fit LIDAR example, but grid search only 2019-11-16 * rename the higher order models 2019-11-18 * remove isupperhinge parameter and related implementations from all C functions. all c functions only implement upperhinge and related models. All hinge and related models are implemented through transformation 2019-11-21 * add support for subsampling, aka m out of n bootstrap, in fastgrid2step_gaussian 2019-11-22 * change grid.search.max default in chgnptm from 5e3 to Inf * remove fastgrid and gridC from est.method options * add support for weight in fastgrid2 * replace invpd with chol_solve in the C functions, the former gives weird results sometimes. See M20.cc for an example. * refactor C code 2019-11-26 * fix a memory issue from inverting a 0-column matrix when the design matrix has 0 columns 2019-11-30 * Add a check in get.chngpts() so that we do not have the min to be the first change point * Change direct assignment to indirect copy in _preprocess (fastgrid_helper.cc) 2019-12-4 * Add a new argument, min.max.not.allowed, in get.chngpts(), default to FALSE, but in chngpt.test, set it to TRUE * revamp double.hinge so that there is no need to supply mid.x 2019-12-6 * Add summary function for double.hinge to faciliate hypothesis testing 2019-12-7 * Add predictx for confidence bands 2019-12-13 * Change paramterization of M22c and M33c. Remove x.mi.e * Change M10 back to upperhinge 2019-12-31 * Add x.gt.e[is.nan(x.gt.e)]=0 in sim.chngpt 2020-01-02 * Fix name.conversion for M22c and M33c * Add nutrition dataset 2020-01-09 * Implement M21c and M12c * Implement plot.double.hinge 2020-01-20 * Add intercept to predictions in threshold.func() * Add boot.type argument to summary.chngptm * Make changes to chngptm so that it will work when bootstrap logistic regression with factor predictors of many levels. The problem was that bootstrap datasets may not have all the levels 2020-02-11 * Modify name.conversion.2() to change intercept to (Intercept) in coef.0 * Modify convert.coef to add M21c * Fix a bug that lead to errors in basic bootstrap intervals when hinge.to.upperhinge is TRUE 2020-02-17 * Add heteroscedastic argument to sim.chngpt 2020-02-20 * Add unif argument to sim.chngpt 2020-02-22 * Modify convert.coef() to include adjustment of intercept * Modify plot.chngptm() so that it works properly for step model * Add * next to p value in summary.chngptm print out to indicate that it is not a true p value 2020-04-27 * Modify chngptm() and fastgrid2.cc to include adjustment of intercept 2020-05-13 * Update vignette 2020-05-21 * Remove std:terminate at request of BDR 2020-05-24 * Allow random intercepts 2020-06-05 * For threshold lmer models, select threshold based on logLik * Allow individual lines to be plotted based on threshold lmer model fit 2020-06-11 * Add logistic.slope to sim.chngpt 2020-06-13 * Change to if(b.transition==Inf) transition[is.nan(transition)]=1 to see if it makes any difference for convergence rate 2020-06-14 * Change back to if(b.transition==Inf) transition[is.nan(transition)]=0 2020-06-24 * Fix implementation for stratified model * Implement M111, three phase segmented model * Add sim.twophase.ran.inte; add unit testing code for random intercept threshold models 2020-06-25 * Add plot functionality for M111 * Fix ub.quantile and lb.quantile issue for M12c * Add M111 to vignette 2020-06-26 * Fix plot.chngpt for three-phase models * Change default bootstrap CI type from symm to perc in summary.chngpt 2020-07-01 * Add logLik.chngptm * Add examples of lrtest and lincomb to chngptm man and to vignette * Add random intercept model to vignette * Improve vignette 2020-08-06 * M111_search: Add a hack to get around openblas problem for collinear matrix inversion 2020-08-10 * M111_search: Use a different implementation of matrix inversion that does not depend on blas 2020-08-10 * M111_search: Use an alternative way to compute crit that is more numerically stable when highly collinear * M111_search: bootstrap may have duplicate threshold candidates, which could cause problems. this is now taken care of * M111_search: Removing the hack of skipping if crit 20 percent larger than the previous since it does not work for small datasets * fixed a bug related to REML 2020-08-28 * Add extractAIC, AIC 2020-08-29 * Make examples run faster by reducing ci.bootstrap.size 2020-09-16 * M111_search: add fabs to the condition for duplicate thresholds, modify the check for duplicated thresholds 2020-09-17 * add sieve bootstrap 2020-09-28 * add awb bootstrap 2020-10-6 * fix getFixedEf.chngptm * improve summary.chngptm 2020-10-12 * fix a bug related to sieveBoot in fastgrid2.cc 2020-10-19 * fix summary.chngptm to get show.slope.post.threshold to work again 2020-10-25 * fix chngptm to replace logLik with deviance for quasipoisson fits 2020-12-17 * fix documentation 2020-2-4 * add y.adj=NULL, auto.adj.y=FALSE to plot.chngptm so that the fitted lines can be adjusted to go through the data points 2020-2-7 * add transform to plot.chngpt 2020-2-9 * add boot.ci.type to double.hinge * update kyotil dependency with version number 2020-3-3 * update chngptm to exit more gracefully when fastgrid fails due to singularity 2020-3-16 * fix chngptm so that coef for M12 is not messed by due to hinge.to.upperhinge (line 666) 2020-3-17 * change ub.quantile/lb.quantile from 90/10 to 95/5 percentile in chngptm 2020-3-30 * fix a typo in threshold.func related to step model 2020-4-7 * Add M111 to threshold.func() * Support parallel processing in fastgrid 2020-4-11 * Switch to QR decomposition for solving least squares to have more numerial stability * In particular, B is no longer computed as X (X**TX)^-1/2 , but as Q_1 2022-3-15 * Address warnings from debian-gcc 2022-4-6 * Takes care of blas issues related to FCONE 2022-1-28 * replace bind1st with bind 2022-1-29 * deal with deprecation of std::iterator, -Wuse-after-free, -Wmisleading-indentation 2022-1-30 * citation file format change 2022-4-14 * RhpcBLASctl related updates