Bayesian Context Trees (BCT) algorithm
Finds the maximum a posteriori probability (MAP) tree model.
BCT(input_data, depth, beta = NULL)
input_data |
the sequence to be analysed. The sequence needs to be a "character" object. See the examples section on how to transform any dataset to a "character" object. |
depth |
maximum memory length. |
beta |
hyper-parameter of the model prior. Takes values between 0 and 1. If not initialised in the call function, the default value is 1-2-m+1, where m is the size of the alphabet; for more information see Kontoyiannis et al. (2020). |
returns a list object which includes:
Contexts |
MAP model given as a list object containing the contexts of its leaves. |
Results |
a dataframe with the following columns: prior probability, log(prior probability), posterior probability, log(posterior probability), number of leaves, maximum depth, BIC score, AIC score and maximum log-likelihood. |
# Finding the MAP model with maximum depth <= 10 # for the SP500 dataset (with default value beta): BCT(SP500, 10) # For custom beta (e.g. 0.7): BCT(SP500, 10, 0.7) # The type of the input dataset is "character" # If the dataset is contained within a vector: q <- c(1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0) # Convert a vector to a "character" object: s <- paste(q, collapse = "") BCT(s, 2) # Reading a file using the readChar function # Example 1: The dataset is stored in a .txt file # fileName <- '~/example_data.txt' # fileName stores the path to the dataset # s<-readChar(fileName, file.info(fileName)$size) # Make sure that s does not contain any "\n" at the end of the string # To remove last entry: # s<-gsub('.$', '', s) # To remove any unwanted characters (e.g. "\n"): # s<-gsub('\n', '', s) # Example 2: The dataset is stored in a .csv file # fileName <- '~/example_data.csv' # fileName stores the path to the dataset # s<-readChar(fileName, file.info(fileName)$size) # Depending on the running environment, # s might contain unwanted characters such as: "\n" or "\r\n". # Remove any unwanted characters (e.g. "\r\n"): # s<-gsub('\r\n', '', s) # Always make sure that s does not contain any unwanted characters
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.