R语言求单侧置信区间或双侧置信区间

       最近工作中用到了区间估计,将自己程序中用到的方法整理如下,仅供参考~


interval_estimated <- function(x, sigma=-1, side=0, alpha=0.05){
  n <- length(x); xb <- mean(x)
  if (sigma >= 0){
    if (side < 0){
	  tmp <- sigma/sqrt(n)*qnorm(1-alpha)
	  a <- -Inf; b <- xb+tmp
	} else if (side > 0){
	  tmp <- sigma/sqrt(n)*qnorm(1-alpha)
	  a <- xb-tmp; b <- Inf
	} else{
      tmp <- sigma/sqrt(n)*qnorm(1-alpha/2)
	  a <- xb-tmp; b <- xb+tmp
    }
	df <- n
  } else{
    if (side < 0){
	  tmp <- sd(x)/sqrt(n)*qt(1-alpha,n-1)
	  a <- -Inf; b <- xb+tmp
	} else if(side > 0){
	  tmp <- sd(x)/sqrt(n)*qt(1-alpha,n-1)
	  a <- xb-tmp; b <- Inf
	} else{
	  tmp <- sd(x)/sqrt(n)*qt(1-alpha/2,n-1)
	  a <- xb-tmp; b <- xb+tmp
	}
	df <- n-1
  }
  data.frame(a=a, b=b)
}

       在上述方法中,x是数据构成的向量。sigma是总体的标准差,sigma的默认值为-1,当标准差已知的时候,输入相应的值,程序采用正态分布估计区间端点,否则,程序采用t分布估计区间端点。side参数控制单双侧置信区间,默认值为0,当side<0时,求单侧置信区间的上限,当side>0时,求单侧置信区间下限,当side=0时,求双侧置信区间。该方法输出为区间的两个端点的值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

象在舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值