置信区间与假设检验matlab程序DOC.docx
《置信区间与假设检验matlab程序DOC.docx》由会员分享,可在线阅读,更多相关《置信区间与假设检验matlab程序DOC.docx(100页珍藏版)》请在冰豆网上搜索。
置信区间与假设检验matlab程序DOC
统计学专用程序
---基于MATLAB7.0开发
---置信区间与假设检验
2013年8月1日
置信区间与假设检验程序
【开发目的】众所周知,统计工作面对的数据量繁琐而且庞大,在统计的过程中和计算中容易出错,并统计决定着国民经济的命脉,开发此软件就是为了进行验证统计的准确性以及理论可行性,减少统计工作中的错误,使统计工作者更好地进行工作与学习;所以特意开发此程序来检验统计中的参数估计和假设检验。
【开发特色】本软件基于matlab7.0进行运算,对于样本的输入采用行矩阵的形式,并且开发了样本频数输入,对于多样本的输入可以减缓工作量,对于显著性水平本程序自带正态分布函数,t分布函数,F分布函数,
分布函数的计算公式,不用再为查表和计算而苦恼,只需输入显著性水平即可,大大的简化了计算量。
【关键技术】矩阵输入进行频数判断条件循环语句的使用等
【程序界面】
【程序代码】此程序采用多文件结构,在建立文件时不能改变文件名;以下是各个文件的代码:
(Zhucaidan.m):
clc;
disp('统计学专用');
disp('1.假设检验');
disp('2.置信区间');
disp('3.使用说明');
disp('4.打开代码');
disp('0.退出程序');
disp('请进行选择:
');
a=input('');
ifa==0
exit;
elseifa==1
jiashejianyan;
elseifa==2
zhixinqujian;
elseifa==3
help1;
elseifa==4
open('zhucaidan');
disp('菜单选项');
disp('1.返回主菜单');
disp('2.退出程序!
');
p=input('');
ifp==1
zhucaidan;
elseifp==2
disp('正在退出,请稍候。
。
。
');
(exit);
end
end
end
end
end
end
end
(Zhixinqujian.m):
clc;
disp('置信区间');
disp('菜单选项');
disp('0.退出程序!
!
!
');
disp('1.返回主菜单');
disp('2.方差已知,待估参数为u');
disp('3.方差未知,待估参数为u');
disp('4.均值已知,待估参数为方差');
disp('5.均值未知,待估参数为方差');
disp('请进行选择:
');
c=input('');
ifc==0
exit;
elseifc==1
zhucaidan;
elseifc==2
uguji;
elseifc==3
uguji1;
elseifc==4
fguji;
elseifc==5
fguji1;
end
end
end
end
end
end
(Jiashejianyan.m):
clc;
disp('*********假设检验**********');
disp('*********菜单选项**********');
disp('********0.退出程序!
!
!
******');
disp('********1.返回主菜单*******');
disp('***2.σ已知,对u进行检验***');
disp('***3.σ未知,对u进行检验***');
disp('***4.u已知,对σ进行检验***');
disp('***5.u未知,对σ进行检验***');
disp('******请进行选择:
');
c=input('');
ifc==0
exit;
elseifc==1
zhucaidan;
elseifc==2
ujianyan;
elseifc==3
ujianyan1;
elseifc==4
fangcha;
elseifc==5
fangcha1;
end
end
end
end
end
end
Help.m:
clc;
disp('--假设检验与置信区间--');
disp('是否使用帮助(1/0)');
c=input('');
ifc==1
clc;
disp('--假设检验与置信区间--');
disp('********************帮助与操作说明*************');
disp('1.请严格按照说明与提示进行操作,否则可能会出现错误!
!
');
disp('2.对于样本的输入,如果频数都为1时直接回车就可,不必输入!
!
');
disp('3.版权所有,仿冒必究!
!
');
disp('0.退出说明进入主菜单!
!
');
t=input('');
ift==0
zhucaidan;
elseift~=0
exit;
end
end
elseifc==0
zhucaidan;
elseifc~=1|c~=0
exit;
end
end
end
(Help1.m):
clc;
disp('--假设检验与置信区间--');
disp('********************帮助与操作说明*************');
disp('1.请严格按照说明与提示进行操作,否则可能会出现错误!
!
');
disp('2.对于样本的输入,如果频数都为1时直接回车就可,不必输入!
!
');
disp('3.版权所有,仿冒必究!
!
');
disp('0.退出说明进入主菜单!
!
');
t=input('');
ift==0
zhucaidan;
elseift~=0
exit;
end
end
(Ujianyan.m):
clc;
disp('菜单选项');
disp('0.返回主菜单');
disp('1.返回上一层');
disp('2.退出程序!
!
!
');
disp('3.方差已知,单个母体,u检验');
disp('4.方差已知,两个母体,t检验');
disp('请进行选择:
');
c=input('');
ifc==0
zhucaidan;
elseifc==1
jiashejianyan;
elseifc==2
exit;
elseifc==3
clc;
disp('u检验,方差已知,服从N(0,1)');
disp('检验假设选择');
disp('0.返回主菜单');
disp('1.返回上一层');
disp('2.退出程序!
!
!
');
disp('3.H0:
μ=μ0;H1:
μ>μ0');
disp('4.H0:
μ=μ0;H1:
μ<μ0');
disp('5.H0:
μ=μ0;H1:
μ≠μ0');
disp('请进行选择:
');
c=input('');
ifc==0
zhucaidan;
elseifc==1
jiashejianyan;
elseifc==2
exit;
elseifc==3
clc;
disp('H0:
μ=μ0;H1:
μ>μ0');
disp('请输入子样样本,以行矩阵的形式输入');
A=input('');
disp('请输入各个子样样本的频数,以行矩阵的形式输入');
B=input('');
disp('请输入均值:
');
a=input('');
disp('请输入标准差:
');
b=input('');
disp('请输入显著性水平α:
');
d=input('');
n=numel(A);sum=0;sun=0;o=numel(B);
ifn==o
fori=1:
n
sum=sum+A(1,i)*B(1,i);
end
forj=1:
n
sun=sun+B(1,j);
end
u=(sum/sun-a)*sqrt(sun)/b
elseifofori=1:
n
sum=sum+A(1,i);
end
u=(sum/n-a)*sqrt(n)/b
end
end
u1=norminv(1-d,0,1)
ifu>=u1
disp('****该假设检验拒绝H0,接受H1****');
elseifudisp('****该假设检验拒绝H1,接受H0****');
end
end
elseifc==4
clc;
disp('H0:
μ=μ0;H1:
μ<μ0');
disp('请输入子样样本,以行矩阵的形式输入');
A=input('');
disp('请输入各个子样样本的频数,以行矩阵的形式输入');
B=input('');
disp('请输入均值:
');
a=input('');
disp('请输入标准差:
');
b=input('');
disp('请输入显著性水平α:
');
d=input('');
n=numel(A);sum=0;sun=0;o=numel(B);
ifn==o
fori=1:
n
sum=sum+A(1,i)*B(1,i);
end
forj=1:
n
sun=sun+B(1,j);
end
u=(sum/sun-a)*sqrt(sun)/b
elseifofori=1:
n
sum=sum+A(1,i);
end
u=(sum/n-a)*sqrt(n)/b
end
end
u1=norminv(1-d,0,1)
ifu<=u1
disp('****该假设检验拒绝H0,接受H1****');
elseifu>u1
disp('****该假设检验拒绝H1,接受H0****');
end
end
elseifc==5
clc;
disp('H0:
μ=μ0;H1:
μ≠μ0');
disp('请输入子样样本,以行矩阵的形式输入');
A=input('');
disp('请输入各个子样样本的频数,以行矩阵的形式输入');
B=input('');
disp('请输入均值:
');
a=input('');
disp('请输入标准差:
');
b=input('');
disp('请输入显著性水平α:
');
d=input('');
n=numel(A);sum=0;sun=0;o=numel(B);
ifn==o
fori=1:
n
sum=sum+A(1,i)*B(1,i);
end
forj=1:
n
sun=sun+B(1,j);
end
u=(sum/sun-a)*sqrt(sun)/b
elseifofori=1:
n
sum=sum+A(1,i);
end
u=(sum/n-a)*sqrt(n)/b
end
end
u1=norminv(1-0.5*d,0,1);
u1
ifabs(u)>=u1
disp('****该假设检验拒绝H0,接受H1****');
elseifabs(u)disp('*