📄 ch8example7prog1.m
字号:
% ch8example7prog1.m
% 泊松分布随机数的产生和皮尔逊检验
clear;
lambda=4; % 参数
N=1000; % 产生非随机数样本个数
for n=1:N
i=0; v=1; % 初始化
while(1)
x=rand; % [0,1]均匀随机数发生
v=v*x; % 连乘
if v<exp(-lambda)
break; % 输出一个泊松随机数
else
i=i+1; % 泊松计数器
end
end
rndnum(n)=i; % 随机数样本存放
end
% --------
% rndnum=poissrnd(lambda,N,1); % 此句可检验Matlab内部泊松随机数分布
% --------
% 假设分布为泊松分布,参数lambda的估计值为lambdahat
lambdahat=mean(rndnum)
% -------直方图检验法
[ni,xout]=hist(rndnum,[0:1:10]);
mi=ni./N; % 计算经验频率值
bar(xout,mi);hold on;
x=0:1:10;
pi=poisspdf(x,lambdahat); % 计算统计分段区间的理论分布的概率值
pi(11)=1-sum(pi(1:10)); % 最后一个统计分段区间为[9.5, +inf]
plot(x,pi,'--ok');
% -------皮尔逊检验
chi2=sum((ni-N*pi).^2./(N*pi)); % 皮尔逊chi2统计量计算
alpha=0.05; % 显著性水平
r=1; % 分布中的未知参数个数
chi2_alpha=chi2inv(1-alpha,length(ni)-r-1) % 分位点
H=(chi2>chi2_alpha) % H为1表示拒绝假设
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -