基于MATLAB的卡方分布,瑞利分布,T与F分布(附完整代码与例题)

发布时间:2023年12月30日

一. 卡方分布

1.1 数学理论

首先我们来看下伽玛分布的概率密度函数:

P_\Gamma(x)=\begin{cases} \frac{\lambda^ax^{a-1}}{\Gamma(a)}e^{-\lambda x},\quad &x\geq 0 \\ 0,\quad &x<0 \end{cases}

其中:

\Gamma(a)=\int_0^\infty x^{a-1}e^{-x}dx

a=k/2,\lambda=1/2,就可以得到一个新的分布,这个分布在概率论上被叫做卡方分布。卡方分布也可以写做\mathcal{X}^2分布。其概率密度函数则为:

P(x)=\begin{cases} \frac{1}{2^{\frac{k}{2}}\Gamma(\frac{k}{2})}x^{\frac{k}{2}-1}e^{-\frac{x}{2}},\quad &x\geq 0 \\ 0,\quad &x<0 \end{cases}

卡方分布要求参数k为正整数。

1.2 MATLAB函数

y=chi2pdf(x,k)
%卡方分布概率密度函数

F=chi2cdf(x,k)
%卡方分布概率分布函数

x=chi2inv(F,k)
%逆卡方分布概率分布函数

有关概率密度函数和概率分布函数的区别,可以看这篇博客:

基于MATLAB的泊松分布,正态分布与伽玛分布(附完整代码与例题)-CSDN博客

1.3 例题

分别绘制出k为1,2,3,4,5时\mathcal{X}^2分布的概率密度函数与分布函数曲线。

MATLAB代码:

x=[-eps:-0.02:-0.5,0:0.02:2]; %画图x轴,其中0.02代表画点间隔
x=sort(x'); %对列向量x'进行升序排列
k1=[1,2,3,4,5]; y1=[]; y2=[];
for i=1:length(k1)
    y1=[y1,chi2pdf(x,k1(i))]; 
    y2=[y2,chi2cdf(x,k1(i))];
end
plot(x,y1), figure; plot(x,y2)

概率密度函数:

分布函数曲线:

二. T分布

2.1 数学理论

T分布的概率密度函数为:

p(x)=\frac{\Gamma(\frac{k+1}{2})}{\sqrt{k\pi}\Gamma(\frac{k}{2})}(1+\frac{x^2}{k})^{-\frac{k+1}{2}}

其中k为参数,且要求k为正整数。

2.2 MATLAB函数

y=tpdf(x,k)
%T分布概率密度函数

F=tcdf(x,k)
%T分布概率分布函数

x=tinv(F,k)
%逆T分布概率分布函数

2.3 例题

分别绘制出k为1,2,5,10时T分布的概率密度函数与分布函数曲线。

MATLAB代码:

x=[-5:0.02:5]'; 
k1=[1,2,5,10]; 
y1=[];
y2=[];
for i=1:length(k1)
    y1=[y1,tpdf(x,k1(i))];
    y2=[y2,tcdf(x,k1(i))];
end
plot(x,y1), figure; plot(x,y2)

运行结果:

三. 瑞利分布(Rayleigh分布)

3.1 数学理论

Rayleigh分布的概率密度函数为:

p(x)=\left\{\begin{matrix} \frac{x}{b^2}e^{-\frac{x^2}{2b^2}}\quad &x\geq 0\\ 0&x<0 \end{matrix}\right.

3.2 MATLAB函数

y=raylpdf(x,b)
%瑞利分布概率密度函数

F=raylcdf(x,b)
%瑞利分布概率分布函数

x=raylinv(F,b)
%逆瑞利分布概率分布函数

3.3 例题

分别绘制b=0.5,1,3,5时Rayleigh分布的概率密度函数与分布函数曲线。

MATLAB代码:

x=[-eps:-0.02:-0.5,0:0.02:5]; 
x=sort(x');
b1=[.5,1,3,5]; y1=[]; y2=[];
for i=1:length(b1)
    y1=[y1,raylpdf(x,b1(i))]; 
    y2=[y2,raylcdf(x,b1(i))]; 
end
plot(x,y1), figure; 
plot(x,y2)

运行结果:

四. F分布

4.1 数学理论

F分布的概率密度函数为:

p(x)=\left\{\begin{matrix} \frac{\Gamma(\frac{p+q}{2})}{\Gamma(\frac{p}{2})\Gamma(\frac{q}{2})}p^{\frac{p}{2}}q^{\frac{q}{2}} x^{\frac{p}{2}-1}(p+qx)^{-\frac{p+q}{2}}& x\geq 0\\ 0 & x<0 \end{matrix}\right.

其中p和q均为参数,且为正整数。

4.2 MATLAB函数

y=fpdf(x,p,q)
%F分布概率密度函数

F=fcdf(x,p,q)
%F分布概率分布函数

x=flinv(F,p.q)
%逆F分布概率分布函数

4.3 例题

分别绘制(p,q)为(1,1),(2,1),(3,1),(3,2),(4,1)时F分布的概率密度函数与分布函数曲线。

MATLAB代码:

x=[-eps:-0.02:-0.5,0:0.02:1]; 
x=sort(x');
p1=[1 2 3 3 4]; 
q1=[1 1 1 2 1]; 
y1=[];
y2=[];
for i=1:length(p1)
    y1=[y1,fpdf(x,p1(i),q1(i))];
    y2=[y2,fcdf(x,p1(i),q1(i))];
end
plot(x,y1), figure;
plot(x,y2)

运行结果:

五. 概率问题小结

(-\infty,x)之内的概率之和:

P[\xi\leq x]=F(x)

x_1\sim x_2之间的概率:

P[x_1\leq \xi\leq x_2]=F(x_2)-F(x_1)

(x,\infty)之间的概率之和:

P[\xi\geq x]=1-F(x)

可以观察到以上三个概率范围都可以直接调用cdf函数解决。

例题1

已知某随机变量x为Rayleigh分布,且b=1,分别求出该随机变量x值落入区间[0.2,2]及区间[1,\infty]的概率。

解:

MATLAB代码:


b=1;
p1=raylcdf(0.2,b); %负无穷大到0.2的概率之和 
p2=raylcdf(2,b); %负无穷大到2的概率之和
P1=p2-p1 %0.2~2之间的概率

p1=raylcdf(1,b);
P2=1-p1 %1~正无穷大概率之和

运行结果:

P1 =

? ? 0.8449


P2 =

? ? 0.6065
?

例题2

二维随机变量(x,y)的联合概率密度为:

p(x,y)=\left\{\begin{matrix} x^2+\frac{xy}{3} &0\leq x\leq 1,\ 0\leq y\leq 2 \\ 0& otherwise \end{matrix}\right.

求条件概率P(x<\frac{1}{2}|y<\frac{1}{2})

解:

写代码之前,我们先简单分析下。条件概率公式告诉我们,其等于联合概率除以P(y),可得:

P(x<\frac{1}{2}|y<\frac{1}{2})=\frac{P(x<\frac{1}{2},y<\frac{1}{2})}{P(y<\frac{1}{2})}

观察题目给的联合概率密度发现,x概率有效的部分只有0~1/2,y概率有效的部分也是只有0~1/2。好了,接下来,我们只需要借助MATLAB代码求出这两个概率,再相除即可:

syms x y; %声明变量
f=x^2+x*y/3; 
P1=int(int(f,x,0,1/2),y,0,1/2); %分子部分的联合概率
P2=int(int(f,x,0,1),y,0,1/2) ;%求分母部分,y的概率。x此时为全概率
P=P1/P2

运行结果:

P =
?
5/36

文章来源:https://blog.csdn.net/forest_LL/article/details/135296672
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。