--- a +++ b/poisson.m @@ -0,0 +1,26 @@ +# Copyright (C) 2005 Michael Creel michael.creel@uab.es +# +# This program 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 2 of the License, or +# (at your option) any later version. +# +# This program 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 this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Example likelihood function (Poisson for count data) with score + +function [log_density, score] = poisson(theta, data, otherargs) + y = data(:,1); + x = data(:,2:columns(data)); + lambda = exp(x*theta); + log_density = -lambda + y .* (x*theta) - lgamma(y+1); + score = dmult(y - lambda,x); + if (otherargs{1} == 1) score = "na"; endif # provide analytic score or not? +endfunction