yat/regression/detail/NegativeBinomialFitter.h

Code
Comments
Other
Rev Date Author Line
3663 20 Jul 17 peter 1 #ifndef theplu_yat_regression_detail_negative_binomial_fitter
3663 20 Jul 17 peter 2 #define theplu_yat_regression_detail_negative_binomial_fitter
3663 20 Jul 17 peter 3
3669 27 Jul 17 peter 4 // $Id$
3669 27 Jul 17 peter 5
3663 20 Jul 17 peter 6 /*
3663 20 Jul 17 peter 7   Copyright (C) 2017 Peter Johansson
3663 20 Jul 17 peter 8
3663 20 Jul 17 peter 9   This file is part of the yat library, http://dev.thep.lu.se/yat
3663 20 Jul 17 peter 10
3663 20 Jul 17 peter 11   The yat library is free software; you can redistribute it and/or
3663 20 Jul 17 peter 12   modify it under the terms of the GNU General Public License as
3663 20 Jul 17 peter 13   published by the Free Software Foundation; either version 3 of the
3663 20 Jul 17 peter 14   License, or (at your option) any later version.
3663 20 Jul 17 peter 15
3663 20 Jul 17 peter 16   The yat library is distributed in the hope that it will be useful,
3663 20 Jul 17 peter 17   but WITHOUT ANY WARRANTY; without even the implied warranty of
3663 20 Jul 17 peter 18   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3663 20 Jul 17 peter 19   General Public License for more details.
3663 20 Jul 17 peter 20
3663 20 Jul 17 peter 21   You should have received a copy of the GNU General Public License
3663 20 Jul 17 peter 22   along with yat. If not, see <http://www.gnu.org/licenses/>.
3663 20 Jul 17 peter 23 */
3663 20 Jul 17 peter 24
3663 20 Jul 17 peter 25 #include <yat/utility/Matrix.h>
3663 20 Jul 17 peter 26 #include <yat/utility/Vector.h>
3663 20 Jul 17 peter 27
3663 20 Jul 17 peter 28 namespace theplu {
3663 20 Jul 17 peter 29 namespace yat {
3663 20 Jul 17 peter 30 namespace regression {
3663 20 Jul 17 peter 31 namespace detail {
3663 20 Jul 17 peter 32
3663 20 Jul 17 peter 33   /// \cond IGNORE_DOXYGEN
3663 20 Jul 17 peter 34
3663 20 Jul 17 peter 35   class NegativeBinomialFitter
3663 20 Jul 17 peter 36   {
3663 20 Jul 17 peter 37   public:
3663 20 Jul 17 peter 38     NegativeBinomialFitter(const utility::Matrix& X,
3663 20 Jul 17 peter 39                            const utility::VectorBase& y,
3663 20 Jul 17 peter 40                            utility::Vector& beta,
3663 20 Jul 17 peter 41                            utility::Matrix& covariance,
3663 20 Jul 17 peter 42                            double& alpha);
3663 20 Jul 17 peter 43   private:
3663 20 Jul 17 peter 44     double alpha(void) const;
3663 20 Jul 17 peter 45     void update_mu(void);
3663 20 Jul 17 peter 46     double deviate(void) const;
3663 20 Jul 17 peter 47     void init(void);
3663 20 Jul 17 peter 48
3663 20 Jul 17 peter 49     double& alpha_;
3663 20 Jul 17 peter 50     utility::Vector& beta_;
3663 20 Jul 17 peter 51     utility::Matrix& covariance_;
3663 20 Jul 17 peter 52     const utility::Matrix& X_;
3663 20 Jul 17 peter 53     const utility::VectorBase& y_;
3663 20 Jul 17 peter 54     utility::Vector mu_;
3663 20 Jul 17 peter 55     utility::Vector eta_;
3663 20 Jul 17 peter 56   };
3663 20 Jul 17 peter 57
3663 20 Jul 17 peter 58   /// \endcond
3663 20 Jul 17 peter 59
3663 20 Jul 17 peter 60
3663 20 Jul 17 peter 61 }}}}
3663 20 Jul 17 peter 62
3663 20 Jul 17 peter 63 #endif