y <- c(11,7,2,7,4,8,13,3,6,6,15,8,2,4,5,11,11,4,9,3,9,8,5,9,6)
T <- sum(y)
n <- length(y)
#Fixing tail prob to get 95% CI
alpha1 <- 0.025
alpha2 <- 0.025
#UCB and LCB
f_upper <- function(lambda, alpha, t, n) {
abs(ppois(t, n * lambda) - alpha)
}
f_lower <- function(lambda, alpha, t, n) {
abs(ppois(t-1, n * lambda, lower.tail = FALSE) - alpha)
}
lambda_L <- optimize(f_lower, interval = c(0, 20), alpha = alpha2, t = T, n = n)$minimum
lambda_U <- optimize(f_upper, interval = c(0, 20), alpha = alpha1, t = T, n = n)$minimum
lambda_L
## [1] 6.038297
lambda_U
## [1] 8.16038
par(mfrow = c(1, 2))
x_vals <- 160:220
prob_upper <- dpois(x_vals, n * lambda_U)
barplot(prob_upper, names.arg = x_vals, col = 'lightblue',
main = paste("Poisson UCB", round(lambda_U, 3)),
xlab = "Total arrivals T", ylab = "Probability")
barplot(ifelse(x_vals <= T, prob_upper, 0), names.arg = x_vals,
col = 'red', add = TRUE)
#Verifying
ppois(T, n * lambda_U)
## [1] 0.0249999
prob_lower <- dpois(x_vals, n * lambda_L)
barplot(prob_lower, names.arg = x_vals, col = 'lightgreen',
main = paste("Poisson LCB", round(lambda_L, 3)),
xlab = "Total arrivals T", ylab = "Probability")
barplot(ifelse(x_vals >= T, prob_lower, 0), names.arg = x_vals,
col = 'red', add = TRUE)

#Verifying
ppois(T-1, n * lambda_L, lower.tail = FALSE)
## [1] 0.02499787
#Problem 6
n <- 30
x <- 15
alpha <- 0.05
#LCB
f_lower <- function(p, alpha, n, x) {
abs(pbinom(x-1, n, p) - (1 - alpha))
}
p_lower_exact <- optimize(f_lower, interval = c(0, 1),
alpha = alpha, n = n, x = x)$minimum
p_lower_exact
## [1] 0.3388766
# Verifying
pbinom(x-1, n, p_lower_exact, lower.tail = FALSE)
## [1] 0.04998016
p_hat <- x / n
z <- qnorm(1 - alpha)
se <- sqrt(p_hat * (1 - p_hat) / n)
p_lower_approx <- p_hat - z * se
p_lower_approx
## [1] 0.3498461
prob <- pbinom(15, n, 0.4)
prob
## [1] 0.9029432
#problem 5
t_value <- qt(0.90, df = 99)
t_value
## [1] 1.290161