/usr/include/openturns/HypothesisTest.hxx is in libopenturns-dev 0.15-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | // -*- C++ -*-
/**
* @file HypothesisTest.hxx
* @brief StatTest implements statistical tests
*
* (C) Copyright 2005-2011 EDF-EADS-Phimeca
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* @author: $LastChangedBy: schueller $
* @date: $LastChangedDate: 2011-04-11 12:32:27 +0200 (Mon, 11 Apr 2011) $
* Id: $Id: HypothesisTest.hxx 1866 2011-04-11 10:32:27Z schueller $
*/
#ifndef OPENTURNS_HYPOTHESISTEST_HXX
#define OPENTURNS_HYPOTHESISTEST_HXX
#include "OTprivate.hxx"
#include "Exception.hxx"
#include "TestResult.hxx"
#include "Indices.hxx"
#include "NumericalSample.hxx"
#include "LinearModel.hxx"
#include "Distribution.hxx"
#include "DistributionImplementationFactory.hxx"
namespace OpenTURNS
{
namespace Uncertainty
{
namespace StatTest
{
/**
* @class HypothesisTest
*
*/
class HypothesisTest
{
public:
typedef Base::Common::InvalidArgumentException InvalidArgumentException;
typedef Base::Common::InternalException InternalException;
typedef Base::Type::Indices Indices;
typedef Base::Stat::TestResult TestResult;
typedef Base::Type::Collection<TestResult> TestResultCollection;
typedef Base::Stat::NumericalSample NumericalSample;
/** Default constructor */
HypothesisTest();
/** Independance ChiSquared test between 2 scalar samples for discrete distributions */
static TestResult ChiSquared(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const NumericalScalar level=0.95);
/** Independence Pearson test between 2 samples which form a gaussian vector: test the linear relation */
static TestResult Pearson(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const NumericalScalar level=0.95);
/** Smirnov test if two scalar samples (of sizes not necessarily equal) follow the same distribution (only for continuous distributions) */
static TestResult Smirnov(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const NumericalScalar level=0.95);
/** Spearman test between 2 scalar samples : test the monotonous relation */
static TestResult Spearman(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const NumericalScalar level=0.95);
/** Independence Pearson test between 2 samples : firstSample of dimension n and secondSample of dimension 1. If firstSample[i] is the numeriacl sample extracted from firstSample (ith coordinate of each point of the numerical sample), PartialPearson performs the Independence Pearson test simultaneously on firstSample[i] and secondSample, for i in the selection. For all i, it is supposed that the couple (firstSample[i] and secondSample) is issued from a gaussian vector. */
static TestResultCollection PartialPearson(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const Indices & selection,
const NumericalScalar level=0.95) /* throw(InvalidArgumentException) */;
/** Regression test between 2 samples : firstSample of dimension n and secondSample of dimension 1. If firstSample[i] is the numerical sample extracted from firstSample (ith coordinate of each point of the numerical sample), PartialRegression performs the Regression test simultaneously on all firstSample[i] and secondSample, for i in the selection. The Regression test tests ifthe regression model between two scalar numerical samples is significant. It is based on the deviation analysis of the regression. The Fisher distribution is used. */
static TestResultCollection PartialRegression(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const Indices & selection,
const NumericalScalar level=0.95) /* throw(InvalidArgumentException) */;
/** Spearman test between 2 samples : firstSample of dimension n and secondSample of dimension 1. If firstSample[i] is the numerical sample extracted from firstSample (ith coordinate of each point of the numerical sample), PartialSpearman performs the Independence Spearman test simultaneously on firstSample[i] and secondSample, for i in the selection. */
static TestResultCollection PartialSpearman(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const Indices & selection,
const NumericalScalar level=0.95) /* throw(InvalidArgumentException) */;
/** Independence Pearson test between 2 samples : firstSample of dimension n and secondSample of dimension 1. If firstSample[i] is the numerical sample extracted from firstSample (ith coordinate of each point of the numerical sample), FullPearson performs the Independence Pearson test simultaneously on all firstSample[i] and secondSample. For all i, it is supposed that the couple (firstSample[i] and secondSample) is issued from a gaussian vector. */
static TestResultCollection FullPearson(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const NumericalScalar level=0.95);
/** Regression test between 2 samples : firstSample of dimension n and secondSample of dimension 1. If firstSample[i] is the numerical sample extracted from firstSample (ith coordinate of each point of the numerical sample), FullRegression performs the Regression test simultaneously on all firstSample[i] and secondSample. The Regression test tests ifthe regression model between two scalar numerical samples is significant. It is based on the deviation analysis of the regression. The Fisher distribution is used. */
static TestResultCollection FullRegression(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const NumericalScalar level=0.95);
/** Spearman test between 2 samples : firstSample of dimension n and secondSample of dimension 1. If firstSample[i] is the numerical sample extracted from firstSample (ith coordinate of each point of the numerical sample), PartialSpearman performs the Independence Spearman test simultaneously on all firstSample[i] and secondSample. */
static TestResultCollection FullSpearman(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const NumericalScalar level=0.95);
protected:
/** Generic invocation of a R script for executing a partial test between two samples */
static TestResultCollection RunTwoSamplesASelectionRTest(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const Indices & selection,
const NumericalScalar level,
const String & testName)
/* throw(InternalException) */;
/** Generic invocation of a R script for executing a test between two 1D samples */
static TestResult RunTwoSamplesRTest(const NumericalSample & firstSample,
const NumericalSample & secondSample,
const NumericalScalar level,
const String & testName)
/* throw(InternalException) */;
}; /* class HypothesisTest */
} /* namespace StatTest */
} /* namespace Uncertainty */
} /* namespace OpenTURNS */
#endif /* OPENTURNS_HYPOTHESISTEST_HXX */
|