Learn R Programming

IVPP

An implementation of the Invariance Partial Pruning (IVPP) approach described in Du, X., Johnson, S. U., Epskamp, S. (in prep) to comparing idiographic and panel network models. IVPP is a two-step method that first test for global network structural difference with invariance test and then inspect specific edge difference with partial pruning.

Installation

To install from CRAN:

install.packages("IVPP")

You can install the development version of IVPP from GitHub with:

# install.packages("devtools")
devtools::install_github("xinkaidupsy/IVPP")

Example

An example that uses IVPP to compare panelGVAR models:

library(IVPP)

# Generate the network
net_ls <- gen_panelGVAR(n_node = 6,
                        p_rewire_temp = 0.5,
                        p_rewire_cont = 0.5,
                        n_group = 2)

# Generate the data
data <- sim_panelGVAR(temp_base_ls = net_ls$temporal,
                      cont_base_ls = net_ls$omega_zeta_within,
                      n_person = 200,
                      n_time = 3,
                      n_group = 2,
                      n_node = 6)

# global test on both nets
omnibus_both <- IVPP_panelgvar(data,
                               vars = paste0("V",1:6),
                               idvar = "subject",
                               beepvar = "time",
                               groups = "group",
                               g_test_net = "both",
                               net_type = "sparse",
                               partial_prune = FALSE,
                               ncores = 2)

# global test on temporal
omnibus_temp <- IVPP_panelgvar(data,
                               vars = paste0("V",1:6),
                               idvar = "subject",
                               beepvar = "time",
                               groups = "group",
                               g_test_net = "temporal",
                               net_type = "sparse",
                               partial_prune = FALSE,
                               ncores = 2)

# global test on cont
omnibus_cont <- IVPP_panelgvar(data,
                               vars = paste0("V",1:6),
                               idvar = "subject",
                               beepvar = "time",
                               groups = "group",
                               g_test_net = "contemporaneous",
                               net_type = "sparse",
                               partial_prune = FALSE,
                               ncores = 2)

# partial prune on both networks
pp_both <- IVPP_panelgvar(data,
                          vars = paste0("V",1:6),
                          idvar = "subject",
                          beepvar = "time",
                          groups = "group",
                          global = FALSE,
                          partial_prune = TRUE,
                          prune_net = "both",
                          ncores = 2)

An example that uses IVPP to compare N = 1 GVAR models

library(IVPP)

# Generate the network
net_ls <- gen_tsGVAR(n_node = 6,
                     p_rewire_temp = 0.5,
                     p_rewire_cont = 0.5,
                     n_persons = 2)

# Generate the data
data <- sim_tsGVAR(beta_base_ls = net_ls$beta,
                   kappa_base_ls = net_ls$kappa,
                   # n_person = 2,
                   n_time = 300)
                   
# global test on both networks
omnibus_both <- IVPP_tsgvar(data,
                            vars = paste0("V",1:6),
                            idvar = "id",
                            g_test_net = "both",
                            net_type = "sparse",
                            partial_prune = FALSE,
                            ncores = 2)
                            
# global test on temporal
omnibus_temp <- IVPP_tsgvar(data,
                            vars = paste0("V",1:6),
                            idvar = "id",
                            g_test_net = "temporal",
                            net_type = "sparse",
                            partial_prune = FALSE,
                            ncores = 2)

# global test on cont
omnibus_cont <- IVPP_tsgvar(data,
                            vars = paste0("V",1:6),
                            idvar = "id",
                            g_test_net = "contemporaneous",
                            net_type = "sparse",
                            partial_prune = FALSE,
                            ncores = 2)

# partial prune on both networks
pp_both <- IVPP_tsgvar(data,
                       vars = paste0("V",1:6),
                       idvar = "id",
                       global = FALSE,
                       partial_prune = TRUE,
                       prune_net = "both",
                       ncores = 2)                 

Copy Link

Version

Install

install.packages('IVPP')

Monthly Downloads

509

Version

1.1.2

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Xinkai Du

Last Published

February 28th, 2026

Functions in IVPP (1.1.2)

sim_panelGVAR

Simulate data for a (multi-group) panelGVAR model
IVPP-package

IVPP: Invariance Partial Pruning Test
gen_panelGVAR

Generate a (multi-group) panelGVAR model
gen_tsGVAR

Generate time-series GVAR model for multiple (heterogeneous) individuals
sim_tsGVAR

Simulate data for a (multi-group) N = 1 GVAR model
bridge_by_community

Bridge centrality by target community
IVPP_tsgvar

The invariance partial pruning (IVPP) algorithm for idiographic GVAR models
centrality_radar

Radar plot for selected centrality measures
centrality

Centrality (degree/EI) and bridge centrality for an network matrix
IVPP_panelgvar

The invariance partial pruning (IVPP) algorithm for panel GVAR models