概率和统计的MATLAB指令

1、描述性统计分析

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

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

image

图1 统计图

      箱型图的箱中包含了从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样本方差normcdf正态分布密度
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分布秩和检验

转载于:https://www.cnblogs.com/gtts/archive/2011/05/24/2055163.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值