[Jprogramming] Weighty stats
Ric Sherlock
tikkanz at gmail.com
Tue Mar 29 20:54:23 UTC 2016
Here's an attempt to come up with weighted versions in the spirit of the
univariate.ijs definitions
wmean=: +/@[ %~ +/@:*
wdev=: ] -"_1 _ wmean
wssdev=: [ +/@:* *:@wdev
wvar=: (#@-.&0 %~ <:@#@-.&0 * +/)@[ %~ wssdev
wstddev=: %:@wvar
1 1 0 0 4 1 2 1 0 wstddev 2 3 5 7 11 13 17 19 23
5.82237
stddev 2 3 5 7 11 13 17 19 23
7.45729
On Wed, Mar 30, 2016 at 9:01 AM, Devon McCormick <devonmcc at gmail.com> wrote:
> Hi All -
>
> I recently wrote a few basic stat verbs for doing weighted versions of some
> of the common descriptive statistics. They lack the cohesive elegance of
> the standard versions from the "univariate.ijs" script but I couldn't
> figure out how to replicate it with the weighted versions as I've made them
> dyadic.
>
> NB.* wtdMean: weighted-mean: x is weights, y is values
> wtdMean=: ([: +/ *) % [: +/ [
> NB.EG 7r3 = 1 2 3 wtdMean 1 2 3
>
> NB. wtdSumDev: weighted sum of deviations
> wtdSumDev=: [: +/ [ * ] - [: (+/ % #) ]
> NB.* wtdVar: weighted variance
> wtdVar=: ([: +/ [ * [: *: ] - wtdMean) % ([: ([: (<: % ]) [: # 0 -.~ ]) [)
> * [: +/ [
> NB.* wtdSD: weighted standard deviation (biased)
> wtdSD=: [: %: ([: +/ [ * [: *: ] - wtdMean) % [: +/ [
> NB.* wtdSDunbias: weighted standard deviation (unbiased)
> wtdSDunbias=: [: %: ([: +/ [ * [: *: ] - wtdMean) % ([: ([: (<: % ]) [: # 0
> -.~ ]) [) * [: +/ [
>
> These seem to work OK - see
> http://www.itl.nist.gov/div898/software/dataplot/refman2/ch2/weightsd.pdf
> -
> but are not as elegantly-interconnected as these:
>
> whereDefined 'stddev'
> c:\...\j64-804\addons\stats\base\univariate.ijs
> stddev
> %:@var
> var
> ssdev % <:@#
> ssdev
> +/@:*:@dev
> dev
> -"_1 _ mean
> mean
> +/ % #
>
> Comments on these are welcome.
>
> --
>
> Devon McCormick, CFA
>
> Quantitative Consultant
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
More information about the Programming
mailing list