How to get correlation coefficient exponential decay?

Hello, I would like to get the correlation coefficient from the exponential decay model. I used the following code:
ft = fittype( 'a*exp(-b*x)+c', 'independent', 'x', 'dependent', 'y' );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';
and got from the R2 the correlation coefficient
Rsqr=sqrt(gof.rsquare)
but the (r) is positive, is there a form to get the correlation coefficient negative. Obviously my data shows a decreasing exponentail decay.
And I don't use the corrcoef because it suppose to be use with a linear data, but what about exponentail decay?

3 commentaires

hello
I think most if not all matlab tools for curve fitting will give you R squared but not R
most of us simply need to know if R² is close to 1 so we know the fitted model is ok , but maybe not everyone is interested to know if R is close to 1 or to -1 depending of the slope of the curve
so if that really matters to you you can multiply your Rsqr value by sign(b) and here you have a negative R (assuming a is positive)
Hello, @Mathieu NOE! Thanks for your answer. I am going to share my figure to show you my result. Also, could you please explain me why I have to multiply the Rsqr value by sigh (b)? I didn't understand.
hello
you have decaying exponentials here so sign(b) is negative (obviously) which is how I create the negative R
If you had a positive b , then R shoud be positive too
That may sound like a "trick" but there is probably no other matlab way to do it as all fit function returns R squared , which , of course reamins positive in all circumstances.

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Get Started with Curve Fitting Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by