SURGroup / UQpy

UQpy (Uncertainty Quantification with python) is a general purpose Python toolbox for modeling uncertainty in physical and mathematical systems.
MIT License
271 stars 79 forks source link

MCMC - Stretch method: chains with acceptance rate=0 #75

Closed lb1609 closed 3 years ago

lb1609 commented 3 years ago

Hi,

I am applying the Stretch method on a model with 54 inputs and 47 outputs. When I run the analysis with 100 chains there are 20 chains with a zero acceptance rate. When 200 chains are used there are 120 chains with zero acceptance rate. When I increase the amount of chains further to 300, there are 220. So independent of the total amount of chains, the amount that moves (=80) stays the same. This amount is also independent of the amount of samples/chain used. I seems like it has something to do with the 'log_likelihood' assigned to the outputs. If I keep them to a normal distribution, the problem disappears. When a Uniform or Chi square distribution is used on some of the outputs, the problem occurs. Is it not possible to combine the Stretch method with another distribution than Normal?

Thanks in advance! Laura

mds2120 commented 3 years ago

Hi Laura, Can you perhaps clarify the issue you are having by providing specific Python commands that are causing this issue? In particular, can you provide details for your call to UQpy.SampleMethods.Stretch(...). This includes definitions for all input quantities. A short example code would be ideal. Thank you. Michael

lb1609 commented 3 years ago

Hi Michael,

Thank you for your reply. The code that I use is given by the following file: par_opt_lig2.txt This file gives the definitions of inputs and outputs from line 48 to 76. I want to do a BayesParameterEstimation using the Stretch method. I assigned a Chi square distribution to some of the outputs because I want only solutions that lead to values smaller than 'max_strain'. So those outputs don't really need to follow a Chi square distribution. Please let me know if anything else is required.

Kind regards, Laura

lb1609 commented 3 years ago

Hi Michael,

I think the issue is resolved. I found a mistake in my implementation of my custom log_likelihood. Now the behavior seems normal. Thank you for looking into it.

Kind regards, Laura

mds2120 commented 3 years ago

That's great. I'm glad to hear that the software is working for you :-) Michael