fitlandr:Fit Vector Fields and Potential Landscapes from Intensive LongitudinalData
A toolbox for estimating vector fields from intensive longitudinaldata, and construct potential landscapes thereafter. The vector fieldscan be estimated with two nonparametric methods: the Multivariate VectorField Kernel Estimator (MVKE) by Bandi & Moloche (2018)https://doi.org/10.1017/S0266466617000305 and the SparseVector Field Consensus (SparseVFC) algorithm by Ma et al. (2013)https://doi.org/10.1016/j.patcog.2013.05.017. Thepotential landscapes can be constructed with a simulation-based approachwith thesimlandr package (Cui et al., 2021)https://doi.org/10.31234/osf.io/pzva3, or theBhattacharya et al. (2011) method for path integrationhttps://doi.org/10.1186/1752-0509-5-85.
You can install the development version offitlandr fromGitHub with:
# install.packages("devtools")devtools::install_github("Sciurus365/fitlandr")We use the following bistable dynamic system to illustrate the use offitlandr. The test data set is created as follows.
single_output_grad<- simlandr::sim_fun_grad(length =200,seed =1614)library(tidyverse)ggplot(data = single_output_grad%>%as_tibble())+geom_path(aes(x =1:200,y = x),color ="blue")+geom_path(aes(x =1:200,y = y),color ="red")+theme_bw()
Fit the vector field with MVKE (see?MVKE for theexplanations of parameters):
library(fitlandr)v2<-fit_2d_vf(single_output_grad,x ="x",y ="y",method ="MVKE")plot(v2)
Fit the potential landscape:
future::plan("multisession")set.seed(1614)l2<-fit_3d_vfld(v2,.sim_vf_options =sim_vf_options(chains =16,stepsize =1,forbid_overflow =TRUE),.simlandr_options =simlandr_options(adjust =5,Umax =4))#> ℹ Simulating the model✔ Simulating the model [26.7s]#> ℹ Constructing the landscape✔ Constructing the landscape [3.1s]plot(l2,2)
# equivalent:# s2 <- sim_vf(v2, chains = 16, stepsize = 1, forbid_overflow = TRUE)# l2 <- simlandr::make_3d_static(s2, x = "x", y = "y", lims = v2$lims, adjust = 5, Umax = 4)