为什么异常返回GLMFIT不是= 2 * LogLikelihood ?
15的观点(30天)
显示旧的评论
我正在使用glmfit GLM模型。拟合模型后我需要计算LogLikelihood glmfit(不直接返回)。我看过许多来源异常(这是由glmfit返回)= 2 * LogLikelihood。然而,如果我计算LogLikelihood分别与二项分布(见下面的例子)我得到完全不同的答案。知道我做错了什么吗?我把从MATLAB文档示例数据。在glmfit
x = (2100 2300 2500 2700 2900 3100 3300 3500 3700 3900 4100 4300) ';
n =[48 42 31 34 31日21日23日23日21日16 17 21)';
y =[1 2 0 3 8 8 14 17日19日15日17日21日)';
[b, dev,统计]= glmfit (x, y [n],“二”);
yfit = glmval (b, x,分对数的,“大小”n);
dev / 2
logLikelihood = nansum(日志(binopdf (y, n, yfit)))
0评论
接受的答案
汤姆巷
2012年3月6日
两件事。首先,最后一个参数binopdf应该合身的概率,而不是数量。第二,异常定义对于一个“完整”的模式,有一个单独的拟合值为每一个观察。所以- dev / 2繁殖这个值:
总和(日志(binopdf (y, n, yfit. / n)))——总和(日志(binopdf (n y, y / n)))
如果你需要对数似然值,计算的方法是不错的,一旦你正确binopdf输入。