# News for the resemble package
## resemble 2.1 (piapia)
23.09.2021
### New features
- A argument named "seed" was added to the mbl function. It is used to gurantee
reproducibility of cross-validation results.
- A modified PLS method was implemented (see local_fit_pls and local_fit_wapls).
It uses correlation bteween response and predictors to derive the PLS weights.
## Improvements and fixes
- A Bug in the computation of the explained variance of X for pls models was
detected and fixed. The pls related functions were underestimating the amount
of variance exmplained by each PLS component. The explained variance was being
computed from the matrix of scores, in this version it is computed from the
reconstructed spectra at each PLS iteration.
- Manual selection of components in pc_projection() and pls_projection() now
accepts to select only 1 component (before the minimum was 2).
- pls_projection() now includes a new argument (method) to allow the user to select
between the standard pls algorithm and a modified pls algorithm.
- ortho_diss(), dissimilarity() and search_neighbors() functions include a new
dissimilarity method: "mpls" (modified pls).
- An internal function for stratified random sampling for cross validtaion
purposes has been improved for computational speed.
- The package was stripping some symbols for Rcpp functions in Makevars in order
to reduce the installation size of the package. Now these lines have been
commented to comply with CRAN policies.
## resemble 2.0 (gordillo)
* 02.07.2020
During the recent lockdown we had the chance to inevest a enough time on the
development of a new version of the package resemble. This new version comes
with significant improvements as well as new functionality. For example, it now
matches the tidyverse R style guide, it includes unit tests, includes new
functionality for modeling, mbl is faster and a less memory-hungry.
### New features
- search_neighbors() function.
- dissimilarity() function.
## Improvements and fixes
- mbl is faster and a less memory-hungry.
- New vignette.
- unit tests have been introduced using the testthat package.
## Breaking changes
### orthoProjection, pcProjection, plsProjection (renamed to ortho_projection,
pc_projection, pls_projection respectively):
- X2 argument renamed to Xu (for consistency throughout all the fucntions)
- Argument scaled renamed to .scale
- Argument max.iter renamed to max_iter
- Bug fix: when the "pca.nipals method was used and the method to select the pcs wa "opc",
the function was returning 1 component less than the maximum requested.
- "pca.nipals" is now implemented in C++ via Rcpp
- Bug fix in plsProjection: when "cumvar" was used as the pcSelection method, an
error about data allocation in a matrix was retrieved
- Argument pcSelection renamed to pc_selection
- ... is deprecated in both pcProjection and plsProjection
- Argument cores is deprecated, it was used to set the number of cores in some
c++ internal functions via OpenMP in Rcpp.
- Names the following outputs have been changed: X.loadings, Y.loadings, sc.sdv
and n.components. Their new names are: X_loadings, Y_loadings, sc_sdv and
n_components.
### corDiss (renamed to cor_diss):
- X2 argument renamed to Xu (for consistency throughout all the fucntions)
- Argument scaled renamed to .scale
- default for .scale has changed from TRUE to FALSE
- the dimnames of the resulting matrix are now Xr_1... Xr_n (previusly Xr.1... Xr.n)
### fDiss (renamed to f_diss):
- X2 argument renamed to Xu (for consistency throughout all the fucntions)
- Argument scaled renamed to .scale
- default for .scale has changed from TRUE to FALSE
- the dimnames of the resulting matrix are now Xr_1... Xr_n (previusly Xr.1... Xr.n)
- argument method changed to diss_method
### sid:
- X2 argument renamed to Xu (for consistency throughout all the fucntions)
- Argument scaled renamed to .scale
- default for .scale has changed from TRUE to FALSE
- the dimnames of the resulting matrix are now Xr_1... Xr_n (previusly Xr.1... Xr.n)
### orthoDiss (renamed to ortho_diss):
- X2 argument renamed to Xu (for consistency throughout all the fucntions)
- Argument scaled renamed to .scale
- Argument local renamed to .local
- Argument pcSelection renamed to pc_selection
- Argument return.all renamed to compute_all
- Argument cores is deprecated, it wwas used to set the number of cores in some
c++ internal functions via OpenMP in Rcpp.
- When \code{.local = TRUE} a new output is produced: 'neighborhood_info' which
is a data.frame containing the relevant information about the neighborhood of
each sample (e.g. neighborhood indices, number of components used at each
neighborhood, etc)
- Output global.variance.info has been renamed to global_variance_info
### simEval (renamed to sim_eval):
- argument sideInf renamed to side_info
- argument lower.tri renamed to lower_triangle
- argument cores renamed to omp_threads
- lower_triangle is deprecated. Now if a vector is passed to d, the function assumes
that it is a lower triangle of a distance matrix
- Argument cores is deprecated, it wwas used to set the number of cores in some
c++ internal functions via OpenMP in Rcpp.
### mbl
- pls.max.iter, pls.tol and noise.v were moved to mbl from mbl_control()
- Argument scaled (from mbl_control()) renamed to .scale and moved to mbl
- new arguments: gh and spike
- Argument pcSelection renamed to pc_selection
- Argument mblCtrl renamed to control
- Argument dissUsage renamed to diss_usage
- order of the Yr, Xr, Yu and Xu arguments has changed to Xr, Yr, Xu and Yu
- input type for the argument method has changed. Previously it received a
character string indicating the type of local regresion (i.e. "pls",
"wapls1" or "gpr"). Now it receives an object of class local_fit which is output
by the new local_fit fucntions.
- dissimilarityM has been deprecated. It was used to pass a dissimilarity matrix
computed outiside the mbl fucntion. This can be done now with the new argument
diss_method of mbl which was previosly named "sm" and it was in mblControl()
### neigCleaning (now search_neighbors)
- Function renamed to search_neighbors
- Argument cores is deprecated, it was used to set the number of cores in some
c++ internal functions via OpenMP in Rcpp.
### mblControl (renamed to mbl_control):
- sm argument is deprecated. Now the dissmilarity metric is an argument of the
mbl fucntion
- scale and center arguments have been moved to the mbl fucntion
- Argument range.pred.lim renamed to range_prediction_limits
- Argument cores is deprecated, it was used to set the number of cores in some
c++ internal functions via OpenMP in Rcpp.
- k0, pcMethod, ghMethod are deprecated
- localOptimization has been renamed to tune_locally
- valMethod has been renamed to validation_type
- Option "loc_crossval" in validation_type has been renamed to "local_cv"
### plot.mbl
- option "pca" was replaced by option "gh" which plots the pls projection used
for computing the gh distance in mbl
## resemble 1.3 (never released)
* 11.04.2020
The option 'movcor' for the argument sm of mblControl() is deprecated. The
'movcor' moving window correlations between spectra as dissimilarity measure.
Now This option can be specified by using 'cor' as the method in the argument
'sm' and passing a window size to the argument 'ws'of mblControl(). If 'ws'
is not specified, the standard correlation between spectra is computed.
* 27.02.2020
The argument 'resampling' in mblControl() has been renamed to 'number'
* 18.07.2019
A bug in the scaling of the euclidean distances in fDiss was detected and fixed.
The distance ratios (between samples) were correctly calculated, but the final
scaling of the results was not properly done. The distance between Xi and Xj
were scaled by taking the squared root of the mean of the squared differences
and dividing it by the number of variables i.e. sqrt(mean((Xi-Xj)^2))/ncol(Xi),
however the correct calculation is done by taking the mean of the squared
differences, dividing it by the number of variables and then compute the squared
root i.e. sqrt(mean((Xi-Xj)^2)/ncol(Xi)). This bug had no effect on the
computations of the nearest neighbors.
## resemble 1.2.0001 (alma de coco)
* 13.09.2016
A bug in the computation of the Mahalanobis distance in the PLS space was fixed.
* 06.09.2016
Thanks to Matthieu Lesnoff who found a bug in the predict.orthoProjection
function (an error was thrown when PCA preditions were requested). This bug has
been fixed.
* 10.08.2016
A bug in plot.mbl was fixed. It was not possible to plot mbl results when the
k.diss argument (threshold distances) was used in the mbl function.
* 10.08.2016
Since the previous release, the "wapls1" regression (in the mbl function)
is actually compatible with valMethod = "loc_crossval" (in the mblControl).
In the previous documentation was wrongly stated otherwise. Now this has been
corrected in the documentation.
* 09.08.2016
the projection Matrix (projectionM) returned by plsProjection now only contains
the columns corresponding only to the number components retrieved
## resemble 1.2 (alma de coco)
* 04.03.2016
A patch was released for and extrange bug that prevented to run mbl
in parallel when the gpr method was used.
* 19.01.2016
Now it is possible to locally optimize the maximum and minimum pls factors in
wapls1 local regressions.
* 09.12.2015
Many thanks to Eva Ampe and Lorenzo Menichetti for their suggestions.
* 08.12.2015
A method for better estimates of RMSE values computed for the 'wapls1' method
has been implemented.
* 08.12.2015
The 'wapls2' method of the mbl function is no longer supported because of several
drawbacks computing reliable uncertainty estimates.
* 18.11.2015
Several functions are now based on C++ for faster computations.
* 23.04.2014
Added default variable names when they are missing and an error message when the
names of Xr do not match the names of Xu.
* 23.04.2014
plot.mbl draws now the circles around the actual centre function when the
spectra is not centred for mbl.
* 20.03.2013
The function movcorDist was removed since. it was included by mistake in the
previous version of the package. The corDiss function can be used in
raplacement of movcorDist.
## resemble 1.1.1
* 19.03.2013 Hello world! Initial release of the package