单分布不同情况下的枢轴量构建:
计算分位数,累计概率函数:
方差已知进行μ的区间估计
f3<-function(x,n,sd,a=0.05){ mean=mean(x) c=sd/sqrt(n) max=mean+qnorm(1-a/2)*c min=mean-qnorm(1-a/2)*c list(max=max,min=min) }
方差已知进行μ的U检验
f<-function(x,mu,sd,alternative,μ0,a=0.05){ index=2 mean=mean(x) c=sd/sqrt(mu) u=(mean-μ0)/c if(alternative==0){ ux=qnorm(1-a/2) if(u>0){ p=2-2*pnorm(u) }else{ p=2*pnorm(u) } if(abs(u)<abs(ux)){ index=0 }else{ index=1 } }else if(alternative==1){ ux=qnorm(1-a) p=1-pnorm(u) if(u<ux){ index=0 }else{ index=1 } }else if(alternative==2){ ux=qnorm(a) p=pnorm(u) if(u>ux){ index=0 }else{ index=1 } } if(index==0){ cat("支持原假设") }else if(index==1){ cat("拒绝原假设") }else{ cat("alternative错误") } list(u=u,ux=ux,p=p,index=index) }
左、右侧检验:
例题:
自编函数:
双侧检验算出置信区间:
单/双侧检验结果:
#双侧
#左检验
#右检验
结果解释:
算出置信区间,用来和U检验代码进行比较
设μ0=476
双侧:
U值与μ取值相反,故H0下的U0值比U(1-a/2)大一点,刚好落在置信区间,支持原假设
左侧
U0<0,支持原假设
右侧
U(a)<U0<U(a/2),拒绝原假设
(这样验证的前提是置信水平和U检验的水平相同)
wilcon.test()
方差未知进行μ的区间估计
t<-function(x,n,a=0.05){ mean=mean(x) sd=sd(x)#样本标准差代替总体标准差就从U统计量变为T统计量 c=sd/sqrt(n) max=mean+qt(1-a/2,n-1)*c min=mean-qt(1-a/2,n-1)*c list(max=max,min=min) }
方差未知进行μ的t检验
ft<-function(x,n,alternative,μ0,a=0.05){ index=2 mean=mean(x) sd<-sd(x) c=sd/sqrt(n) t=(mean-μ0)/c if(alternative==0){ tx=qt(1-a/2,n-1) if(t>0){ p=2-2*pt(t,n-1) }else{ p=2*pt(t,n-1) } if(abs(t)<abs(tx)){ index=0 }else{ index=1 } }else if(alternative==1){ tx=qt(1-a,n-1) p=1-pt(t,n-1) if(t<tx){ index=0 }else{ index=1 } }else if(alternative==2){ tx=qt(a,n-1) p=pt(t,n-1) if(t>tx){ index=0 }else{ index=1 } } if(index==0){ cat("支持原假设") }else if(index==1){ cat("拒绝原假设") }else{ cat("alternative错误") } list(t=t,tx=tx,p=p,index=index) }
例题:
t.test进行单样本检验
t.test(t3,y = NULL,alternative="greater",52) t=mean(t3)+qt(0.95,6)*sd(t3)/sqrt(7) t t=mean(t3)-qt(0.95,6)*sd(t3)/sqrt(7) t
自编函数结果:
![]()
③ μ未知求方差的置信区间、④情况,同上,修改表达式即可