我试图用以计算给出了正常数似然:数值稳定的方法来计算正常数似然
L = l1+l2+l3+...+ln,
其中
lk = log(1/(sqrt(2*PI)*sigma_k))-0.5*e_k*e_k
Sigma的周围0.2
,并e_k
是正态分布平均为0和单位方差,所以大多数在-2和2之间;
我尝试以下的Java代码(如上= sigmas.get提到sigma_k(K)* Math.sqrt(DT)):
private double new1(List<Double> residuals, List<Double> sigmas, double dt) {
double a = 0;
for(int i=0; i<sigmas.size(); i++) {
a += Math.log(1.0/(Math.sqrt(2*Math.PI*dt)*sigmas.get(i)));
}
double b = 0;
for(int i=0; i<residuals.size(); i++) {
b += residuals.get(i)*residuals.get(i);
}
return a-0.5*b;
}
但理论上的最大值是比我通过执行最大下数值优化,所以我有一些怀疑,我的方法是不理想的。