Mercurial > hg > octave-nkf
view scripts/statistics/models/logistic_regression_likelihood.m @ 10400:b14fd5116c29
Ensure that 'limits' is a 2 or 4 vector, and that 'fn' is a function
author | Soren Hauberg <hauberg@gmail.com> |
---|---|
date | Fri, 05 Mar 2010 14:29:47 -0800 |
parents | f084ba47812b |
children | fd0a3ac60b0e |
line wrap: on
line source
## Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2005, 2007 ## Kurt Hornik ## ## This file is part of Octave. ## ## Octave is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3 of the License, or (at ## your option) any later version. ## ## Octave 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 ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Octave; see the file COPYING. If not, see ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- ## @deftypefn {Function File} {[@var{g}, @var{g1}, @var{p}, @var{dev}] =} logistic_regression_likelihood (@var{y}, @var{x}, @var{beta}, @var{z}, @var{z1}) ## Calculates likelihood for the ordinal logistic regression model. ## Called by logistic_regression. ## @end deftypefn ## Author: Gordon K. Smyth <gks@maths.uq.oz.au> ## Adapted-By: KH <Kurt.Hornik@wu-wien.ac.at> ## Description: Likelihood in logistic regression function [g, g1, p, dev] = logistic_regression_likelihood (y, x, beta, z, z1) if (nargin != 5) print_usage (); endif e = exp ([z, x] * beta); e1 = exp ([z1, x] * beta); g = e ./ (1 + e); g1 = e1 ./ (1 + e1); g = max (y == max (y), g); g1 = min (y > min(y), g1); p = g - g1; dev = -2 * sum (log (p)); endfunction