⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 expjianyan.m

📁 K-S检验产生的数据是否服从指数分布。此方法可以类推其他任何分布形式的检验。
💻 M
字号:
N=100;    % 数据长度
tht=10;  % 参数thita
x=exprnd(tht,1,N);   % 服从指数分布的数据
x1=sort(x);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 累积理论分布F(x)
tht0=mean(x);    % 估计理论参数值
for i=1:N-1
    expthcdf(i)=expcdf(x1(i),tht0);
end
expthcdf(N)=1;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 累积经验分布函数S(x)
y=ones(1,N);  % 样本出现次数初始化
k=0;          % 自适应步长初始化
for i=1:(1+k):(N-k)  % 自适应调整步长
    k=0;             % 循环一次后,步长初始化
    for j=(i+1):N
        if x1(i)==x1(j)
            k=k+1;   % 若数据相等,则步长加1
            for n=i:(i+k)   % 共有k+1个数据相等,都等于y(i)
                y(n)=1+k;   % 样本出现次数。。。
            end
        end
    end
end

% 样本出现次数数据处理
% 将重复的数据置零
t=1;
for i=1:t:(N-t+1)
    if y(i)>1
        t=y(i);
        for m=i+1:i+t-1
            y(m)=0;  % 次数相同的数据除第一项外均置零
        end
    end
end

% 样本密度函数
for n=1:N
    pdf(n)=y(n)/N;  %处理后的样本密度函数,并不为真实的密度函数
end

% 样本分布函数
excdf(1)=pdf(1);
for n=2:N-1
    excdf(n)=excdf(n-1)+pdf(n);  % 样本经验分布函数S(x)
end
excdf(N)=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% K-S检验
for i=1:N
    ks(i)=expthcdf(i)-excdf(i);
end
 expD=max(abs(ks));
 if expD<0.226
     disp('样本数据服从指数分布。')
     subplot(2,2,3),plot(x1,excdf)      % 假设检验经验分布图
             title('样本拟合经验分布S(x)')
             grid on
             subplot(2,2,4),plot(x1,expthcdf)  % 样本理论分布图
             title('假设检验理论分布图F(x)');
             grid on
 else
     disp('样本数据不服从指数分布。')
 end
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % 画图
 % 图1为样本数据直方图
 % 图2为样本数据数值图
 % 图3为假设检验理论分布图
 % 图4为样本数据的拟合分布图
 subplot(2,2,1),hist(x)
 title('样本数据直方图');
  grid on
 subplot(2,2,2),stem(x)
 title('样本数据数值图');
 grid on
% THE END ! 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -