Вычислить 5-й квантиль кривой, сгенерированной из векторов точек X, Y - PullRequest
0 голосов
/ 16 марта 2019

У меня есть эти кривые ниже:

Curves

Эти кривые были созданы с использованием библиотеки под названием discreteRV.

library(discreteRV)

placebo.rate <- 0.5
mmm.rate <- 0.3
mmm.power <- power.prop.test(p1 = placebo.rate, p2 = mmm.rate, power = 0.8, alternative = "one.sided")
n <- as.integer(ceiling(mmm.power$n))
patients <- seq(from = 0, to = n, by = 1)
placebo_distribution <- dbinom(patients, size = n, prob = placebo.rate)
mmm_distribution <- dbinom(patients, size = n, prob = mmm.rate)

get_pmf <- function(p1, p2) {
  X1 <- RV(patients,p1, fractions = F)
  X2 <- RV(patients,p2, fractions = F)
  pmf <- joint(X1, X2, fractions = F)
  return(pmf)
}
extract <- function(string) {
  ints <- unlist(strsplit(string,","))
  x1 <- as.integer(ints[1])
  x2 <- as.integer(ints[2])
  return(x1-x2)
}
diff_prob <- function(pmf) {
  diff <- unname(sapply(outcomes(pmf),FUN = extract)/n)
  probabilities <- unname(probs(pmf))
  df <- data.frame(diff,probabilities)
  df <- aggregate(. ~ diff, data = df, FUN = sum)
  return(df)
}
most_likely_rate <- function(x) {
  x[which(x$probabilities == max(x$probabilities)),]$diff
}

mmm_rate_diffs <- diff_prob(get_pmf(mmm_distribution,placebo_distribution))
placebo_rate_diffs <- diff_prob(get_pmf(placebo_distribution,placebo_distribution))
plot(mmm_rate_diffs$diff,mmm_rate_diffs$probabilities * 100, type = "l", lty = 2, xlab = "Rate difference", ylab = "# of trials per 100", main = paste("Trials with",n,"patients per treatment arm",sep = " "))
lines(placebo_rate_diffs$diff, placebo_rate_diffs$probabilities * 100, lty = 1, xaxs = "i")
abline(v = c(most_likely_rate(placebo_rate_diffs), most_likely_rate(mmm_rate_diffs)), lty = c(1,2))
legend("topleft", legend = c("Alternative hypothesis", "Null hypothesis"), lty = c(2,1))
* 1011.* По сути, я взял две биномиальные дискретные случайные величины, создал общую функцию вероятности, определил вероятность любой заданной разности скоростей, а затем нанес их на график, чтобы продемонстрировать распределение этих разностей скоростей, если нулевая гипотеза верна или если альтернативная гипотеза вернаболее 100 идентичных испытаний.

Теперь я хочу проиллюстрировать 5-процентный процентиль на кривой нулевой гипотезы.К сожалению, я не знаю, как это сделать.Если я просто использую quantile(x = placebo_rate_diffs$diff, probs = 0.05, я получаю -0.377027.Это не может быть правильно, глядя на график.Я хочу вычислить 5-й процентиль, как если бы я использовал pbinom(), но я не знаю, как это сделать с помощью графика, созданного по существу из x и y векторов.

Может быть, яЯ могу аппроксимировать эти две кривые как биномиальные, поскольку они кажутся, но я все еще не уверен, как это сделать.

Любая помощь будет принята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...