SachaEpskamp / bootnet

Bootstrap methods for various network estimation routines
30 stars 14 forks source link

Error in bootnet (one node produced an error) #132

Closed SaraAlatrash closed 1 month ago

SaraAlatrash commented 3 months ago

I am getting this error when using bootnet with my estimated network, I tried changing the tuning parameter and boots but the error persists. What can I do to get rid of the error? Also, how can I tell which node is causing the error?

estimate network

mynetwork <- estimateNetwork(data_normalized, default="EBICglasso", corMethod = "cor_auto", tuning = 0.75, threshold = FALSE)

b1<- bootnet(mynetwork, boots=2000, nCores=4, statistics=c("Strength","Betweenness","Closeness","ExpectedInfluence","edge")) Note: bootnet will store only the following statistics: Strength, Betweenness, Closeness, ExpectedInfluence, edge Bootstrapping... |++++++++++++++++++++++++++++ | 55% ~55s Error in checkForRemoteErrors(val) : one node produced an error: Maximum number of errors in bootstraps reached

SachaEpskamp commented 3 months ago

THis error indicates that the estimation did not go well in one bootstrap. What is your sample size and number of variables? You can use nCores=1 for a more informative error message.

SaraAlatrash commented 2 months ago

Hi, Thank you for this reply and your valuable work in this area. The error is now fixed.

If I may ask, I would appreciate your thoughts on what I am doing in my network estimation.

The number of variables is 18 and the sample size is 115. I have no missing data. 14 variables are continuous and four variables are categorical, so, there is sex (binary), race (binarized - originally 11 categories), education (three levels), and income (three levels). I am using EBICglasso, considering education and income as ordered ordinal, and sex and race as factors.

**Would including these demographics be recommended when using EBICglasso? I would appreciate your guidance on this matter.

I am using this to estimate the network:

mynetwork <- estimateNetwork(data, default="EBICglasso", corMethod = "cor_auto", tuning = 0.50, threshold = FALSE)

Followed by the centrality and stability tests:

centralityPlot(mynetwork, scale = c("z-scores"), include =c("Strength","Closeness","Betweenness"), theme_bw = TRUE, weighted = TRUE, orderBy= "Strength")

b1<- bootnet(mymynetworknetwork, boots=2000, nCores=4, statistics=c("Strength","Betweenness","Closeness","edge")) b2<- bootnet(mynetwork, boots=2000, nCores=4, type="case", statistics=c("Strength","Betweenness","Closeness","edge"))

corStability(b2) plot(b1, labels=FALSE, order="sample") plot(b2, statistics = c("Strength", "Betweenness", "Closeness"))

I also tried using MGM where I specified the type and level for each variable, but that didn't give any interpretable results. Also, I considered the Ising model, however, I couldn't figure out how it is used when I have all the other variables as continuous data.

Thank you, Sara Alatrash

SachaEpskamp commented 1 month ago

Hi! mgm would definitly be more appropriate here. I would also be hesitant to use corMethod = "cor_auto" here, it doesn't work well at low sample sizes. The sample size is quite low, so you can also consider reducing the number of nodes.