Loading...
墨滴

傲天居士

2021/07/05  阅读:27  主题:默认主题

由一道经典的概率论题目谈起

1. 题目

将一根长度为1m的细木棍随机切割成三段,记从左向右的三个部分长度分别为 ,则随机变量 之间的相关系数为多少?

这是一道经典的题目,同时也是一道有争议的题目。这道题目争论的焦点在于,题目没有明确指出随机切割的方式。因此,对于这道题目,通常有两种理解方式。

  1. 记木棍的两个端点分别为A,B,且记A为坐标原点,则B的坐标为1(一维坐标系)。在AB之间随机选取任意两点 ,其中 的坐标记为s, 的坐标记为t,则容易知道,随机变量S与T独立服从均匀分布,即 , ,且S与T相互独立。在这种情况下,随机变量X,Y,Z之间的地位是等同的,故可以使用类似于多重积分的轮换对称的思想。
  2. 记木棍的两个端点分别为A,B,且记A为坐标原点,则B的坐标为1(一维坐标系)。在AB之间首先随机选取一点 ,其坐标记为s,其中 .随后在 与B点之间随机选取一点 ,其坐标记为t,则 .在这种情况下,由于随机变量随机变量S与T之间存在相互依赖的关系,因此,随机变量X,Y,Z之间的地位不再等同。

2. 解答

对于第一种理解方式,我们容易知道:

又由于 , 因此有

代入 得,

因此有 的相关系数为:

同理有,

对于第二种理解方式,我们有:

则随机变量 服从以下二元分布:

用图像表示为:

(注意并不是二元均匀分布!)

则有

因此有,

则容易求得,

3. 在MATLAB中进行模拟

MATLAB是一款强大的商业软件。下面我们使用MATLAB对本题进行模拟运算。注意到是随机切割,因此我们需要生成随机数。

以第一种理解方式为例,我们使用MATLAB进行模拟,得到 彼此之间的相关系数为:

MATLAB模拟运算的结果与理论结果非常接近。 MATLAB模拟运算的代码如下:

clear all
clc
a=rand(1,5000)
b=rand(1,5000)
x=[];y=[];z=[]
for i =1:5000
    a0=a(1,i);b0=b(1,i)
    if a0 < b0
        x0=a0;y0=b0-a0;z0=1-b0
    else
        x0=b0;y0=a0-b0;z0=1-a0
    end
    x=[x,x0];y=[y,y0];z=[z,z0]
end

rho=corrcoef(x,y);rho2=corrcoef(x,z);rho3=corrcoef(y,z)


以第二种理解方式为例,使用MATLAB模拟运算的结果为:

MATLAB模拟运算的结果与理论结果非常接近。 MATLAB模拟运算的代码如下:

clear all
clc
a=rand(1,5000)
b=[]
for i=1:5000
    a0=a(1,i)
    b0=a0+(1-a0)*rand(1,1)
    b=[b,b0]
end
x=a;y=b-a;z=1-b;
rho=corrcoef(x,y);rho2=corrcoef(x,z);rho3=corrcoef(y,z)

傲天居士

2021/07/05  阅读:27  主题:默认主题

作者介绍

傲天居士