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 <[email protected]> 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to