Matlab数据统计与分析

1.前言

概率分布是概率论和统计学中描述随机变量取值规律的概率模型。它是一个函数,将随机变量的每一个可能取值映射到一个非负实数,表示该取值出现的概率。

概率分布主要有两种类型:离散概率分布和连续概率分布。

离散概率分布是指随机变量取值是离散的,例如投掷骰子的结果(1-6)、抛硬币的结果(正面或反面)等。离散概率分布可以用概率质量函数(Probability Mass Function, PMF)来描述,PMF是一个非负实数函数,其自变量是离散随机变量的取值,函数值是该取值出现的概率。

连续概率分布是指随机变量取值是连续的,例如人的身高、体重、考试成绩等。连续概率分布可以用概率密度函数(Probability Density Function, PDF)来描述,PDF是一个非负实数函数,其自变量是连续随机变量的取值,函数值在该取值附近的概率密度。对于连续概率分布,我们通常关心的是其在某个区间内的概率,而不是某一个具体的取值。

常见的离散概率分布有:伯努利分布、二项分布、泊松分布等;常见的连续概率分布有:正态分布、均匀分布、指数分布、卡方分布等。

 2.基本统计量

(1)均值

clear
warning off %不显示警告
x=[1 2 3;4 5 6;7 8 9];
y=mean(x)%整个矩阵求均值
y1=mean(x(2,:))%求第二行的均值
y2=mean(x,1)%按列求均值。默认值也可以y2=mean(x)
y3=mean(x,2)%按行求均值
y4=mean(x,3)%矩阵本身

Matlab数据统计与分析_第1张图片

(2)中位数

median

此 MATLAB 函数 返回 A 的中位数值。 如果 A 为向量,则 median(A) 返回 A 的中位数
    值。 如果 A 为非空矩阵,则 median(A) 将 A 的各列视为向量,并返回中位数值的行向量。 

clear
x=[1 5 6 9 5 6 5 4 7 9];
sort(x)
median(x)

Matlab数据统计与分析_第2张图片

(3)方差

clear
x=[1 5 6 9 5 6 5 4 7 9];
x1=var(x)%方差
x2=sqrt(x1)%标准差

(4)峰度

正态分布的峰度值为0。

若峰度值大于0,则数据分布较正态分布更为陡峭,即呈现出尖峰形态

若峰度值小于0,则数据分布较正态分布更为平坦,即呈现出扁峰形态

峰度的绝对值越大,表示数据分布形态与正态分布的差异程度越大。
峰度在数据分析中有实际应用价值,例如在信号处理中,峰度可以用于分析异常信号,如齿轮副中的划痕、振动信号中破坏性尖峰的概率等。

clear
x=[1 5 6 9 5 6 5 4 7 9];
kurtosis(x)

 Matlab数据统计与分析_第3张图片

 (5)偏度

偏度的取值范围为(-∞,+∞)

当偏度<0时,概率分布图左偏。

当偏度=0时,表示数据相对均匀的分布在平均值两侧,不一定是绝对的对称分布。

当偏度>0时,概率分布图右偏

clear
x=[1 5 6 9 5 6 5 4 7 9];
skewness(x)

Matlab数据统计与分析_第4张图片

3.常见概率分布函数 

  

分布类型 正太分布 指数分布 泊松分布 \beta分布 韦布尔分布 \chi ^2分布 t分布 F分布
命令 norm exp poiss beta weib chi2 t F

分布命令字符  表1

函数类型 概率密度 概率分布 逆概率分布 均值与方差 随机数生成
命令 pdf cdf inv stat rnd

 函数命令字符   表2

当需要一种分布的某一类函数时
将以上所列的分布命令字符与函数命令字符接起来
并输入 自变量 (可以是标量、数组或矩阵)和 参数 即可
比如正太分布+概率密度=norm+pdf=normpdf
这就组成了  正态概率密度函数

 normpdf

- 正态概率密度函数
此 MATLAB 函数 返回标准正态分布的概率密度函数 (pdf),在 x 中的值处计算函数值。

    语法
      y = normpdf(x)
      y = normpdf(x,mu)
      y = normpdf(x,mu,sigma)

    输入参数
      x - 用于计算 pdf 的值
        标量值 | 标量值组成的数组
      mu - 均值
        0 (默认值) | 标量值 | 标量值组成的数组
      sigma - 标准差
        1 (默认值) | 正标量值 | 正标量值组成的数组

    输出参数
      y - pdf 值
        标量值 | 标量值组成的数组

例如-画出正态分布 N(0,1) 和 N(0,4) 的概率密度函数图形进行比较

x=-6:0.01:6;%创建数组
y=normpdf(x);%根据x给的值输出新的值y,默认均值为0,方差为1
z=normpdf(x,0,2);%根据x给的值输出新的值z,均值为0,方差为4,标准差2
plot(x,y,x,z)%画图做对比

Matlab数据统计与分析_第5张图片

normrnd

正态随机数,r = normrnd(mu,sigma,m,n)生成mxn的随机矩阵,且all数服从均值为mu,标准差为sigma的正太分布。可以说有点类似rand

mu为平均数,sigma为标准差,m是行,n是列。

例如

clear
x=normrnd(0,1,10000,1);%均值为0,标准差为1,10000x1的随机数组
hist(x,50)%直方图绘画,分五十等分

Matlab数据统计与分析_第6张图片

注意:由于是随机数组,所以结果不一定和上面的图片一致,只要大致形状像正太分布就行。 

接下来我们尝试以下10000x3的数组会是什么效果

clear
x=normrnd(3,2,10000,3);%均值为3,方差为2
hist(x,50)

Matlab数据统计与分析_第7张图片

看不清?放大细节看看 

Matlab数据统计与分析_第8张图片 chi2pdf

卡方分布,只有一个参数,即自由度v。

clear
x=0:0.01:12;
y=chi2pdf(x,3);%自由度为3
plot(x,y)

 Matlab数据统计与分析_第9张图片

chi2rnd 

clear
x=chi2rnd(5,10000,1);%自由度为5的10000x1数组
hist(x,50)

 Matlab数据统计与分析_第10张图片

 normcdf

概率分布p = normcdf(x,mu,sigma)

 x - 用于计算 cdf 的值
        标量值 | 标量值组成的数组
      mu - 均值
        0 (默认值) | 标量值 | 标量值组成的数组
      sigma - 标准差

Matlab数据统计与分析_第11张图片

 例如当mu=10,sigma=2时,计算P{8

Matlab数据统计与分析_第12张图片

4.正态分布参数估计 

  [muHat,sigmaHat] = normfit(x)

[muHat,sigmaHat,muCI,sigmaCI] = normfit(x)
[muHat,sigmaHat,muCI,sigmaCI] = normfit(x,alpha)

此命令在显著性水平alpha(默认值为0.05,可以不设置)下估计数据x的参数.

返回的值muhat为均值

sigmahat为标准差

muci为均值的波动范围(置性区间

sigmaci为标准差的波动范围(置性区间

例如某一组中学生的身高数据如下,计算他们的均值和标准差以及置性区间

clear
x=[167 179 168 170 173 175 165 169 177 176];%10个学生的身高
[a,b,c,d]=normfit(x)

Matlab数据统计与分析_第13张图片

摘要: 

显著性水平(Significance Level)是指在假设检验中,研究者设定的一个阈值,用于判断观察到的效应是否具有统计学意义。通常用希腊字母α表示。显著性水平的取值范围在0到1之间,最常用的显著性水平为0.05和0.01。

在假设检验中,如果观察到的效应大于或等于显著性水平,那么我们拒绝原假设,认为研究结果具有统计学意义。如果观察到的效应小于显著性水平,那么我们无法拒绝原假设,认为研究结果不具有统计学意义。

例如,如果我们设定的显著性水平为0.05,那么当观察到的效应大于或等于0.05时,我们拒绝原假设;当观察到的效应小于0.05时,我们无法拒绝原假设。

显著性水平的选择取决于研究者的风险偏好和对结果的期望。较高的显著性水平意味着需要更大的效应才能拒绝原假设,因此可能会漏掉一些真实效应;较低的显著性水平则意味着更容易拒绝原假设,但同时也可能增加假阳性错误的风险。

最后,其他分布参数估计

1[muhat, muci] = expfit(X,alpha)
──在显著性水平alpha下,求指数分布的数据X的均值的点估计及其区间估计.
2[lambdahat, lambdaci] = poissfit(X,alpha)
──在显著性水平alpha下,求泊松分布的数据X的参数的点估计及其区间估计.
3[phat, pci] = weibfit(X,alpha)
──在显著性水平alpha下,求Weibull分布的数据X的参数的点估计及其区间估计.

 5.假设检验

前提:服从正态分布的情况下使用

z检验

已知标准差的前提,用来检验均值。

  [h ,p,ci]= ztest(x,m,sigma,alpha,tail)

x为已知数据,m为假设的均值数据,sigma为已知的标准差。

tail = 0 ,检验假设“ x 的均值等于 m ”
tail = 1 ,检验假设“ x 的均值大于 m ”
tail =-1 ,检验假设“ x 的均值小于 m ”
默认tail=0,alpha=0.05.

输出的参数:

h 为一个布尔值, h=1 表示 可以拒绝假设 h=0 表示 不可以拒绝假设
p为假设成立的概率
ci 为均值的 1-alpha(默认95%) 置信区间。
例如下面这组数据是某个月份的油价,用z检验油价均值是否等于115。已知标准差为4.

119 117 115 116 112 121 115 122 116 118 109 112 119 112 117 113 114 109 109 118

clear
x=[119 117 115 116 112 121 115 122 116 118 109 112 119 112 117 113 114 109 109 118];
[h,p,ci]=ztest(x,115,4)%默认tail=0,alpha=0.05.

Matlab数据统计与分析_第14张图片 

检验结果 :
1. 布尔变量 h=0 , 表示不拒绝零假设 . 说明提出的假设均值 115是合理的
2. p 值为 0.8668, 远超过 0.5, 不能拒绝零假设
3. 95% 的置信区间为 [113.4, 116.9], 它完全包括 115, 且精度很高

t检验

未知标准差的前提,用来检验均值。

[h,p,ci]= ttest(x,m,alpha,tail)

x为已知数据,m为假设的均值数据

tail = 0 ,检验假设“ x 的均值等于 m ”
tail = 1 ,检验假设“ x 的均值大于 m ”
tail =-1 ,检验假设“ x 的均值小于 m ”
默认tail=0,alpha=0.05.

输出的参数:

h 为一个布尔值, h=1 表示 可以拒绝假设 h=0 表示 不可以拒绝假设
p为假设成立的概率
ci 为均值的 1-alpha(默认95%) 置信区间。

例如下面这组数据是某个月份的油价,用z检验油价均值是否等于128。

118 119 115 122 118 121 120 122 128 116 120 123 121 119 117 119 128 126 118 125

clear
x=[118 119 115 122 118 121 120 122 128 116 120 123 121 119 117 119 128 126 118 125];
[h,p,ci]=ttest(x,128)

Matlab数据统计与分析_第15张图片

检验结果
1. 布尔变量h=1, 表示 拒绝零假设 . 说明提出的假 设油价均值128是不合理的.
2. 95%的置信区间为[102.0831 127.6169], 它不包括 128, 故不能接受假设.
3. sig值为0.0441, 远小于0.5, 不能接受零假设.

你可能感兴趣的:(matlab,概率论,开发语言)