分布的拟合与检验的matlab实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%--------------------------------------------------------------------------

% 分布的拟合与检验

%--------------------------------------------------------------------------

%--------------------------------------------------------------------------

% 描述性统计量和统计图

%--------------------------------------------------------------------------

%读取文件中数据

% 读取文件examp02_14.xls的第1个工作表中的G2G52中的数据,即总成绩数据score = xlsread('examp02_14.xls','Sheet1','G2G52');

% 去掉总成绩中的0,即缺考成绩

score = score(score 0);

%计算描述性统计量

score_mean = mean(score) % 计算平均成绩

s1 = std(score) % 计算(5.1)式的标准差

s1 = std(score,0) % 也是计算(5.1)式的标准差

s2 = std(score,1) % 计算(5.2)式的标准差

score_max = max(score) % 计算样本最大值

score_min = min(score) % 计算样本最小值

score_range = range(score) % 计算样本极差

score_median = median(score) % 计算样本中位数

score_mode = mode(score) % 计算样本众数

score_cvar = std(score)mean(score) % 计算变异系数

score_skewness = skewness(score) % 计算样本偏度

score_kurtosis = kurtosis(score) % 计算样本峰度

%绘制箱线图

figure; % 新建图形窗口

boxlabel = {'考试成绩箱线图'}; % 箱线图的标签

% 绘制带有刻槽的水平箱线图

boxplot(score,boxlabel,'notch','on','orientation','horizontal')

xlabel('考试成绩'); % 为X轴加标签

%绘制频率直方图

% 调用ecdf函数计算xc处的经验分布函数值f

[f, xc] = ecdf(score);

figure; % 新建图形窗口

% 绘制频率直方图

ecdfhist(f, xc, 7);

xlabel('考试成绩'); % 为X轴加标签

ylabel('f(x)'); % 为Y轴加标签

%绘制理论正态分布密度函数图

% 产生一个新的横坐标向量x

x = 400.5100;

% 计算均值为mean(score),标准差为std(score)的正态分布在向量x处的密度函数值

y = normpdf(x,mean(score),std(score));

hold on

plot(x,y,'k','LineWidth',2) % 绘制正态分布的密度函数曲线,并设置线条为黑色实线,线宽为2

% 添加标注框,并设置标注框的位置在图形窗口的左上角

legend('频率直方图','正态分布密度曲线','Location','NorthWest');

%绘制经验分布函数图

figure; % 新建图形窗口

% 绘制经验分布函数图,并返回图形句柄h和结构体变量stats,

% 结构体变量stats有5个字段,分别对应最小值、最大值、平均值、中位数和标准差[h,stats] = cdfplot(score)

set(h,'color','k','LineWidth',2); % 设置线条颜色为黑色,线宽为2

%绘制理论正态分布函数图

x = 400.5100; % 产生一个新的横坐标向量x

% 计算均值为stats.mean,标准差为stats.std的正态分布在向量x处的分布函数值

y = normcdf(x,stats.mean,stats.std);

hold on

% 绘制正态分布的分布函数曲线,并设置线条为品红色虚线,线宽为2

plot(x,y,'k','LineWidth',2);

% 添加标注框,并设置标注框的位置在图形窗口的左上角

legend('经验分布函数','理论正态分布','Location','NorthWest');

%绘制正态概率图

figure; % 新建图形窗口

normplot(score); % 绘制正态概率图

%--------------------------------------------------------------------------

% 分布的检验

%--------------------------------------------------------------------------

%读取文件中数据

% 读取文件examp02_14.xls的第1个工作表中的G2G52中的数据,即总成绩数据score = xlsread('examp02_14.xls','Sheet1','G2G52');

% 去掉总成绩中的0,即缺考成绩

score = score(score 0);

%调用chi2gof函数进行卡方拟合优度检验

% 进行卡方拟合优度检验

[h,p,stats] = chi2gof(score)

% 指定各初始小区间的中点

ctrs = [50 60 70 78 85 94];

% 指定'ctrs'参数,进行卡方拟合优度检验

[h,p,stats] = chi2gof(score,'ctrs',ctrs)

[h,p,stats] = chi2gof(score,'nbins',6) % 指定'nbins'参数,进行卡方拟合优度检验

% 指定分布为默认的正态分布,分布参数由x进行估计

[h,p,stats] = chi2gof(score,'nbins',6);

% 求平均成绩ms和标准差ss

ms = mean(score);

ss = std(score);

% 参数'cdf'的值是由函数名字符串与函数中所含参数的参数值构成的元胞数组

[h,p,stats] = chi2gof(score,'nbins',6,'cdf',{'normcdf', ms, ss});

% 参数'cdf'的值是由函数句柄与函数中所含参数的参数值构成的元胞数组

[h,p,stats] = chi2gof(score,'nbins',6,'cdf',{@normcdf, ms, ss});

% 同时指定'cdf'和'nparams'参数

[h,p,stats] = chi2gof(score,'nbins',6,'cdf',{@normcdf,ms,ss},'nparams',2)

[h,p] = chi2gof(score,'cdf',@normcdf) % 调用chi2gof函数检验数据是否服从标准正态分布

% 指定初始分组数为6,检验总成绩数据是否服从参数为ms = 79的泊松分布

[h,p] = chi2gof(score,'nbins',6,'cdf',{@poisscdf, ms})

% 指定初始分组数为6,最小理论频数为3,检验总成绩数据是否服从正态分布

h = chi2gof(score,'nbins',6,'cdf',{@normcdf, ms, ss},'emin',3)

相关文档
最新文档