许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  概率和统计的MATLAB指令:常用函数与示例

概率和统计的MATLAB指令:常用函数与示例

阅读数 4
点赞 0
article_banner

1、描述性统计分析

     描述性统计分析函数标准用法都是对列状数据进行操作。

mean(X):当X为向量,返回向量的均值;当X为矩阵,返回矩阵的每列元素均值构成的行向量。
min,max,sort,mean,median,std,var,sum,prod,cumsum,sumprod等函数用法与mean类似。
cov(X,Y):这里X,Y为向量,分别代表一个样本,求得样本的协方差。
cov(X):这里X为矩阵,将各列看成一个样本,求得样本协方差矩阵。corrcoef用法与cov类似,求得相关系数。
[Y,I]=sort(X):当X为向量,Y返回X的升序排列,I返回Y各元素原来的编址,即Y=X(I);当X为矩阵,分别对各列排序。
Y=prctile(X,p):当X为向量,Y返回X的p%上分位数;当X为矩阵,分别求各列的上分位数。
trimmean(X,p):剔除上下各(p/2)%数据以后的均值。

例如:

>> data=[11 57 291; 13 54 278;10 66 253; 9 46 307; 16 75 244;15 70 256; 8 40 310]

data =

   11    57   291

      13    54   278

      10    66   253

       9    46   307

      16    75   244

      15    70   256

       8    40   310

>> % 注意mean和median的区别

  >> mean(data),median(data)

ans =

  11.7143   58.2857  277.0000

ans =

   11    57   278

>> % 注意var是std的平方

  >> std(data),sqrt(var(data))

ans =

   3.0394   12.7895   26.7457

ans =

   3.0394   12.7895   26.7457

>> % 注意sum与cumsum不同

  >> sum(data),cumsum(data)

ans =

         82         408        1939

ans =

         11          57         291

            24         111         569

            34         177         822

            43         223        1129

            59         298        1373

            74         368        1629

            82         408        1939

>> % 将三列看成三个随机变量

  >> corrcoef(data)

ans =

   1.0000    0.8299   -0.7832

      0.8299    1.0000   -0.9633

     -0.7832   -0.9633    1.0000

>> % 排序

  >> [Y,I]=sort(data)

Y =

    8    40   244

       9    46   253

      10    54   256

      11    57   278

      13    66   291

      15    70   307

      16    75   310

I =

    7     7     5

       4     4     3

       3     2     6

       1     1     2

       2     3     1

       6     6     4

       5     5     7

>> % prctilr(data,50)等于median(data)

  >> prctile(data,[25,50,100])

ans =

   9.2500   48.0000  253.7500

     11.0000   57.0000  278.0000

     16.0000   75.0000  310.0000

>> % 注意与mean的区别

  >> trimmean(data,20)

ans =

  11.6000   58.6000  277.0000

2、统计图

bar(Y):作向量Y的条形图。

bar(X,Y):作向量Y相对于X的条形图。

hist(X,k):将向量X中数据等距分为k组,并作频数直方图。k默认为10.

[N,X]=hist(Y,k): 不做图,N返回各组数据频数,X返回各组的中心位置。

boxplot(Y):作向量Y的箱型图。

例子:

>> vdata=rand(1,100); %100个标准正态分布随机数

  >> % 由于是随机数,所以每次结果都不相同

  >> subplot(1,3,1);

  >> % 作出5组频数直方图,如图(a)所示

  >> hist(vdata,5);

  >> xlabel('(a)');

  >> [n,x]=hist(vdata,5)

n =

   26    18    21    17    18

x =

   0.1038    0.3021    0.5004    0.6987    0.8970

>> % 5组频率直方图,如图(b)所示

  >> subplot(1,3,2);

  >> bar(x,n/100)

  >> xlabel('(b)')

  >> % 箱型图,如图(c)

  >> subplot(1,3,3);

  >> boxplot(vdata);

  >> xlabel('(c)')

箱型图的箱中包含了从75%上分位数到25%上分位数的数据,中间线为中位线。

3、随机数生成

R=rand(m,n):生成区间(0,1)上均匀分布的m行n列随机矩阵。

R=randn(m,n):生成标准正态分布N(0,1)的m行n列随机矩阵。

P=randperm(N): 生成1,2,…,N的一个随机排列。

     实际上,计算机生成的是伪随机数,其生成机制由随机种子控制。rand和randn是最基本的随机数产生函数,他们允许用户自己设置随机种子。若将随机种子设为特定值,就可以是随机模拟称为可再现的。例如:

>> rand('state',1)

  >> randperm(5)

总是产生42513。另一方面,若将种子设置为系统时间

>> rand('state',sum(1000*clock))

则几乎可以得到真正的随机实验。

4、随机变量模拟

R=random(sist,p1,p2,…,m,n): 生成以p1,p2,…为参数的m行n列dist类分布随机数矩阵。dist是表示分布类型字符串。

R=unidrnd(N,m,n):生成1,2,…,N的等概率m行n列随机矩阵。

R=binornd(k,p,m,n):生成参数为k,p的m行n列二项分布随机数矩阵。

R=unifrnd(a,b,m,n):生成[a,b]区间上的连续型均匀分布m行n列随机数矩阵。

R=normrnd(mu,sigma,m,n):生成均值为μ,均方差为σ的m行n列正态分布随机数矩阵。

R=mvnrnd(mu,sigma,m):生成n维正态分布数据这里μ为n维均值向量,σ为n阶协方差矩阵(它必须是正定的),R为m*n矩阵,每行代表一个随机数。

注:通用随机数生成函数random可适用的分布类型包括:’discrete uniform’(离散均匀分布),’binpmial’(二项分布),’normal’(正态分布),’poisson’(Poisson分布),’chi-square’(χ²分布),’t’(t分布),’f’(F 分布),’geometric’(几何分布),’hypergeometric’(超几何分布),’exponential’(指数分布),’gamma’(Γ分布),’weibull’(Weibull分布)等。

5、概率函数

y=pdf(dist,x,p1,p2,…):返回以p1,p2,…为参数的m行n列dist分布概率函数(分布率或密度函数)在x处的值。dist是表示分布类型的字符串,可适用的分布类型类似于random。

y=cdf(dist,x,p1,p2,…):返回以p1,p2,…为参数的m行n列dist类分布累计概率函数(即分布函数)在x处的值。dist是表示分布类型的字符串,可适用的分布类型类似于random。

y=icdf(dist,x,p1,p2,…):返回以p1,p2,…为参数的m行n列dist类分布函数(即下分位数)在x处的值,介于0~1。dist是表示分布类型的字符串,可适用的分布类型类似于random。

y=normedf(x,mu,sigma):返回参数为μ和σ的正态分布密度函数在x处的值。

p=normcdf(x,mu,sigma):正态分布函数值。

x=norminv(p,mu,sigma):normedf的逆函数,即p下分位。

例如:

>> a=normpdf(90,80,10)-normpdf(70,80,10)

a =

    0

>> b=normcdf(90,80,10)-normcdf(70,80,10)

b =

   0.6827

>> p=(1-b)/2;

  >> c=norminv(p,80,10)

c =

   70

>> d=norminv(1-p,80,10)

d =

   90

>> pdf('normal',90,80,10)

ans =

   0.0242

>> p=cdf('normal',90,80,10)

p =

   0.8413

>> icdf('normal',p,80,10)

ans =

   90

>> icdf('t',0.95,20) % 自由度为20的t分布95%下分位数

ans =

   1.7247

6、 统计推断  

[muhat,sigmahat,muci,sigmaci]=normfit(x,alpha):正态总体N(μ,σ²)参数估计。求得列状样本数据x的点估计μ=muhat和σ=sigmahat,以及相应的100(1-α)%置信区间muci和sigmaci。α的默认值为0.05。

[h,sig]=ttest(x,m,alpha,tail):正态总体N均值t检验。检验列状样本数据x的均值是否为m;α为显著性水平(默认值0.05);参数tail为0表示双边检验(H1:μ≠μ0)(默认值),1表示右边检验(H1:μ>μ0),-1表示左边检验(H1:μ<μ0);h返回1表示拒绝H0,返回0表示接受H0;sig返回临界值拒绝概率,sig<α时,h=1。

[p,h]=ranksum(x,y):两个总体一致性的Wilcoxon秩和检验。p返回列状样本数据x和y分布相同的显著性概率。p<0.05时,h=1(拒绝H0)。

例如:

>> x=randn(200,1);

  >> [a,b,aci,bci]=normfit(x)

a =

   0.0252

b =

   1.0883

aci =

  -0.1265

      0.1769

bci =

   0.9911

      1.2068

>> [h,sig]=ttest(x,0) % 检验均值是否为0

h =

    0

sig =

   0.7436

>> y=normrnd(0,1,1000,1); % 生成1000个正态N(0,1)随机数

  >> [p,h]=ranksum(x,y) %检验x与y分布是否相同

p =

   0.6298

h =

    0

7、概率和统计相关指令


主题词意义主题词意义
max最大值random随机数
min最小值unidrnd离散均匀分布随机数
sum各元素和unifrnd均匀分布随机数
cumsum元素累计和normrnd正态分布随机数
prod各元素积binornd二项分布随机数
cumprod元素累计积poissrnd泊松分布随机数
mean样本均值mvnrnd多维正态分布随机数
std样本标准差pdf概率密度函数
var样本方差normpdf正态分布概率密度函数
cov样本协方差cdf累计分布函数
corrcoef样本相关系数normcdf正态分布累计分布函数
sort排序(从小到大)icdf逆分布函数
median中值norminv正态分布下分位数
prctile百分位数tinvt分布下分位数
trimmean剔除极端数据的均值chi2invχ²分布下分位数
bar条形图finvF分布下分位数
hist数据分组距频数图mle参数估计
boxplot箱型图normfit正态分布参数估计
rand[0,1]均匀分布随机数ttest单总体t检验
randn标准正态分布随机数ttest2双总体t检验
randperm随机排列ranksum分布秩和检验


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空