The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Psychological Network Analysis with Nestimate

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.

Data

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         17

Correlation network

The 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.000

Partial correlation network

Partial 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.000

Regularized network (EBICglasso)

The 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.1319

Predictability

Node predictability measures how well each node is predicted by its neighbors (R-squared from the network structure).

pred <- predictability(net_glasso)
round(pred, 3)
#>     Planning   Monitoring   Evaluating  Elaboration Organization    Rehearsal 
#>        0.251        0.316        0.332        0.241        0.279        0.161 
#> Help_Seeking    Time_Mgmt   Effort_Reg 
#>        0.051        0.274        0.252

Bootstrap inference

Non-parametric bootstrap assesses edge stability and significance.

boot <- boot_glasso(net_glasso, iter = 100,
                    centrality = c("strength", "expected_influence"),
                    seed = 42)

Edge significance

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.15

Centrality stability

summary(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

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.