knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
The pbox
package is designed for probabilistic modeling and scenario analysis using Probability Boxes (p-boxes). This vignette demonstrates the main functions of the pbox
package, from loading and visualizing data to creating and querying a pbox
object.
First, we load the SEAex
dataset included in the pbox
package. We add a Year column and then reshape the data for plotting.
library(pbox) library(data.table) library(ggplot2) data("SEAex", package = "pbox") SEAex$Year <- 1901:2022 SEAex_long <- melt(SEAex, id.vars = "Year", variable.name = "Country")
We use ggplot2
to create a time series plot of the temperature data for each country.
ggplot(SEAex_long, aes(x = Year, y = value, color = Country)) + geom_line(color = "black") + # Set all lines to black labs(x = "Year", y = "Temperature °C") + ggtitle("") + facet_grid(Country ~ ., scales = "free_y") + theme(legend.position = "none", panel.spacing.y = unit(10, "pt")) + theme_bw()
We create a pbox
object from the SEAex
dataset using the set_pbox
function.
# Set pbox pbx <- set_pbox(SEAex) print(pbx)
We can query the probabilistic space of the pbox object using the qpbox function. Below are examples of different types of queries.
# Marginal Distribution qpbox(pbx, mj = "Malaysia:33") # Joint Distribution qpbox(pbx, mj = "Malaysia:33 & Vietnam:34") # Conditional Distribution qpbox(pbx, mj = "Vietnam:31", co = "avgRegion:26") #Conditional Distribution with Fixed Conditions qpbox(pbx, mj = "Malaysia:33 & Vietnam:31", co = "avgRegion:26", fixed = TRUE) #Joint Distribution with Mean Values qpbox(pbx, mj = "mean:c(Vietnam, Thailand)", lower.tail = TRUE) # Joint Distribution with Median Values qpbox(pbx, mj = "median:c(Vietnam, Thailand)", lower.tail = TRUE) # Joint Distribution with Specific Values qpbox(pbx, mj = "Malaysia:33 & mean:c(Vietnam, Thailand)", lower.tail = TRUE) # Conditional Distribution with Mean Conditions qpbox(pbx, mj = "Malaysia:33 & median:c(Vietnam,Thailand)", co = "mean:c(avgRegion)")
qpbox(pbx, mj = "Malaysia:33 & median:c(Vietnam,Thailand)", co = "mean:c(avgRegion)", CI = TRUE, fixed = TRUE)
We can perform a grid search to explore the probabilistic space over a grid of values.
grid_results <- grid_pbox(pbx, mj = c("Vietnam", "Malaysia")) print(grid_results) print(grid_results[which.max(grid_results$probs),]) print(grid_results[which.min(grid_results$probs),])
We perform scenario analysis by modifying underlying parameters of the pbox object.
scenario_results <- scenario_pbox(pbx, mj = "Vietnam:31 & avgRegion:26", param_list = list(Vietnam = "mu")) print(scenario_results)
This vignette demonstrates the main functionalities of the pbox
package, including data preparation, visualization, probabilistic querying, and scenario analysis. The pbox
package provides powerful tools for probabilistic modeling and analysis, making it a valuable asset for risk assessment and decision-making applications.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.