llcyyf 2023-03-23 15:45 采纳率: 50%
浏览 81
已结题

概率密度函数拟合与分布检验

本人使用蒙卡特罗模拟对要计算的参数进行了10000次模拟,现在需要对模拟得到的这10000个数据用最小二乘法拟合出最佳的概率密度曲线,并测试其最符合的哪种统计分布(如贝塔、二项式、χ2、非中心χ2、F、非中心F、伽玛、负二项式,正态、泊松、学生t和非中心t等),得到类似于如下图的结果。最好利用python实现。

img

  • 写回答

8条回答 默认 最新

  • m0_73340666 2023-03-23 15:52
    关注

    回答参考chatgpt
    首先,您需要安装一些Python库,包括NumPy、SciPy、matplotlib和seaborn,以便更好地实现和可视化拟合过程。您可以通过以下命令安装这些库(如果尚未安装)

    pip install numpy scipy matplotlib seaborn
    

    接下来,使用以下代码示例进行最小二乘法拟合并找到最符合的概率密度函数(PDF):

    import numpy as np
    import scipy.stats as stats
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    # 模拟数据
    np.random.seed(42)
    data = np.random.randn(10000)
    
    # 可视化直方图
    plt.figure()
    sns.histplot(data, kde=False, bins=50, color='b', stat='density')
    plt.title('Histogram of Simulated Data')
    
    # 拟合概率密度函数
    distributions = [
        stats.beta, stats.binom, stats.chi2, stats.ncx2,
        stats.f, stats.ncf, stats.gamma, stats.nbinom,
        stats.norm, stats.poisson, stats.t, stats.nct
    ]
    
    best_fit = None
    best_sse = np.inf
    best_params = None
    
    for dist in distributions:
        try:
            params = dist.fit(data)
            pdf = dist.pdf(np.sort(data), *params)
            sse = np.sum((pdf - data) ** 2)
            if sse < best_sse:
                best_fit = dist
                best_sse = sse
                best_params = params
        except Exception as e:
            pass
    
    print(f"Best fit: {best_fit.name}, Parameters: {best_params}")
    
    # 绘制拟合曲线
    x = np.linspace(min(data), max(data), 1000)
    y = best_fit.pdf(x, *best_params)
    plt.plot(x, y, 'r-', lw=2, label=f'{best_fit.name} fit')
    plt.legend()
    plt.show()
    

    该代码首先生成了一个随机正态分布的模拟数据集(您可以用您自己的数据替换这部分),然后计算并绘制直方图。接着,代码尝试使用最小二乘法拟合上述提到的各种概率密度函数,并选择具有最小平方和误差(SSE)的分布作为最佳拟合。最后,它将最佳拟合曲线绘制在直方图上。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 4月6日
  • 已采纳回答 3月29日
  • 创建了问题 3月23日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度