用于创建自举假设测试的r函数

时间:2018-11-09 17:01:23

标签: r

我正在尝试在r中创建一个函数,该函数基于自举方法对总体均值执行假设检验,该均值可以返回一侧或两侧检验的p值。下面是我编写的代码。当我调用函数ht(Delta$dep_delay, 322, 1000, s_size = length(Delta$dep_delay), "greater", "mean")时,无论输入什么值,总会输出0。我正在尝试测试从肯尼迪国际机场起飞的达美航空的航班的平均起飞延迟是否大于5分钟。

sample_3054 <- function(data, reps=1000, s_size = length(data), 
stats =  c("mean", "median")){
  data <- na.omit(data)
  data <- as.data.frame(data)
  do(reps) * summarise(sample_n(data,size = s_size, replace = TRUE), 
  sampled = case_when(stats == "mean" ~ mean(data), 
  stats == "median" ~ median(data)))
}

ht <- function(data, specifiedMean, reps = 1000, p = c("equals", "less", "greater"), 
s_size = length(data), stats = c("mean", "median")){
  data <- na.omit(data)
  OBSMean <- mean(data)
  newValue <- data - OBSMean + specifiedMean
  c <- abs(specifiedMean - OBSMean)
  RSample <- sample_30543210(newValue, reps = 1000, s_size = length(newValue), "mean")
  ll <- specifiedMean - c
  ul <- specifiedMean + c
   if(p == "equals"){
    (sum(RSample$sampled <= ll) + sum(RSample$sampled >= ul)) / reps
   }else if(p == "less"){
(sum(RSample$sampled <= ll)) / reps
   }else if(p == "greater"){
(sum(RSample$sampled >= ul)) / reps
   }else{
print("Please choose "equals", "greater", or "less".")
   }
 }

0 个答案:

没有答案