Closed asierrl closed 2 years ago
@asierrl Thanks! this is indeed a great suggestion and I will add it to our development plan. If you have already drafted new functions, is it possible to either 1) create a new branch of spectratrait, add the functions and provide a PR for me to test/explore or 2) send me an R script with the new function drafts or 3) paste the code in this thread.
I could add them to a PR for us to test and put you down as a function author
Great, @serbinsh. I forked the repository, created a new branch, uploaded the new files and created a pull request. Not sure if you automatically have permissions for merging it...I guess so.
This is being addressed in PR #93
This is done
If ensuring the validation data set has a similar distribution as the calibration data set is important for model validation and is achieved by stratifying the random selection procedure used to split the data set, I think it should equally equally important for permuting the calibration data set to select the optimal number of components. I suggest to improve find_optimal_components by allowing it to stratify the random sampling in each permutation. In case you find it interesting, although I am far from en expert, I have already modified pls_permutation and find_optimal_components to allow for the input of a groups object of the form c("var1", "var2"..., "varn"). I names these functions as pls_permut_by_groups and find_optimal_comp_groups. pls_permut_by_groupsnow seems to perform well. I'm not sure about find_optimal_comp_groups, as I get a the following error: Error: 'pls_permut_by_goups' is not an exported object from 'namespace:spectratrait' Called from: getExportedValue(pkg, name) I understand the issue, but I don't know how to tell getExportedValue that the new function is not in spectratrait. Of course, this should not be an issue if you find the function could be included within spectratrait.