A pbeta()-t, a kumulatív valószínűség-eloszlási függvényt R-ben használom, hogy megkeressem a bemeneti értékek (p) valószínűségét 0-tól 1-ig. Azoknak a bemeneti értékeknek csak egy részhalmaza érdekel, amelyek 0,025 és 0,975 közötti valószínűségeket adnak (ez egy konfidenciaintervallum az adataim számára).
Az első megközelítésem az volt, hogy felsoroltam 99 értéket 0 és 1 között, és futtattam rajtuk a pbeta()-t, majd kivontam azokat az értékeket, amelyek kimenetei a megfelelő tartományban voltak:
alpha <- 50 # Set values for the other two pbeta() parameters.
beta <- 100
p <- c(seq(from=0.01, to=0.99, by=0.01)) # Inputs must be between 0.01 and 0.99 inclusive, so evaluate 99 points in that range.
pbeta_outputs <- c(rep(0,99)) # A vector to hold the pbeta() output.
for (i in seq(1:length(p)) ) { # Fill pbeta_outputs using pbeta().
pbeta_outputs[i] <- pbeta(p[i], shape1=alpha, shape2=beta)
}
probabilities <- data.frame(p, pbeta_outputs) # Arrange inputs and outputs in a data frame.
probabilities_keep <- subset(probabilities, pbeta_outputs>=0.025 & pbeta_outputs<=0.975) # Subset to keep only inputs with outputs in the right range.
De ez pontatlan. Ehelyett szeretném közvetlenül kiszámítani a bemeneti értékek azon tartományát, amely a megfelelő tartományban a pbeta() kimenetet eredményezné.
Valami hasonló:
successful_inputs <- find_input_range(pbeta(x, shape1=alpha, shape2=beta), 0.025:0.975)
Létezik ilyen funkció?