Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mathematica function to calculate correlation coefficient?

1,163 views
Skip to first unread message

Yun Zhao

unread,
Mar 7, 2010, 4:05:04 AM3/7/10
to
Hi everyone,

I solved a differential equation, and got a solution n(t). Now I have
collected 8 data points at 8 different times. I plotted the solution of
n(t), and the curve intersect the 8 data points quite well on a graph of
n(t) vs. t. How do I use Mathematica 7.0 to calculate the correlation
coefficient R^2 value of how well the n(t) solution fit the data points?
Thank you very much.


Sjoerd C. de Vries

unread,
Mar 8, 2010, 6:14:01 AM3/8/10
to
Surprisingly, you can use the function Correlation to calculate the
correlation between two lists. In your case you should probably use
the set of predicted values and the sat of actual data values.

Cheers -- Sjoerd

Yun Zhao

unread,
Mar 9, 2010, 6:17:50 AM3/9/10
to
Thanks for your reply. But remember, the set of data values is 20 data
points, and my computed distribution of n(t) is a function of t, so
thousands and thousands of points. When I tried to use

Correlation[data1, n(t)]

I get the error "Correlation::vctmat: The arguments to Correlation are not a
pair of vectors or a pair of matrices of equal length." Please tell me what
I did wrong. Thank you.

Correlation::vctmat: "

StyleBox[\"\"\", \"MT\"] The arguments to Correlation are not a pair of
vectors or a pair of matrices of equal length


On Mon, Mar 8, 2010 at 5:13 AM, Sjoerd C. de Vries <
sjoerd.c...@gmail.com> wrote:

> Surprisingly, you can use the function Correlation to calculate the
> correlation between two lists. In your case you should probably use
> the set of predicted values and the sat of actual data values.
>
> Cheers -- Sjoerd
>
> On Mar 7, 11:05 am, Yun Zhao <yun.m.z...@gmail.com> wrote:

DrMajorBob

unread,
Mar 10, 2010, 1:42:07 AM3/10/10
to
If n is a InterpolationFunction returned by NDSolve or a symbolic function
returned by Solve, n[t] is obviously not a list of 8 values; it's one
value for each t.

You can create such a list, of course, with, for instance, Array[n,8] or
n/@{.1,.3,.4,.8,.9,1.2,...} (any list of eight t values).

Once you have a pair of same-length lists, Correlation will calculate what
the name says.

Bobby

On Tue, 09 Mar 2010 05:20:19 -0600, Yun Zhao <yun.m...@gmail.com> wrote:

> Thanks for your reply. But remember, the set of data values is 20 data
> points, and my computed distribution of n(t) is a function of t, so
> thousands and thousands of points. When I tried to use
>
> Correlation[data1, n(t)]
>
> I get the error "Correlation::vctmat: The arguments to Correlation are
> not a
> pair of vectors or a pair of matrices of equal length." Please tell me
> what
> I did wrong. Thank you.
>
> Correlation::vctmat: "
>
> StyleBox[\"\"\", \"MT\"] The arguments to Correlation are not a pair of
> vectors or a pair of matrices of equal length
>
>
> On Mon, Mar 8, 2010 at 5:13 AM, Sjoerd C. de Vries <
> sjoerd.c...@gmail.com> wrote:
>
>> Surprisingly, you can use the function Correlation to calculate the
>> correlation between two lists. In your case you should probably use
>> the set of predicted values and the sat of actual data values.
>>
>> Cheers -- Sjoerd
>>
>> On Mar 7, 11:05 am, Yun Zhao <yun.m.z...@gmail.com> wrote:


--
DrMaj...@yahoo.com

Yun Zhao

unread,
Mar 10, 2010, 1:42:18 AM3/10/10
to
Would Correlation[ ] still work if n(t) and the actual data points were not
linear functions of time? By that, I mean, n(t) is something like
C1*exp(rate*t)+C2. I am asking because in one case, where I think I have
some errors in my data, n(t) does not come close to any of the data points,
it is far apart, and Correlations [ ] gives me 0.97.

> --
> DrMaj...@yahoo.com
>

DrMajorBob

unread,
Mar 10, 2010, 1:50:44 AM3/10/10
to
The data doesn't have to be "close" to have a high correlation; it has to
be "nearly parallel".

t and 10^7+t are perfectly correlated, for instance.

Bobby

>> --
>> DrMaj...@yahoo.com
>>


--
DrMaj...@yahoo.com

0 new messages