* Bug #7858 fixed - variance and variancef can now return mean
[scilab.git] / scilab / modules / statistics / tests / unit_tests / variance.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
4 // Copyright (C) 2008 - INRIA - Michael Baudin
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8 //
9 // <-- CLI SHELL MODE -->
10 // With x as a row vector and 1 argument
11 data = [10 20 30 40 50 60 70 80 90];
12 [Variance, Mean] = variance(data);
13 expectedM = 50;
14 expectedV = 750;
15 assert_checkequal([Variance Mean], [expectedV expectedM]);
16 // With x as a column vector and 1 argument
17 data = [10; 20; 30; 40; 50; 60; 70; 80; 90];
18 [Variance, Mean] = variance(data);
19 expectedM = 50;
20 expectedV = 750;
21 assert_checkequal([Variance Mean], [expectedV expectedM]);
22 // With x as a matrix
23 data = [10 20 30 40; 50 60 70 90];
24 [Variance, Mean] = variance(data);
25 expectedM = 46.25;
26 expectedV = 712.5;
27 assert_checkequal([Variance Mean], [expectedV expectedM]);
28 // With x as a row vector and specified orient
29 data = [10 20 30 40; 50 60 70 90];
30 [Variance, Mean] = variance(data, 1);
31 expectedM = [30 40 50 65];
32 expectedV = [800 800 800 1250];
33 assert_checkequal([Variance Mean], [expectedV expectedM]);
34 // With x as a row vector and specified orient
35 data = [10 20 30 40; 50 60 70 90];
36 [Variance, Mean] = variance(data, "r");
37 expectedM = [30 40 50 65];
38 expectedV = [800 800 800 1250];
39 assert_checkequal([Variance Mean], [expectedV expectedM]);
40 // With x as a row vector and specified orient
41 data = [10 20 30 40; 50 60 70 90];
42 [Variance, Mean] = variance(data, 2);
43 expectedM = [50; 135]/2;
44 expectedV = [500; 875]/3;
45 assert_checkequal([Variance Mean], [expectedV expectedM]);
46 // With x as a row vector and specified orient
47 data = [10 20 30 40; 50 60 70 90];
48 [Variance, Mean] = variance(data, "c");
49 expectedM = [50; 135]/2;
50 expectedV = [500; 875]/3;
51 assert_checkequal([Variance Mean], [expectedV expectedM]);
52 // With x as a complex row vector and 1 argument
53 a = [ 0.9, 0.7;
54 0.1, 0.1;
55 0.5, 0.4 ];
56 data = a + a * 2 * %i;
57 [Variance, Mean] = variance(data);
58 expectedM = 0.45+0.9*%i;
59 expectedV = 0.515;
60 assert_checkequal([Variance Mean], [expectedV expectedM]); // Must be variance(real(data)) + variance(imag(data))
61 // With x as a complex row vector and computation by column
62 a = [ 0.9, 0.7;
63 0.1, 0.1;
64 0.5, 0.4 ];
65 data = a + a * 2 * %i;
66 [Variance, Mean] = variance(data, 1);
67 expectedM = [0.5+%i 0.4+0.8*%i];
68 expectedV = [0.8 0.45];
69 assert_checkalmostequal([Variance Mean], [expectedV expectedM]);
70 // With x as a complex row vector and computation by row
71 a = [ 0.9, 0.7;
72 0.1, 0.1;
73 0.5, 0.4 ];
74 data = a + a * 2 * %i;
75 [Variance, Mean] = variance(data, 2);
76 expectedM = [0.8+1.6*%i; 0.1+0.2*%i; 0.45+0.9*%i];
77 expectedV = [0.1; 0; 0.025];
78 assert_checkalmostequal([Variance Mean], [expectedV expectedM]);
79 // Normalization with N-1
80 x = [0.9    0.7
81 0.1    0.1
82 0.5    0.4];
83 orien = 1;
84 w = 0;
85 [Variance, Mean] = variance(x,orien,w);
86 expectedM = [0.5 0.4];
87 expectedV = [0.16 0.09];
88 assert_checkalmostequal([Variance Mean], [expectedV expectedM]);
89 // Normalization with N
90 x = [0.9    0.7
91 0.1    0.1
92 0.5    0.4];
93 orien = 1;
94 w = 1;
95 [Variance, Mean] = variance(x,orien,w);
96 expectedM = [0.5 0.4];
97 expectedV = [0.32 0.18]/3;
98 assert_checkalmostequal([Variance Mean], [expectedV expectedM]);