Nestimate supports psychological network analysis (PNA) through
partial correlation and graphical lasso estimation. This vignette uses
the srl_strategies dataset — frequency counts of 9
self-regulated learning strategies for 250 students — to estimate,
regularize, and bootstrap a psychological network.
The 9 strategies fall into three clusters: metacognitive (Planning, Monitoring, Evaluating), cognitive (Elaboration, Organization, Rehearsal), and resource management (Help_Seeking, Time_Mgmt, Effort_Reg).
library(Nestimate)
data(srl_strategies)
head(srl_strategies)
#> Planning Monitoring Evaluating Elaboration Organization Rehearsal
#> 1 13 15 13 5 3 13
#> 2 14 11 12 10 25 19
#> 3 24 20 22 14 3 10
#> 4 19 18 15 17 27 13
#> 5 17 21 15 8 5 12
#> 6 4 6 5 26 24 25
#> Help_Seeking Time_Mgmt Effort_Reg
#> 1 27 12 21
#> 2 15 17 24
#> 3 6 12 29
#> 4 13 11 20
#> 5 6 7 8
#> 6 14 11 17The simplest approach estimates pairwise Pearson correlations.
net_cor <- build_network(srl_strategies, method = "cor")
net_cor
#> Correlation Network [undirected]
#> Sample size: 250
#> Weights: [-0.130, 0.485] | +26 / -10 edges
#>
#> Weight matrix:
#> Planning Monitoring Evaluating Elaboration Organization Rehearsal
#> Planning 0.000 0.423 0.358 -0.096 -0.083 -0.019
#> Monitoring 0.423 0.000 0.485 0.195 0.028 0.132
#> Evaluating 0.358 0.485 0.000 0.077 0.313 0.076
#> Elaboration -0.096 0.195 0.077 0.000 0.432 0.341
#> Organization -0.083 0.028 0.313 0.432 0.000 0.339
#> Rehearsal -0.019 0.132 0.076 0.341 0.339 0.000
#> Help_Seeking -0.108 -0.116 0.023 0.008 0.123 -0.130
#> Time_Mgmt 0.285 0.015 0.079 -0.033 0.085 -0.106
#> Effort_Reg -0.010 -0.008 0.250 0.050 0.135 0.029
#> Help_Seeking Time_Mgmt Effort_Reg
#> Planning -0.108 0.285 -0.010
#> Monitoring -0.116 0.015 -0.008
#> Evaluating 0.023 0.079 0.250
#> Elaboration 0.008 -0.033 0.050
#> Organization 0.123 0.085 0.135
#> Rehearsal -0.130 -0.106 0.029
#> Help_Seeking 0.000 0.209 0.176
#> Time_Mgmt 0.209 0.000 0.467
#> Effort_Reg 0.176 0.467 0.000Partial correlations control for all other variables, revealing direct associations.
net_pcor <- build_network(srl_strategies, method = "pcor")
net_pcor
#> Partial Correlation Network (unregularised) [undirected]
#> Sample size: 250
#> Weights: [-0.235, 0.502] | +21 / -15 edges
#>
#> Weight matrix:
#> Planning Monitoring Evaluating Elaboration Organization Rehearsal
#> Planning 0.000 0.268 0.283 -0.103 -0.146 0.046
#> Monitoring 0.268 0.000 0.432 0.274 -0.213 0.095
#> Evaluating 0.283 0.432 0.000 -0.156 0.406 -0.098
#> Elaboration -0.103 0.274 -0.156 0.000 0.380 0.181
#> Organization -0.146 -0.213 0.406 0.380 0.000 0.274
#> Rehearsal 0.046 0.095 -0.098 0.181 0.274 0.000
#> Help_Seeking -0.121 -0.054 0.039 0.004 0.102 -0.144
#> Time_Mgmt 0.397 -0.007 -0.207 -0.031 0.158 -0.137
#> Effort_Reg -0.235 -0.099 0.330 0.049 -0.092 0.096
#> Help_Seeking Time_Mgmt Effort_Reg
#> Planning -0.121 0.397 -0.235
#> Monitoring -0.054 -0.007 -0.099
#> Evaluating 0.039 -0.207 0.330
#> Elaboration 0.004 -0.031 0.049
#> Organization 0.102 0.158 -0.092
#> Rehearsal -0.144 -0.137 0.096
#> Help_Seeking 0.000 0.161 0.051
#> Time_Mgmt 0.161 0.000 0.502
#> Effort_Reg 0.051 0.502 0.000The graphical lasso applies L1 regularization to the precision
matrix, producing a sparse network. The gamma parameter
controls sparsity via EBIC model selection — higher values yield sparser
networks.
net_glasso <- build_network(srl_strategies, method = "glasso",
params = list(gamma = 0.5))
net_glasso
#> Partial Correlation Network (EBICglasso) [undirected]
#> Sample size: 250
#> Weights: [0.089, 0.413] | +13 / -0 edges
#>
#> Weight matrix:
#> Planning Monitoring Evaluating Elaboration Organization Rehearsal
#> Planning 0.000 0.295 0.161 0.000 0.000 0.000
#> Monitoring 0.295 0.000 0.361 0.105 0.000 0.000
#> Evaluating 0.161 0.361 0.000 0.000 0.221 0.000
#> Elaboration 0.000 0.105 0.000 0.000 0.329 0.228
#> Organization 0.000 0.000 0.221 0.329 0.000 0.218
#> Rehearsal 0.000 0.000 0.000 0.228 0.218 0.000
#> Help_Seeking 0.000 0.000 0.000 0.000 0.000 0.000
#> Time_Mgmt 0.205 0.000 0.000 0.000 0.000 0.000
#> Effort_Reg 0.000 0.000 0.161 0.000 0.000 0.000
#> Help_Seeking Time_Mgmt Effort_Reg
#> Planning 0.000 0.205 0.000
#> Monitoring 0.000 0.000 0.000
#> Evaluating 0.000 0.000 0.161
#> Elaboration 0.000 0.000 0.000
#> Organization 0.000 0.000 0.000
#> Rehearsal 0.000 0.000 0.000
#> Help_Seeking 0.000 0.141 0.089
#> Time_Mgmt 0.141 0.000 0.413
#> Effort_Reg 0.089 0.413 0.000
#>
#> Gamma: 0.50 | Lambda: 0.1319Node predictability measures how well each node is predicted by its neighbors (R-squared from the network structure).
Non-parametric bootstrap assesses edge stability and significance.
boot <- boot_glasso(net_glasso, iter = 100,
centrality = c("strength", "expected_influence"),
seed = 42)summary(boot, type = "edges")
#> edge weight ci_lower ci_upper inclusion
#> 36 Time_Mgmt -- Effort_Reg 0.32491515 0.222754811 0.50668633 1.00
#> 3 Monitoring -- Evaluating 0.30049766 0.224522700 0.45126425 1.00
#> 10 Elaboration -- Organization 0.26232453 0.177858297 0.41011844 1.00
#> 1 Planning -- Monitoring 0.22902145 0.154652739 0.34674453 1.00
#> 14 Elaboration -- Rehearsal 0.15760204 0.045592763 0.26115952 1.00
#> 9 Evaluating -- Organization 0.15443135 0.084298534 0.37810093 1.00
#> 15 Organization -- Rehearsal 0.15232840 0.065005184 0.29110149 1.00
#> 22 Planning -- Time_Mgmt 0.13034652 0.007669914 0.37098345 0.97
#> 2 Planning -- Evaluating 0.12953651 0.062889945 0.29148262 0.99
#> 31 Evaluating -- Effort_Reg 0.09309602 0.000000000 0.26185859 0.92
#> 28 Help_Seeking -- Time_Mgmt 0.06512062 0.000000000 0.20520166 0.87
#> 5 Monitoring -- Elaboration 0.03881843 0.000000000 0.25949667 0.86
#> 35 Help_Seeking -- Effort_Reg 0.01956134 0.000000000 0.12836204 0.56
#> 4 Planning -- Elaboration 0.00000000 -0.161388943 0.00000000 0.54
#> 6 Evaluating -- Elaboration 0.00000000 -0.137731264 0.00000000 0.14
#> 7 Planning -- Organization 0.00000000 -0.161263938 0.00000000 0.56
#> 8 Monitoring -- Organization 0.00000000 -0.217307688 0.00000000 0.30
#> 11 Planning -- Rehearsal 0.00000000 -0.035825718 0.03982327 0.09
#> 12 Monitoring -- Rehearsal 0.00000000 0.000000000 0.13942125 0.45
#> 13 Evaluating -- Rehearsal 0.00000000 -0.061390791 0.03029809 0.13
#> 16 Planning -- Help_Seeking 0.00000000 -0.142952390 0.00000000 0.55
#> 17 Monitoring -- Help_Seeking 0.00000000 -0.139007954 0.00000000 0.50
#> 18 Evaluating -- Help_Seeking 0.00000000 0.000000000 0.02674340 0.07
#> 19 Elaboration -- Help_Seeking 0.00000000 -0.016900994 0.02373987 0.10
#> 20 Organization -- Help_Seeking 0.00000000 0.000000000 0.17737711 0.57
#> 21 Rehearsal -- Help_Seeking 0.00000000 -0.221492991 0.00000000 0.58
#> 23 Monitoring -- Time_Mgmt 0.00000000 -0.071890228 0.00000000 0.21
#> 24 Evaluating -- Time_Mgmt 0.00000000 -0.189055191 0.00000000 0.25
#> 25 Elaboration -- Time_Mgmt 0.00000000 -0.094009550 0.00000000 0.14
#> 26 Organization -- Time_Mgmt 0.00000000 0.000000000 0.16349181 0.31
#> 27 Rehearsal -- Time_Mgmt 0.00000000 -0.142222286 0.00000000 0.54
#> 29 Planning -- Effort_Reg 0.00000000 -0.219379453 0.00000000 0.45
#> 30 Monitoring -- Effort_Reg 0.00000000 -0.104007421 0.00000000 0.25
#> 32 Elaboration -- Effort_Reg 0.00000000 0.000000000 0.08776618 0.19
#> 33 Organization -- Effort_Reg 0.00000000 0.000000000 0.08132141 0.32
#> 34 Rehearsal -- Effort_Reg 0.00000000 0.000000000 0.08917994 0.15summary(boot, type = "centrality")
#> $strength
#> node value ci_lower ci_upper
#> 1 Planning 0.48890448 0.37476117 1.5043481
#> 2 Monitoring 0.56833754 0.47147750 1.3200063
#> 3 Evaluating 0.67756154 0.55524956 1.6594405
#> 4 Elaboration 0.45874500 0.32637547 1.1827810
#> 5 Organization 0.56908428 0.46301831 1.5629458
#> 6 Rehearsal 0.30993044 0.25585130 0.9233126
#> 7 Help_Seeking 0.08468196 0.04323831 0.8343392
#> 8 Time_Mgmt 0.52038228 0.36990833 1.4011174
#> 9 Effort_Reg 0.43757251 0.28061194 1.1406496
#>
#> $expected_influence
#> node value ci_lower ci_upper
#> 1 Planning 0.48890448 0.2131390 0.6396731
#> 2 Monitoring 0.56833754 0.4300082 0.8265708
#> 3 Evaluating 0.67756154 0.5552496 1.0610893
#> 4 Elaboration 0.45874500 0.2855666 0.7125323
#> 5 Organization 0.56908428 0.4468574 0.9984274
#> 6 Rehearsal 0.30993044 0.1011004 0.4730121
#> 7 Help_Seeking 0.08468196 -0.1307542 0.2177518
#> 8 Time_Mgmt 0.52038228 0.3513479 0.8549979
#> 9 Effort_Reg 0.43757251 0.2806119 0.6824216