DFsCsn is a Julia package that provides tools for simulating statistical models considering spatio-temporal structures and skewness. It also facilitates sampling from the posterior distribution of these models. Please refer to Kuno and Murakami (2024) for details.
To install DFsCsn, use the following command in Julia's REPL:
using Pkg
Pkg.add("https://github.com/Kuno3/DFsCsn")
To start using DFsCsn, simply import the package:
using DFsCsn
DFsCsn allows you to specify parameters for your spatiotemporal model and run simulations. Here’s an example of how to set parameters and execute a simulation:
DFsCsnSimulator
Description: Initializes the simulation environment with specified parameters for D-FS-CSN.
Arguments:
T::Int
: Time lengthW::Array{Float64,2}
: Adjacency matrixfeature::Array{Float64,3}
: Featuresbeta::Array{Float64,1}
(optional): Coefficinetsigma2::Float64
(optional): Variance of observation noisetau2::Float64
(optional): Variance of process noiserhoS::Float64
(optional): Parameter for spatial dependencerhoT::Float64
(optional): Parameter for temporal dependencel::Float64
(optional): Parameter for skewnesstheta_init::Array{Float64,1}
(optional): Initial value of thetaseed::Int
(optional): Seed for random sampling
Return:
DFsCsnSimulator
: An object that holds the simulation environment.
DCarSimulator
Description: Initializes the simulation environment with specified parameters for D-CAR.
Arguments:
T::Int
: Time lengthW::Array{Float64,2}
: Adjacency matrixfeature::Array{Float64,3}
: Featuresbeta::Array{Float64,1}
(optional): Coefficinetsigma2::Float64
(optional): Variance of observation noisetau2::Float64
(optional): Variance of process noiserhoS::Float64
(optional): Parameter for spatial dependencerhoT::Float64
(optional): Parameter for temporal dependencetheta_init::Array{Float64,1}
(optional): Initial value of latent variable thetaseed::Int
(optional): Seed for random sampling
Return:
DCarSimulator
: An object that holds the simulation environment.
simulate
Description: Simulates data based on the initialized model.
Arguments:
simulator::DFsCsnSimulator
orsimulator::DCarSimulator
: The initialized simulator object.
Return:
Nothing
: The simulation result are stored insimulator.y
# Define parameters
T = 10 # Time length
W = [0 1 1 0; 1 0 0 1; 1 0 0 1; 0 1 1 0] # Adjacency matrix
feature = randn(T, size(W, 1), 2) # Features
simulator = DFsCsnSimulator(T, W, feature)
simulate(simulator)
The package also includes functions for sampling from posterior distributions, allowing for in-depth statistical analysis and inference.
DFsCsnPostSampler
Description: Initializes the sampling environment with specified parameters for D-FS-CSN.
Arguments:
y::Array{Float64,2}
: ObservationsW::Array{Float64,2}
: Adjacency matrixnu2_beta::Float64
(optional): Variance of the prior for beta (default is 100)a_sigma2::Float64
(optional) andb_sigma2::Float64
(optional): Parameter of the inverse gamma prior for sigma2 (default is 1 and 0.01)a_tau2::Float64
(optional) andb_tau2::Float64
(optional): Parameter of the inverse gamma prior for tau2(default is 1 and 0.01)nu2_l::Float64
(optional): Variance of the prior for l(default is 100)seed::Int
(optional): Seed for random sampling
Return:
DFsCsnPostSampler
: An object that holds the sampling environment.
DCarPostSampler
Description: Initializes the sampling environment with specified parameters for D-CAR.
Arguments:
y::Array{Float64,2}
: ObservationsW::Array{Float64,2}
: Adjacency matrixnu2_beta::Float64
(optional): Variance of the prior for beta (default is 100)a_sigma2::Float64
(optional) andb_sigma2::Float64
(optional): Parameter of the inverse gamma prior for sigma2 (default is 1 and 0.01)a_tau2::Float64
(optional) andb_tau2::Float64
(optional): Parameter of the inverse gamma prior for tau2(default is 1 and 0.01)seed::Int
(optional): Seed for random sampling
Return:
DCarPostSampler
: An object that holds the sampling environment.
sampling
Description: Simulates data based on the initialized model.
Arguments:
sampler::DFsCsnPostSampler
orsampler::DCarPostSampler
: The initialized simulator object.num_sample::Int
: Number of samplesburn_in::Int
(optional): Number of saples for burn inthinning::Int
(optional): Number of saples for thinningstep_size::Float64
(optional and only for DFsCsnPostSampler): Parameter for samplingnum_step::Int
(optional and only for DFsCsnPostSampler): Parameter for samplingrhoS_prop_scale::Float64
(optional): Parameter for samplingtheta_init::Matrix{Float64}
(optional): Initial value for thetaalpha_init::Matrix{Float64}
(optional): Initial value for alphabeta_init::Vector{Float64}
(optional): Initial value for betasigma2_init::Vector{Float64}
(optional): Initial value for sigma2tau2_init::Vector{Float64}
(optional): Initial value for tau2rhoS_init::Vector{Float64}
(optional): Initial value for rhoSrhoT_init::Vector{Float64}
(optional): Initial value for rhoTl_init::Vector{Float64}
(optional and only for DFsCsnPostSampler): Initial value for l
Return:
Array
: A dictionary of the samples from the posterior distribution.
# Define observations
y = simulator.y
W = simulator.W
feature = simulator.feature
# Sample from the posterior distribution
sampler = DFsCsnPostSampler(y, W, feature)
results = sampling(sampler, 1000)
DFsCsn is licensed under the MIT License.
Kuno, H., Murakami, D., 2024. Efficient bayesian dynamic closed skew-normal model for spatio-temporal data with preserving mean and covariance. Preprint