org.apache.commons.math3.stat.inference 提供 MLE、矩估計、假設檢定。<dependency> org.apache.commons:commons-math3:3.6.1 </dependency>
public class NormalMLE {
public static double[] estimate(double[] samples) {
// 似然函數對數導數 = 0 解析解
double sum = 0, sumSq = 0;
for (double x : samples) {
sum += x;
sumSq += x * x;
}
int n = samples.length;
double mu = sum / n;
double sigma2 = (sumSq - n * mu * mu) / n; // MLE 版本(分母 n)
return new double[]{mu, Math.sqrt(sigma2)};
}
}
public class ExponentialMME {
public static double estimate(double[] samples) {
// 一階樣本矩 = 總體矩 E[X] = 1/λ
double mean = Arrays.stream(samples).average().orElse(0);
return 1.0 / mean; // λ_hat
}
}
Java 進行數理統計估計,優先使用 Apache Commons Math 等成熟庫;教學/自定義分布時,依據似然函數/矩方程推導解析解或數值優化(牛頓法、EM 算法)實作。