到达教学楼时间拟合
一、数据收集
- 到达教学楼时间统计范围:7:50-8:40。
- 统计数据方法:每分钟一组。
- 数据记录方式:表格,共51组原始数据。原始数据如图1所示,直方图如图2所示。
![](https://img-blog.csdnimg.cn/9e334a7014e44b239f4c1aba26cdeadc.png)
![](https://img-blog.csdnimg.cn/bddcefc6fdbe46e4a6d23e143aa33b3f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU3VuLXd6,size_20,color_FFFFFF,t_70,g_se,x_16)
- 数据优化:通过观察数据,由于样本量较小,时间间隔过小,出现个别偶然性数据噪声。现优化51组数据原1分钟每组合并为3分钟每组,为方便数据统计,设8:00为原点0,原7:50-8:40范围由(-10,40)调整为(-4,11),优化后数据如表1所示,直方图如图3所示,共16组。
![](https://img-blog.csdnimg.cn/d2371a6b67254167811cbf544aa3ce4e.png)
![](https://img-blog.csdnimg.cn/8c83d00e0fbe4e9fac85ea025db80f69.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU3VuLXd6,size_20,color_FFFFFF,t_70,g_se,x_16)
二、数据拟合
-
初步观察图3所示得统计数据绘制分布直方图,判断到达教学楼不同时间的人数符合高斯分布,故采用高斯分布模型拟合数据。
-
采用Matlab中拟合函数fit( xx, yy,‘gauss1’ )。
并求得参数样本均值为3.5,样本方差为4.7610。 -
画图,拟合曲线和原始数据图像如图3所示。
![](https://img-blog.csdnimg.cn/d1578654d988410688c9ceb1ef55430c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU3VuLXd6,size_20,color_FFFFFF,t_70,g_se,x_16)
三、 拟合检验
- 使用cdf方法检验,调用matlab中normcdf()函数。
- kstest(函数)检验是否符合置信区间为95%的正态分布。
首先,由于正态分布的均值、标准差未知,因此先计算样本的均值和标准差,再做正态拟合。通过样本资料的计算建立假设:H0:样本数据服从均值为5.483,标准差为3.207的正态分布,H1:样本数据不服从均值为5.483,标准差为3.207的正态分布。取alpha=0.05,完成cdf的检验,最后检验是否符合置信区间为95%的正态分布,符合则输出符合,反之不符合。
检验结果如图4所示,即服从 。
![](https://img-blog.csdnimg.cn/f83b5b1db57a4dfebdce22b5d9958edf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU3VuLXd6,size_20,color_FFFFFF,t_70,g_se,x_16)
四、总结
根据统计和结果分析,由原始数据分析得同学们到达教学楼时间均值为8:16,众值为8:21,由优化后数据分析到达时间服从 。
附录
clear;clc;close all
format compact
%正态分布的拟合
num = 16;
filename='time.xlsx'; %读取文件地址
% x=xlsread(filename,"Sheet1",'c2:c17'); %参数依次是:文件,sheet名称,读取的范围
% y=xlsread(filename,"Sheet1","d2:d17");
x=xlsread(filename,"Sheet1",'a2:a52'); %参数依次是:文件,sheet名称,读取的范围
y=xlsread(filename,"Sheet1","b2:b52");
xx = x(:);
yy = y(:);
bar(xx,yy)
example_mean = mean(xx);%样本均值
example_std = std(xx);%标准差
% Set up fittype and options.
[fitresult, gof] = fit( xx, yy,'gauss1' );%直接调用 高斯函数模型
fitresult;
% Plot fit with data.
figure;
plot(fitresult)
hold on
plot(xx, yy,'b*');
legend('拟合曲线','原始数据', 'Location', 'NorthEast');
title(['正态分布拟合,num=',num2str(num)])
xlabel('x');
ylabel('y');
grid on
saveas(gcf,'pic.png')
% 输出拟合参数
a = fitresult.a1;
wa = fitresult.b1;
xc = fitresult.c1;
alpha = 0.05;
[mu,sigma]=normfit(xx);%求正态分布的参数值
p1=normcdf(xx,mu,sigma);%cdf检验
[H1,S1]=kstest(xx,[xx,p1],alpha);%检验是否符合置信区间为95%的正态分布
if H1 == 0
disp("服从正态分布");
else
disp("不服从");
end