【学习记录-R】自编函数计算两正态总体均值差的区间估计

 理论:

代码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)
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值