理论:
代码1(有具体数值):
ft1<-function(x,y,c=-1,sigma1=-1,sigma2=-1,a=0.05){#有具体数据 m<-length(x) n<-length(y) meanx<-mean(x) meany<-mean(y) sx<-sd(x) sy<-sd(y) t<-qt(1-a/2,m+n-2) u<-qnorm(1-a/2) sw<-sqrt(((m-1)*sx^2+(n-1)*sy^2)/(m+n-2)) if(sigma1>0){#方差已知 max<-meanx-meany+u*sqrt(sigma1^2/m+sigma2^2/n) min<-meanx-meany-u*sqrt(sigma1^2/m+sigma2^2/n) }else{#方差未知 if(c>0){#方差比值已知 max<-meanx-meany+sqrt((m*c+n)/(m*n))*sw*t min<-meanx-meany-sqrt((m*c+n)/(m*n))*sw*t }else if(n>1500){#方差比值未知,大样本,中心极限定理 max<-meanx-meany+u*sqrt(sx^2/m+sy^2/n) min<-meanx-meany-u*sqrt(sx^2/m+sy^2/n) }else{#方差比值未知,小样本 s0<-sqrt(sx^2/m+sy^2/n) l=s0^4/(sx^4/(m^2*(m-1))+sy^4/(n^2*(n-1))) l=ceiling(l) max<-meanx-meany+s0*qt(1-a/2,l) min<-meanx-meany-s0*qt(1-a/2,l) } } list(max=max,min=min) }
代码2(无具体样本) :
rft<-function(rsx,rsy,m,n,meanx,meany,c=-1,rsigma1=-1,rsigma2=-1,a=0.05){#无具体数据 t<-qt(1-a/2,m+n-2) u<-qnorm(1-a/2) sw<-sqrt(((m-1)*rsx+(n-1)*rsy)/(m+n-2)) if(rsigma1>0){#方差已知 max<-meanx-meany+u*sqrt(rsigma1/m+rsigma2/n) min<-meanx-meany-u*sqrt(rsigma1/m+rsigma2/n) }else{#方差未知 if(c>0){#方差比值已知 max<-meanx-meany+sqrt((m*c+n)/(m*n))*sw*t min<-meanx-meany-sqrt((m*c+n)/(m*n))*sw*t }else if(n>1500){#方差比值未知,大样本,中心极限定理 max<-meanx-meany+u*sqrt(rsx/m+rsy/n) min<-meanx-meany-u*sqrt(rsx/m+rsy/n) }else{#方差比值未知,小样本 s0<-sqrt(rsx/m+rsy/n) l=s0^4/(rsx^2/(m^2*(m-1))+rsy^2/(n^2*(n-1))) l=ceiling(l) max<-meanx-meany+s0*qt(1-a/2,l) min<-meanx-meany-s0*qt(1-a/2,l) } } list(max=max,min=min) }