数学建模——司守奎
摘录
文章目录
第七章 数理统计
一、经验分布函数
提示:图片坐标轴名称Latex语法
clc, clear, close all
a=readmatrix('data7_5_1.txt'); a=a(~isnan(a)); %去掉NaN值
[f,x]=ecdf(a) %计算经验分布函数的取值
ecdf(a) %画经验分布函数图形
grid on, xlabel('$x$','Interpreter','Latex')
ylabel('$F(x)$','Interpreter','Latex')
writematrix([x,f], 'data7_5_2.xlsx')
二、Q-Q图
Q-Q图是Quantile-quantile Plot的简称,是检验拟合优度的好方法,目前在国外被广泛使用,它的图示方法简单直观,易于使用。
clc, clear, close all
a=readmatrix('data7_5_1.txt'); a=a(~isnan(a)); %去掉NaN值
pd=fitdist(a, 'Normal'), qqplot(a,pd) %Matlab工具箱直接画Q-Q图
sa=sort(a); %把a按照从小到大排列
n=length(a); pi=([1:n]-1/2)/n;
yi=norminv(pi,pd.mu,pd.sigma)'; %计算对应的yi值
hold on, plot(yi,sa,'o') %再重新描点画Q-Q图
三、非参数检验
clc, clear
edges=[0:100:300 inf]; bins=[50 150 250 350]; %定义原始数据区域的边界和中心
mi=[121 78 43 58]; %已知观测频数
pd=makedist('exp',200) %定义指数分布
expect=sum(mi)*diff(cdf(pd, edges)) %计算期望频数
[h,p,st]=chi2gof(bins,'Edges',edges,'cdf',pd,'Frequency',mi)
k2=chi2inv(0.95,st.df) %求临界值,st.df为自由度
四、非参数Bootstrap方法
设总体的分布 未知,但已知有一个容量为 的来自分布 的数据样本,自这一样本按放回抽样的方法抽取一个容量为 的样本,这种样本称为bootstrap样本或称为自助样本。相继地,独立地自原始样本中取很多个Bootstrap样本,利用这些样本对总体 进行统计推断,这种方法称为非参数Bootstrap方法,又称自助法。这一方法可以用于当人们对总体知之甚少的情况,它是近代统计中的一种用于数据处理的重要实用方法。这种方法的实现需要在计算机上作大量的计算,随着计算机威力的增长,它已成为一种流行的方法。
相继地、独立地在上述5个数据中,按放回抽样的方法取样,取 得到下述10个Bootstrap样本。
五、方差分析
在现实问题中,经常会遇到类似考察两台机床生产的零件尺寸是否相等,病人和正常人的某个生理指标是否一样,采用两种不同的治疗方案对同一类病人的治疗效果比较等问题。这类问题通常会归纳为检验两个不同总体的均值是否相等,对这类问题的解决可以采用两个总体的均值检验方法。但若检验总体多于两个,仍采用多总体均值检验方法会遇到困难。
而事实上,在实际生产和生活中可以举出许多这样的问题,如从用几种不同工艺制成的灯泡中,各抽取了若干个测量其寿命,要推断这几种工艺制成的灯泡寿命是否有显著差异;用几种化肥和几个小麦品种在若干块试验田里种植小麦,要推断不同的化肥和品种对小麦产量有无显著影响等。
单因素方差分析
只考虑一个因素 所关心的指标的影响, 取几个水平,在每个水平上作若干个试验,假定试验过程中除因素自身外其他影响指标的因素都保持不变(只有随机因素存在)。我们的任务是从试验结果推断,因素 对指标有无显著影响,即当 取不同水平时指标有无显著差异。
取某个水平下的指标视为随机变量,判断 取不同水平时指标有无显著差别,相当于检验若干总体的均值是否相等。
双因素方差分析方法
如果要考虑两个因素对指标的影响,就要采用双因素方差分析。它的基本思想是:对每个因素各取几个水平,然后对各因素不同水平的每个组合作一次或若干次试验,对所得数据进行方差分析。对双因素方差分析可分为无重复和等重复试验两种情况,无重复试验只需检验两因素是否分别对指标有显著影响;而对等重复试验还要进一步检验两因素是否对指标有显著的交互影响。
六、回归分析
七、基于灰色模型和Bootstrap理论的大规模定制质量控制方法研究
鉴于灰色模型在极小样本量数据预测中的优势,采用灰色系统预测模型对样本数量进行扩展,再基于Bootstrap统计推断方法得到统计量的经验分布,采用 控制图和 控制图对大规模定制生产中的过程状态进行判断。通过对框段生产线大规模定制生产质量控制的案例研究,本文提出的新方法可用于大规模定制生产尤其是新型号生产初期的质量预测和控制。
某航空产品制造厂生产的一批框段根据技术指标及安装位置的差异性,其半径、形状、连接方式各不相同,共有20种,且每一种产品批生产数量都不超过30件,其生产方式可视为大规模定制模式。其中一种框段(钣金零件)厚度要求为 (mm),在生产初期采集了10件的加工数据,测得的质量数据为2.5320,2.6470,2.6290,2.5840,2.6090,2.6010,2.5280,2.5630,2.6540,2.6190。根据本文的研究思路,对该零件的加工数据进行质量分析的流程。
clc, clear, rng(6) %取确定的随机数种子
x0=[2.5320,2.6470,2.6290,2.5840,2.6090,2.6010,2.5280,2.5630,2.6540,2.6190];
n=length(x0);
me=quantile(x0,0.5) %计算中位数
[h,p,stat]=runstest(x0,me) %进行游程检验
x1=cumsum(x0); %求累加序列
zk=(x1(1:end-1)+x1(2:end))/2 %求累加序列的均值序列
B=[-zk', ones(size(zk'))]; yn=x0(2:end)';
ab=B\yn %拟合参数a,b
syms x(t)
x=dsolve(diff(x)+ab(1)*x==ab(2),x(0)==x0(1)); %求微分方程的符号解
xx=vpa(x,6) %显示小数格式的符号解
yuce=subs(x,t,[0:n+5]); %求累加序列的预测值
yuce=double(yuce); %把符号数转换成数值类型
yuce0=[x0(1),diff(yuce)] %求原始数据的预测值
c=std(yuce0(1:n))/std(x0) %求后验差比值c
nyuce=yuce0(n+1:end) %提取6个新的预测值
nyb=[x0, nyuce]; %构造新的样本数据
nnyb=reshape(nyb,[4,4])
mu=mean(nnyb) %分别求4个子样本的均值
jc=range(nnyb) %分别求4个子样本的极差
writematrix([nnyb;mu;jc], 'hb.xlsx') %把数据写到Excel文件中,便于做表使用
b=rand(4,1000); %产生4行1000列的随机数矩阵
h=floor(b*length(nyb))+1; %把随机数映射为编号(每列对应bootstrap样本编号)
bb=repmat(nyb',1,1000); bb=bb(h); %对新序列进行重复抽样
mmu=mean(bb); mjc=range(bb); %计算1000个子样本的均值和极差
smu=sort(mmu); sjc=sort(mjc); %把均值和极差按照从小到大的次序排列
alpha=0.0027; k1=floor(1000*alpha/2), k2=floor(1000*(1-alpha/2))
mqj=[smu(k1), smu(k2)] %显示均值的置信区间
jqj=[sjc(k1), sjc(k2)] %显示极差的置信区间
subplot(1,2,1), plot(mu,'*-'), hold on, plot([1,4],[mqj(1),mqj(1)])
plot([1,4],[mqj(2),mqj(2)]), ylabel('样本均值')
subplot(1,2,2), plot(jc,'*-'), hold on, plot([1,4],[jqj(1),jqj(1)]),
plot([1,4],[jqj(2),jqj(2)]), ylabel('极差')