aGrUM 3.1.1
a C++ library for (probabilistic) graphical models
indepTestG2.h
Go to the documentation of this file.
1/****************************************************************************
2 * This file is part of the aGrUM/pyAgrum library. *
3 * *
4 * Copyright (c) 2005-2026 by *
5 * - Pierre-Henri WUILLEMIN(_at_LIP6) *
6 * - Christophe GONZALES(_at_AMU) *
7 * *
8 * The aGrUM/pyAgrum library is free software; you can redistribute it *
9 * and/or modify it under the terms of either : *
10 * *
11 * - the GNU Lesser General Public License as published by *
12 * the Free Software Foundation, either version 3 of the License, *
13 * or (at your option) any later version, *
14 * - the MIT license (MIT), *
15 * - or both in dual license, as here. *
16 * *
17 * (see https://agrum.gitlab.io/articles/dual-licenses-lgplv3mit.html) *
18 * *
19 * This aGrUM/pyAgrum library is distributed in the hope that it will be *
20 * useful, but WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
21 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES MERCHANTABILITY or FITNESS *
22 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
23 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
24 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
25 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR *
26 * OTHER DEALINGS IN THE SOFTWARE. *
27 * *
28 * See LICENCES for more details. *
29 * *
30 * SPDX-FileCopyrightText: Copyright 2005-2026 *
31 * - Pierre-Henri WUILLEMIN(_at_LIP6) *
32 * - Christophe GONZALES(_at_AMU) *
33 * SPDX-License-Identifier: LGPL-3.0-or-later OR MIT *
34 * *
35 * Contact : info_at_agrum_dot_org *
36 * homepage : http://agrum.gitlab.io *
37 * gitlab : https://gitlab.com/agrumery/agrum *
38 * *
39 ****************************************************************************/
40
41
47
48#ifndef GUM_LEARNING_INDEP_TEST_G2_H
49#define GUM_LEARNING_INDEP_TEST_G2_H
50
53
54namespace gum {
55
56 namespace learning {
57
64 // clang-format on
65
67 public:
68 // ##########################################################################
70 // ##########################################################################
72
74
95 const Prior& external_prior,
96 const std::vector< std::pair< std::size_t, std::size_t > >& ranges,
97 const Bijection< NodeId, std::size_t >& nodeId2columns
99
100
102
115 const Prior& prior,
116 const Bijection< NodeId, std::size_t >& nodeId2columns
118
121
123 IndepTestG2(IndepTestG2&& from) noexcept;
124
126 [[nodiscard]] IndepTestG2* clone() const override;
127
129 ~IndepTestG2() override;
130
132
133
134 // ##########################################################################
136 // ##########################################################################
137
139
142
145
148 std::pair< double, double >
149 statistics(NodeId var1, NodeId var2, const std::vector< NodeId >& rhs_ids = {}) override;
150
152
153
154 protected:
156 std::pair< double, double > statistics_(const IdCondSet& idset);
157
158#ifndef DOXYGEN_SHOULD_SKIP_THIS
159#endif /* DOXYGEN_SHOULD_SKIP_THIS */
160 };
161
162 } /* namespace learning */
163
164} /* namespace gum */
165
166// include the inlined functions if necessary
167#ifndef GUM_NO_INLINE
169#endif /* GUM_NO_INLINE */
170
171#endif /* GUM_LEARNING_INDEP_TEST_G2_H */
const std::vector< std::pair< std::size_t, std::size_t > > & ranges() const
returns the current ranges
the class used to read a row in the database and to transform it into a set of DBRow instances that c...
A class for storing a pair of sets of NodeIds, the second one corresponding to a conditional set.
Definition idCondSet.h:214
IndepTestG2(const IndepTestG2 &from)
copy constructor
IndepTestG2 * clone() const override
virtual copy constructor
IndepTestG2 & operator=(IndepTestG2 &&from) noexcept
move operator
~IndepTestG2() override
destructor
std::pair< double, double > statistics(NodeId var1, NodeId var2, const std::vector< NodeId > &rhs_ids={}) override
get the pair <G2statistic,pvalue> for a test var1 indep var2 given rhs_ids
IndepTestG2(const DBRowGeneratorParser &parser, const Prior &prior, const Bijection< NodeId, std::size_t > &nodeId2columns=Bijection< NodeId, std::size_t >())
default constructor
IndepTestG2 & operator=(const IndepTestG2 &from)
copy operator
IndepTestG2(const DBRowGeneratorParser &parser, const Prior &external_prior, const std::vector< std::pair< std::size_t, std::size_t > > &ranges, const Bijection< NodeId, std::size_t > &nodeId2columns=Bijection< NodeId, std::size_t >())
default constructor
IndepTestG2(IndepTestG2 &&from) noexcept
move constructor
std::pair< double, double > statistics_(const IdCondSet &idset)
compute the pair <G2 statistic,pvalue>
IndependenceTest(const DBRowGeneratorParser &parser, const Prior &external_prior, const std::vector< std::pair< std::size_t, std::size_t > > &ranges, const Bijection< NodeId, std::size_t > &nodeId2columns=Bijection< NodeId, std::size_t >())
default constructor
the base class for all a priori
Definition prior.h:81
Size NodeId
Type for node ids.
the class for computing G2 scores
the base class for all the independence tests used for learning
include the inlined functions if necessary
Definition CSVParser.h:55
gum is the global namespace for all aGrUM entities
Definition agrum.h:46
the no a priorclass: corresponds to 0 weight-sample