Ask Your Question

Pearson correlation

asked 2012-10-13 06:47:25 -0600

Jaakko Seppälä gravatar image

Is there a method in Sage to compute Pearson correlation of a finite set? I have data points $(x_1,y_1),\ldots,(x_6,y_6)$ and wondering if there is a shorter way to do it than just write one long expression.

edit retag flag offensive close merge delete

1 answer

Sort by » oldest newest most voted

answered 2012-10-13 07:38:56 -0600

calc314 gravatar image

You can call R from within Sage as follows. The command r.cor does require that you give it two lists containing the coordinates from your data set. In the example below, I'll use a list comprehension in Python to do that.

xdata=[a[0] for a in data]
ydata=[a[1] for a in data]

You can also get the regression line easily.

edit flag offensive delete link more


Instead of doing two list comps, you could use `zip` and unpacking: `x, y = zip(*data)`, for example. (`r.cor(*zip(*data))` would do it in one line, but that looks a little too cute to use.)

DSM gravatar imageDSM ( 2012-10-13 11:19:27 -0600 )edit

Hmm. `Unable to start r`. I downloaded Sage from its WWW-site and installed that.

Jaakko Seppälä gravatar imageJaakko Seppälä ( 2012-10-13 12:09:41 -0600 )edit

I thought R came with the standard Sage installation.

calc314 gravatar imagecalc314 ( 2012-10-13 16:06:22 -0600 )edit

Alternatively, you can use `scipy`'s: `import scipy.stats` and then `scipy.stats.pearsonr(xdata, ydata) ` -- type `help(scipy.stats.pearsonr)` after the import for the details.

DSM gravatar imageDSM ( 2012-10-13 17:10:49 -0600 )edit

I actually like the plots from stats in scipy better than in R for use in Sage. I'm surprised by the `unable to start r` error with r.cor. I've gotten it when using R's graphics in Sage but not with the basic stats commands.

calc314 gravatar imagecalc314 ( 2012-10-13 17:36:42 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-10-13 06:47:25 -0600

Seen: 1,103 times

Last updated: Dec 20 '12