diff m-toolbox/classes/+utils/@math/Ftest.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m-toolbox/classes/+utils/@math/Ftest.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,42 @@
+% Ftest perfomes an F-Test.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% DESCRIPTION: SFT performes an F-Test providing the measured F statistic,
+%              the two degrees of freedom, the confidence level and the
+%              type of the test (a boolean, one or two tailed). The null 
+%              hypothesis H0 is rejected at the confidence level for the 
+%              alternative hypothesis H1 if the test statistic falls in the 
+%              critical region.
+%
+% VERSION:     $Id: Ftest.m,v 1.2 2011/03/07 16:50:47 congedo Exp $
+%
+% HISTORY:     18-02-2011 G. Congedo
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+function [test,critValue,pValue] = Ftest(F,dof1,dof2,alpha,twoTailed)
+  
+  n = numel(F);  
+
+  if twoTailed
+    % Lower bound
+%     critValue(1) = icdf('f',alpha/2,dof1,dof2);
+    critValue(1) = utils.math.Finv(alpha/2/n,dof1,dof2);
+    % Upper bound
+%     critValue(2) = icdf('f',1-alpha/2,dof1,dof2);
+    critValue(2) = utils.math.Finv(1-alpha/2/n,dof1,dof2);
+  else
+%     critValue = icdf('f',1-alpha,dof1,dof2);
+    critValue = utils.math.Finv(1-alpha/n,dof1,dof2);
+  end
+  
+%   pValue = 1-cdf('f',F,dof1,dof2);
+  pValue = 1-utils.math.Fcdf(F,dof1,dof2);
+  
+  if twoTailed
+    test = F<critValue(1) | F>critValue(2);
+  else
+    test = F>critValue;
+  end    
+
+end