【学习记录-R】自编函数进行U检验和区间估计(单样本)

单分布不同情况下的枢轴量构建: 

计算分位数,累计概率函数: 

 方差已知进行μ的区间估计

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

 

自编函数结果:

  

③ μ未知求方差的置信区间、④情况,同上,修改表达式即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值