前言:绘制连续型的分布函数很容易,直接根据分布函数计算函数值即可。但是对于离散型随机变量而言,没有已知的分布函数,只能使用经验分布函数或者说是累积分布函数进行近似。下文以离散分布中比较经典的二项分布、泊松分布以及几何分布为例绘制它们的经验分布函数。
二项分布
二项分布的理论部分可以参照二项分布百度百科
Len = 100000;
%% 二项分布Bin(n,p)
N = 50; % 二项分布参数n
p = 0.5; % 二项分布参数p
F_bin = Bin(N,p,Len);
%%
% 二项分布Bin(n,p)
function F_bin = Bin(N,p,Len)
u = rand(1,Len);
bin = binoinv(u,N,p); % 二项分布逆函数
% 画分布函数
figure
xlim([0 round(1.1*N)])
for i = 1:round(1.1*N)
F_bin(i) = length(find(bin<i))/Len; % 二项分布的分布函数值
line([i-1 i],[F_bin(i) F_bin(i)],'linewidth',1.1) % 绘制分段的分布函数图像
hold on
end
str1 = '二项分布分布函数图像';
str2 = ['N = ' num2str(N) ' p = ' num2str(p)];
title({[str1];[str2]})
grid on
set(gca,'linewidth',1.1)
end
经验分布图形为:
泊松分布
以下泊松分布理论部分摘自泊松分布博客。
%% 泊松分布Poi(lambda)
lambda = 2;
x = Poiss(lambda, Len);
% 泊松分布Poi(lambda)
function F_poiss = Poiss(lambda,Len)
u = rand(1,Len);
poiss = poissinv(u,lambda); % 泊松逆函数
% 画分布函数图
figure
xlim([0 round(max(poiss))])
for i = 1:round(max(poiss))
F_poiss(i) = length(find(poiss<i))/Len; % 泊松分布的分布函数值
line([i-1 i],[F_poiss(i) F_poiss(i)],'linewidth',1.1); % 绘制分段的分布函数图像
hold on
end
str1 = '泊松分布分布函数图像';
str2 = ['lambda = ' num2str(lambda)];
title({[str1];[str2]})
grid on
set(gca,'linewidth',1.1)
end
经验分布函数图像为:
几何分布
以下几何分布理论摘自几何分布百度百科。注意,几何分布为帕斯卡分布及负二项分布的特殊情况。
Len = 1000000;
%% 几何分布
p = 0.5;
F_geo = Geo(p,Len);
%%
% 几何分布Geo(p)
function F_geo = Geo(p,Len)
u = rand(1,Len);
geo = geoinv(u,p); % 几何分布逆函数
% 画分布函数
figure
xlim([0 max(geo)])
for i = 1:max(geo)
F_geo(i) = length(find(geo<i))/Len; % 二项分布的分布函数值
line([i-1 i],[F_geo(i) F_geo(i)],'linewidth',1.1) % 绘制分段的分布函数图像
hold on
end
str1 = '二项分布分布函数图像';
str2 = ['p = ' num2str(p)];
title({[str1];[str2]})
grid on
set(gca,'linewidth',1.1)
end
经验分布函数图像为: