首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 數理統計編程:最大似然估計與矩估計的實作庫與手寫範例

     編輯:程式設計綜合問答

現成庫推薦

  • Apache Commons Math:org.apache.commons.math3.stat.inference 提供 MLE、矩估計、假設檢定。
    <dependency> org.apache.commons:commons-math3:3.6.1 </dependency>
  • JSAT (Java Statistical Analysis Tool):完整統計學庫,支援分布擬合。

手寫最大似然估計 (MLE) 範例:常態分布參數估計


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)};
    }
}

手寫矩估計 (MME) 範例:指數分布參數估計


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 實作)

總結

Java 進行數理統計估計,優先使用 Apache Commons Math 等成熟庫;教學/自定義分布時,依據似然函數/矩方程推導解析解或數值優化(牛頓法、EM 算法)實作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved