Going for educational value rather than terseness, here is an alternative:
corr=: [EMAIL PROTECTED] NB. correlation is the crossproduct of
standardised values
cprod=: (+/ .*)~ |: NB. crossproduct
standard=: [EMAIL PROTECTED] NB. standardised numbers are 'adjusted'
and 'centered'
adjust=: ] %"1 [: sqroot sqsum NB. adjusted numbers have a variance of
1
center=: -"1 avg NB. centered numbers have a mean of 0
avg=: +/ % # NB. artitmetic mean
sqroot=: %: NB. square root
sqsum=: +/@:*: NB. sum of squared
corr 1 3 2 4,"(0) 2 4 3 3.5
1 0.831522
0.831522 1
On 6/26/07, June Kim <[EMAIL PROTECTED]> wrote:
Thank you, Henry.
While I try to translate a mathematical expression into a J
expression, I often discover hidden patterns in the expression with
great joy. It sometimes leads me to a path to new insights.
It's the reason I am looking for the shortest form this time.
2007/6/26, Henry Rich <[EMAIL PROTECTED]>:
> Not really, but gee, shouldn't we be using our wonderful
> language to provide the most expressive form of c rather
> than just the shortest?
>
> a =. (# * +/)@:* - *&(+/)
> c =. a % [EMAIL PROTECTED] %:@* [EMAIL PROTECTED]
> 1 3 2 4 c 2 4 3 3.5
> 0.831522
>
> a =. ((# * +/)@:* - *&(+/)) "1
> c =. %: @ (%~/ . *) @: (a/~) @: ,:
> 1 3 2 4 c 2 4 3 3.5
> 0.831522
>
> I don't think either of these forms is useful for real work,
> since they involve subtracting big near-equal numbers, but
> I learned something about the computation by writing them.
>
> Henry Rich
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of June Kim
> > Sent: Tuesday, June 26, 2007 10:08 AM
> > To: Programming forum
> > Subject: [Jprogramming] Correlation Coefficient
> >
> > I've been playing with the expression at
> > http://en.wikipedia.org/wiki/Correlation
> >
> >
> > c=.(*&[EMAIL PROTECTED]@:*)%*&(s(-~(#*s=.+/))&.:*:])
> > 1 3 2 4 c 2 4 3 3.5
> > 0.831522
> >
> > c is as short as I can get. Could you come up with a verb for
> > correlation, shorter than c?
> > ----------------------------------------------------------------------
> > For information about J forums see
> > http://www.jsoftware.com/forums.htm
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm