## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(csranks)
library(ggplot2)
data(pisa2018)
head(pisa2018)

## -----------------------------------------------------------------------------
ggplot(pisa2018, aes(x = reorder(jurisdiction, math_score, decreasing = TRUE), y = math_score)) +
  geom_errorbar(aes(ymin = math_score - 2 * math_se, ymax = math_score + 2 * math_se)) +
  geom_point() +
  theme_minimal() +
  labs(y = "math score", x = "", title = "2018 PISA math score for OECD countries", subtitle = "(with 95% marginal confidence intervals)") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

## -----------------------------------------------------------------------------
math_rank <- irank(pisa2018$math_score)
head(pisa2018[order(math_rank), ])

## ----math_Sigma---------------------------------------------------------------
math_cov_mat <- diag(pisa2018$math_se^2)

## ----math_taubest-------------------------------------------------------------
CS_5best <- cstaubest(pisa2018$math_score, math_cov_mat, tau = 5, coverage = 0.95)

pisa2018[CS_5best, "jurisdiction"]

## ----math_taubest_90----------------------------------------------------------
CS_5best_90 <- cstaubest(pisa2018$math_score, math_cov_mat, tau = 5, coverage = 0.9)

pisa2018[CS_5best_90, "jurisdiction"]

## ----math_marg----------------------------------------------------------------
uk_i <- which(pisa2018$jurisdiction == "United Kingdom")
CS_marg <- csranks(pisa2018$math_score, math_cov_mat, simul = FALSE, indices = uk_i, coverage = 0.95)
CS_marg

## ----math_simul, fig.width=7, fig.height=7------------------------------------
CS_simul <- csranks(pisa2018$math_score, math_cov_mat, simul = TRUE, coverage = 0.95)
plotsimul <- plot(CS_simul,
  popnames = pisa2018$jurisdiction,
  title = "Ranking of OECD Countries by 2018 PISA Math Score",
  subtitle = "(with 95% simultaneous confidence sets)"
)
plotsimul

## ----eval = FALSE-------------------------------------------------------------
# ggplot2::ggsave("mathsimul.pdf", plot = plotsimul)

## ----math_simul75, fig.width=7, fig.height=7----------------------------------
CS_simul75 <- csranks(pisa2018$math_score, math_cov_mat, simul = TRUE, coverage = 0.75)
plotsimul75 <- plot(CS_simul75,
  popnames = pisa2018$jurisdiction,
  title = "Ranking of OECD Countries by 2018 PISA Math Score",
  subtitle = "(with 75% simultaneous confidence sets)"
)
plotsimul75

