首页 > 其他分享 >概率和统计的MATLAB指令

概率和统计的MATLAB指令

时间:2023-11-07 12:33:42浏览次数:34  
标签:10 概率 矩阵 分布 指令 随机数 data 正态分布 MATLAB

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)')

概率和统计的MATLAB指令_正态分布

箱型图的箱中包含了从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=normpdf(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、概率和统计相关指令


表1 概率统计主要MATLAB命令

主题词

意义

主题词

意义

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

百分位数

tinv

t分布下分位数

trimmean

剔除极端数据的均值

chi2inv

χ²分布下分位数

bar

条形图

finv

F分布下分位数

hist

数据分组距频数图

mle

参数估计

boxplot

箱型图

normfit

正态分布参数估计

rand

[0,1]均匀分布随机数

ttest

单总体t检验

randn

标准正态分布随机数

ttest2

双总体t检验

randperm

随机排列

ranksum

分布秩和检验



标签:10,概率,矩阵,分布,指令,随机数,data,正态分布,MATLAB
From: https://blog.51cto.com/emanlee/8230185

相关文章

  • Matlab数理统计工具箱应用简介
    1.概述Matlab的数理统计工具箱是Matlab工具箱中较为简单的一个,其牵扯的数学知识是大家都很熟悉的数理统计,因此在本文中,我们将不再对数理统计的知识进行重复,仅仅列出数理统计工具箱的一些函数,这些函数的意义都很明确,使用也很简单,为了进一步简明,本文也仅仅给出了函数的名称,没有列......
  • MATLAB-数理统计工具箱
    StatisticsToolboxDistributions.Parameterestimation.betafit-Betaparameterestimation.binofit-Binomialparameterestimation.dfittool-Distributionfittingtool.evfit-Extremevalueparameterestimation.expfit-Exp......
  • matlab 对数坐标
    在很多工程问题中,通过对数据进行对数转换可以更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可以直接地表现对数转换.对数转换有双对数坐标转换和单轴对数坐标转换两种.用loglog函数可以实现双对数坐标转换,用semilogx和semilogy函数可以实现单轴对数坐标转换.logl......
  • 概率统计
    随机变量与分布函数随机变量本质上就是个变量,它分为两种:连续型随机变量(变量的可能取值是连续的,比如小酱等车的时间没法精确到准确的值)和离散型随机变量(变量的可能取值是离散的,比如小酱扔硬币只有正反面两种值)。分布函数的定义:假如\(X\)是个随机变量,那么它的分布函数\(F(x)\)......
  • matlab中读取txt数据文件(txt文本文档)
    根据txt文档不同种类介绍不同的读取数据方法一、纯数据文件(没有字母和中文,纯数字)对于这种txt文档,从matalb中读取就简单多了例如test.txt文件,内容为17.901-1.111133.04517.891-1.128633.04517.884-1.134533.045可以在commandwindow中输入loadtest.txt,然后就会产生一......
  • matlab程序性能优化与混合编程技术介绍
    matlab程序代码优化,性能优化 Matlab是一种强大的计算工具,方便的矩阵运算与工具箱为编程人员提供了极大的便利。但是其性能的缺失使得处理一些大计算量问题时显得效率不高,matlab程序的优化应从几个方面展开:1.矩阵提前分配空间,矩阵第一次使用之后避免改变矩阵的维数。2.尽量使用矩......
  • Matlab命令集--常用字符串函数
    Matlab命令集--常用字符串函数常用函数eval :运行字符串表示的表达式char :将数组变成字符串double:将数字字符串变成数字字符串操作deblank:去掉字符串末尾的空格findstr:查找字符串lower  :转换为小写strcat :字符串连接组合strcmp :字符串比较strcmpi:字符串比较(......
  • Linux p12 查找指令
    搜索查找指令find指令find指令将从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端。基本语法find[搜索范围(指定目录)][选项]选项说明选项功能-name<查询方式>按照指定的文件名查找模式查找文件-user<用户名>查找属于指定用户名......
  • matlab用Logistic逻辑回归建模和马尔可夫链蒙特卡罗MCMC方法分析汽车实验数据
    原文链接:http://tecdat.cn/?p=24103原文出处:拓端数据部落公众号 此示例说明如何使用逻辑回归模型进行贝叶斯推断。统计推断通常基于最大似然估计(MLE)。MLE选择能够使数据似然最大化的参数,是一种较为自然的方法。在MLE中,假定参数是未知但固定的数值,并在一定的置信度下进......
  • MTK 平台单独编译指令
    记录一下MTK平台单独编译指令,方便后期调试MTK平台编译指令先全编译source环境:sourcebuild/envsetup.shlunch对应编译工程:lunchfull_XXXXX项目-eng(eng可以换成user/userdebug)全部编译:make-j322>&1|teeout/build.log-j32表示使用32个线程来编译该工程,......