Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manual arcsin transformation of parameters prior to PEST++GLM run #334

Open
sraul1 opened this issue Feb 14, 2025 · 1 comment
Open

Manual arcsin transformation of parameters prior to PEST++GLM run #334

sraul1 opened this issue Feb 14, 2025 · 1 comment

Comments

@sraul1
Copy link

sraul1 commented Feb 14, 2025

Given the built in capabilities to have parameters untransformed, log transformed, fixed or tied, is there any reason (numerically, mathematically, or otherwise I might be overlooking), not to apply an arcsin transformation to input parameters prior to running PEST++ GLM, run a calibration using PEST++ GLM (making sure the model run uses the correct transformation of the parameters), before backing out the inversed parameters values (untransformed values) after the calibration process? Main thing I am thinking of is how the gradient/sensitivity calculations could be unintentionally affected.

Large groundwater models can often have many parameters at a variety of scales. MADS (Model Analysis and Decision Support) handles this by applying an arcsin transformation to bring all parameters between [0,1] during the optimization process. PEST++ attempts to solve a similar issue with its log transformation, as well as scale and offset options for each parameter. However, arcsin tends to produce better results, speaking from personal experience. A further question is can a native arcsin transformation be added to PEST++ natively, without the need for PAR2PAR?

(can move this to discussion page if its more appropriate there)

@jtwhite79
Copy link
Collaborator

I don't know if a way to easily implement a new transformation...but are you sure you need to do this? Have you tried using the untransformed pars (with the runtime transform as needed) and it didn't work? Or do you have evidence of excessive nonlinearity arising from this transformation?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants