* Bug #11891 fixed - Inaccurate Fisher ratio for one-way ANOVA
[scilab.git] / scilab / modules / statistics / macros / ftest.sci
1
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2012 - Michael Baudin
4 // Copyright (C) 2000 - INRIA - Carlos Klimann
5 //
6 // This file must be used under the terms of the CeCILL.
7 // This source file is licensed as described in the file COPYING, which
8 // you should have received as part of this distribution.  The terms
9 // are also available at
10 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11 //
12
13 function [f,p]=ftest(samples)
14     //
15     //Given a  number nc of samples each  of them composed of nr
16     //observations this fonction computes in f the Fischer ratio
17     //(it is the  ratio between  nr times  the variance   of the
18     //means of  samples  and the  mean of the  variances of each
19     //sample).  Additionnally it gives (in p) the p-value of the
20     //computed  Fischer ratio.  samples   is a matrix  with type
21     //nrxnc.
22     //
23     //References:  Wonacott, T.H. & Wonacott, R.J.; Introductory
24     //Statistics, J.Wiley & Sons, 1990.
25     //
26     [nr nc]=size(samples)
27     xbar=mean(samples,"r")
28     xbarbar=mean(xbar)
29     sx2=sum((xbar-xbarbar).^2)/(nc-1)
30     sp2=(sum(sum((samples-ones(nr,1)*xbar).^2),"r"))/(nc*(nr-1))
31     f=(nr*sx2)/sp2
32     [ignored,p]=cdff("PQ",f,(nc-1),(nc*(nr-1)))
33 endfunction