I have stochastic simulations that depend on a parameter $k$. As I vary $k$ the quantities I track vary gradually and then suddenly transition to very different values and continue to vary gradually again; it seems that my system undergoes a phase transition. I want to estimate the parameter value at which the transition happens. Is there a standard way to do this?

I would prefer an approach that requires me to make as few assumptions as possible about the source of data. In particular, I don't have a simple statistical model for approximating my data before and after the phase transition.

Some example data is below, $k$ is on the x-axis:

Examples of data

Naive approach

What I am currently doing to estimate the point of phase transition is fitting the data points to a sigmoid using nlinfit in Matlab and defining the steepest point of the curve as the point of phase transition. I have the best fit sigmoids presented as solid lines in the figure above, and the steepest point is marked with dotted lines. However, my choice of sigmod is completely arbitrary (it is just a function that captures the intuitive feel of transition between phases well) and thus I suspect better approach exist. Is my approach reasonable?


Interesting question. I'd think your way is reasonable though I'm curious to see if someone can suggest a better way. In particular whether there is a way to relax the assumption behind the choice of a sigmoid functional form. One similar problem that comes to mind is the kernel density estimates in probability distributions that remove the need to assume a particular functional form.

One other question I might ask is whether the red, black and blue points are truly * independent* simulation outputs? Or is one derivable from the others. Also in case there is a mismatch between the transition point suggested by each of those metrics what would be a good selection strategy? An average?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.