MATLAB解决正态分布数据的大致方法

当我们有了一个矩阵,如何判断矩阵里面的元素是否满足正态分布,以及如何绘制图像和求参数。我根据自己最近使用matlab的一些体会,将大致方法写下。


1、矩阵元素转化成行向量 reshape()函数
example:
A =
     1     2     3
     4     5     6
     7     8     9
>> B=reshape(A,1,9)  %1,9指的是行向量的格式1x9
B =
     1     4     7     2     5     8     3     6     9

2、初步检验一组数据是否满足正态分布,可用normplot()直观观察,
example:

A =
     2     3     4     6    77     8     8    99     9     9    45
 normplot(A) %若点基本上与所给出的直线重合,则基本上满足正态分布

3、进一步检测一组数据是否满足正态分布时,可以用jbtest()函数:
example:
A =


     2     3     4     6    77     8     8    99     9     9    45
>>   alpha=0.05;%显著性水平设置为0.05
[h,p,jbstat,critval] = jbtest(A,alpha) % h=0,表明接受假设,即满足正态分布,h=1,则不满足;
                                      % 当p>alpha才满足正态分布,当测试值jbstat<临界值critval才满足正态分布
运行结果如下:
h =
     1
p =

    0.0319

jbstat =
    3.5393

critval =
    2.7016

jbstat =
    3.5393
critval =
    2.7016

从结果可知,A不满足正态分布。
4、假设已知某组数据满足正态分布,那么要得到X~(mu,sigma^2)的数学期望mu,标准差sigma可以利用normfit();
example:
A =
   459   362   624   542   509   584   433   748   815   505
>> [mu,sigma,muci,sigmaci]=normfit(A,0.05)     %0.05即为我们自己设置的显著性水平alpha, 返回的mu为数学期望,sigma为标准差,
% muci为数学期望mu的置信区间,sigmaci为标准差sigma的置信区间

5、怎么绘制正态分布的密度函数图呢?

方法有多种:
a、已知了mu,sigma,可以使用函数normpdf(A,mu,sigma)可以求出各个数据的概率,再利用plot()将密度曲线图绘出
example:
 A=
   459   362   624   542   509   584   433   748   815   505
>> A=sort(A);%先进行从小到大排序
mu=600;sigma=196;%从上文已求出mu=600; sigma=196
B=normpdf(A,mu,sigma);

plot(A,B,'-r*')


b、直接调用capaplot()绘制
example:
capaplot(A,[0,1000])%[ ]里面的区间为自己指定的,这里指定为0~1000
当然还有其他的方法,这里不一一介绍了。
  • 10
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,如果我们有一个矩阵,想要判断矩阵的元素是否满足正态分布,可以采取以下步骤: 1. 将矩阵元素转换为行向量,使用reshape()函数。例如,假设我们有一个矩阵A,我们可以使用reshape(A,1,9)将其转换为行向量B。 2. 初步检验数据是否满足正态分布,可以使用normplot()函数进行直观观察。例如,给定一个向量A,可以使用normplot(A)函数绘制正态概率图。如果数据点与给定的直线基本重合,那么数据基本上满足正态分布。 3. 进一步检验数据是否满足正态分布,可以使用jbtest()函数。该函数返回值包括h、p、jbstat和critval。其,h等于0表示接受假设,即数据满足正态分布;h等于1表示不满足正态分布。当p大于显著性水平alpha时,数据满足正态分布;当测试值jbstat小于临界值critval时,数据满足正态分布。 例如,给定一个向量A,可以使用jbtest(A,alpha)函数进行检验。其,alpha是显著性水平,一般设置为0.05。 总结起来,通过reshape()函数将矩阵元素转换为行向量,使用normplot()函数直观观察数据是否满足正态分布,使用jbtest()函数进一步检验数据是否满足正态分布。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MATLAB解决正态分布数据大致方法](https://blog.csdn.net/yongheng_1999/article/details/50557486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【 MATLAB 】如何产生一个均值和方差可控的正态分布矩阵(randn)?](https://blog.csdn.net/Reborn_Lee/article/details/82855090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Matlab 数组与矩阵操作指南](https://download.csdn.net/download/weixin_41784475/88226798)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值