00001 #ifndef _theplu_yat_statistics_fisher_
00002 #define _theplu_yat_statistics_fisher_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 namespace theplu {
00028 namespace yat {
00029 namespace statistics {
00062 class Fisher
00063 {
00064
00065 public:
00069 Fisher(void);
00070
00074 virtual ~Fisher(void);
00075
00076
00084 double Chi2(void) const;
00085
00093 void expected(double& a, double& b, double& c, double& d) const;
00094
00101 unsigned int& minimum_size(void);
00102
00109 const unsigned int& minimum_size(void) const;
00110
00122 double p_value() const;
00123
00132 double p_value_one_sided() const;
00133
00147 double oddsratio(const unsigned int a, const unsigned int b,
00148 const unsigned int c, const unsigned int d);
00149
00150 private:
00151 bool calculate_p_exact() const;
00152
00153
00154 double p_value_approximative(void) const;
00155
00156 double p_value_exact(void) const;
00157
00158 unsigned int a_;
00159 unsigned int b_;
00160 unsigned int c_;
00161 unsigned int d_;
00162 unsigned int minimum_size_;
00163 double oddsratio_;
00164 };
00165
00166 }}}
00167
00168 #endif