Subversion Repositories wimsdev

Rev

Rev 3265 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 reyssat 1
!if $wims_read_parm!=slib_header
2
!goto proc
3
!endif
4
slib_title=Variance
5
slib_parms=1\
6
 ,[data] or [data],[weight]
7
slib_author=Bernadette PERRIN-RIOU
8
slib_out=standard variance of data x_1,..,x_n = sum(x_i^2-mean)/n, sum(x_i^2-mean)/(n-1)
9
slib_comment=Data and weight can be recognized under many formats, \
10
 in particular as a matrix (with data before weight).
11
slib_example=[2,-7,6]\
12
[2,-7,6;1,1,4]\
13
[2,-7,6],[1,1,4]
14
!exit
15
 
16
:proc
17
 
18
!readproc slib/stat/dataproc $wims_read_parm
19
slib_cnt=!itemcnt $slib_data
20
!if $slib_cnt=0
21
slib_out=0
22
!else
23
!if $slib_weight=$empty
24
  slib_data1=!sum x for x in $slib_data
25
  slib_mean=$[($slib_data1)/$slib_cnt]
26
  slib_dev=!sum (x-($slib_mean))^2 for x in $slib_data
27
  slib_out=$[$slib_dev/$slib_cnt],$[$slib_dev/($slib_cnt-1)]
28
  slib_out =!trim $slib_out
29
  !exit
30
 !else
31
  slib_out=!exec pari { slib_mean=([$slib_data]*[$slib_weight]~)/$slib_tw;\
32
slib_dev=sum(x=1,$slib_cnt,[$slib_weight][x]*[$slib_data][x]^2)-$slib_tw*(slib_mean)^2;\
33
  print(1.*slib_dev/$slib_tw","1.*slib_dev/($slib_tw-1))}
34
  slib_out =!trim $slib_out
35
 !endif weight
36
 
37
  slib_out =!trim $slib_out
38
!endif
39
slib_out=!trim $slib_out