Matlab 绘制数据的概率分布图 & 概率密度的构造

2024-03-05 1336阅读

温馨提示:这篇文章已超过384天没有更新,请注意相关的内容是否还可用!

文章目录

  • Part.I Introduction
  • Part.II 绘图
  • Part.III 概率密度的构造
    • Chap.I makedist 函数解析
    • Chap.II 使用方法

      Part.I Introduction

      本文主要介绍一下如何使用 Matlab 来绘制数据的分布频数分布直方图、概率密度曲线和累积分布曲线等;另外还介绍了如何用 makedist 函数来构造概率密度。

      Matlab 绘制数据的概率分布图 & 概率密度的构造

      Part.II 绘图

      一个小总结

      clc;clear
      % 构造数据, 生成 10000 个服从 N(3,4) 正态分布的数据
      Data=normrnd(3,4,10000,1);
      % [yy1,xx1]=ksdensity(Data);  % 直接得到频率 yy1
      % 首先得到频数
      [counts,centers] = hist(Data,100);
      % 计算频率
      frequency = counts / sum(counts);
      % 注意,这里是要除以步长的!!!
      frequency1 = frequency / (centers(2)-centers(1));
      % 计算累积频率
      cum_frequency=cumsum(frequency,2);
      % 绘图
      hist(Data,100)
      figure
      plot(centers,frequency1)
      figure
      plot(centers,cum_frequency)
      

      首先准备数据,这里用随机数生成正态分布的一组数据。

      % 构造数据, 生成 10000 个服从 N(3,4) 正态分布的数据
      Data=normrnd(3,4,10000,1);
      

      然后绘制频数分布直方图

      hist(Data,100)		// 100 个长条
      

      Matlab 绘制数据的概率分布图 & 概率密度的构造

      绘制频率密度曲线 (方法一)

      // 首先得到频数
      [counts,centers] = hist(Data,100);
      // 计算频率
      frequency = counts / sum(counts);
      // 注意,这里是要除以步长的!!!
      frequency1 = frequency / (centers(2)-centers(1));
      // 绘制频率密度曲线
      plot(centers,frequency1)
      

      Matlab 绘制数据的概率分布图 & 概率密度的构造

      上面这个图就是因为没有除以步长,所以纵坐标才比较小。

      绘制累积分布曲线

      % 计算累积频率,这里用的是 frequency,而不是 frequency1
      cum_frequency=cumsum(frequency,2);
      plot(centers,cum_frequency)
      

      Matlab 绘制数据的概率分布图 & 概率密度的构造

      绘制频率密度曲线 (方法二)

      % 注意:这里又随机生成了一组数据,和之前的那组数据已经不一样了。
      Data=normrnd(3,4,10000,1);
      [yy1,xx1]=ksdensity(Data);
      plot(xx1,yy1)
      

      Matlab 绘制数据的概率分布图 & 概率密度的构造

      这个曲线或许比方法一的曲线要平滑一些。

      Part.III 概率密度的构造

      这部分介绍如何构造一个指定分布的概率密度函数。

      Chap.I makedist 函数解析

      makedist 的用法如下:

      pd = makedist(distname)
      pd = makedist(distname,Name,Value)
      list = makedist
      

      输入参数:

      • distname:分布的名称
      • Name:参数的名字
      • Value:参数的值

        输出参数:

        • pd:概率分布

          支持的分布名有:

          Matlab 绘制数据的概率分布图 & 概率密度的构造

          示例代码如下:

          // 构造一个稳定分布
          pd1 = makedist('Stable','alpha',2,'beta',0,'gam',1,'delta',0);
          x = -5:.1:5;
          pdf1 = pdf(pd1,x);
          -------------------------------------------------------------------
          pd1 = 
            StableDistribution
            Stable distribution
              alpha = 2
               beta = 0
                gam = 1
              delta = 0
          

          上面的代码构造了一个稳定分布,指定了参数 α = 2 , β = 0 , γ = 1 , μ = 0 \alpha=2,\beta=0,\gamma=1,\mu=0 α=2,β=0,γ=1,μ=0。

          Chap.II 使用方法

          有时候不知道一个分布在 Matlab 中有几个参数,各个参数的名称是什么,可以首先用下面的代码进行试探

          pd2=makedist('Burr')
          

          然后点击蓝色文字查看帮助文档

          Matlab 绘制数据的概率分布图 & 概率密度的构造

          在理解了各个参数之后,再按自己的需求对各个参数进行赋值,进而生成自己所需的概率密度函数:

          pd2=makedist('Burr','alpha',2,'c',3,'k',4);
          pts=linspace(-5,5,1000);
          y = pdf(pd2,pts);
          plot(pts,y);
          

          Matlab 绘制数据的概率分布图 & 概率密度的构造

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]